OwsContextFactory.java
package de.turnertech.ows.common;
import java.util.HashMap;
import java.util.Map;
import jakarta.servlet.ServletException;
public abstract class OwsContextFactory {
public final OwsContext createOwsContext() throws ServletException {
DefaultOwsContext owsContext = new DefaultOwsContext();
owsContext.setModelProvider(createModelProvider());
if(owsContext.getModelProvider() == null) {
throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null " + ModelProvider.class.getSimpleName());
}
owsContext.setWfsCapabilities(getWfsCapabilities());
if(owsContext.getWfsCapabilities() == null) {
throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null WfsCapabilities");
}
owsContext.setXmlNamespacePrefixMap(getNamespacePrefixMap());
if(owsContext.getXmlNamespacePrefixMap() == null) {
throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null Namespace Prefix Map");
}
owsContext.setXmlNamespaceSchemaMap(getNamespaceSchemaMap());
if(owsContext.getXmlNamespaceSchemaMap() == null) {
throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null Namespace Schema Map");
}
owsContext.setModelEncoderProvider(getModelEncoderProvider());
if(owsContext.getXmlNamespaceSchemaMap() == null) {
throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null Model Encoder Provider");
}
return owsContext;
}
public abstract ModelProvider createModelProvider();
public ModelEncoderProvider getModelEncoderProvider() {
return new DefaultModelEncoderProvider();
}
public abstract WfsCapabilities getWfsCapabilities();
public Map<String, String> getNamespacePrefixMap() {
Map<String, String> returnMap = new HashMap<>();
returnMap.put("http://www.opengis.net/ows/1.1", "ows");
returnMap.put("http://www.opengis.net/wfs/2.0", "wfs");
returnMap.put("http://www.opengis.net/fes/2.0", "fes");
returnMap.put("http://www.opengis.net/gml/3.2", "gml");
returnMap.put("http://www.w3.org/2001/XMLSchema", "xsd");
returnMap.put("http://www.w3.org/2001/XMLSchema-instance", "xsi");
returnMap.put(OwsContext.XLINK_URI, "xlink");
return returnMap;
}
public Map<String, String> getNamespaceSchemaMap() {
Map<String, String> returnMap = new HashMap<>();
returnMap.put("http://www.opengis.net/ows/1.1", "http://schemas.opengis.net/ows/1.1.0/owsAll.xsd");
returnMap.put("http://www.opengis.net/wfs/2.0", "http://schemas.opengis.net/wfs/2.0/wfs.xsd");
returnMap.put("http://www.opengis.net/fes/2.0", "http://schemas.opengis.net/filter/2.0/filterAll.xsd");
returnMap.put("http://www.opengis.net/gml/3.2", "http://schemas.opengis.net/gml/3.2.1/gml.xsd");
return returnMap;
}
}