OwsContextFactory.java

  1. package de.turnertech.ows.common;

  2. import java.util.HashMap;
  3. import java.util.Map;

  4. import jakarta.servlet.ServletException;

  5. public abstract class OwsContextFactory {
  6.    
  7.     public final OwsContext createOwsContext() throws ServletException {
  8.         DefaultOwsContext owsContext = new DefaultOwsContext();
  9.         owsContext.setModelProvider(createModelProvider());
  10.         if(owsContext.getModelProvider() == null) {
  11.             throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null " + ModelProvider.class.getSimpleName());
  12.         }

  13.         owsContext.setWfsCapabilities(getWfsCapabilities());
  14.         if(owsContext.getWfsCapabilities() == null) {
  15.             throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null WfsCapabilities");
  16.         }

  17.         owsContext.setXmlNamespacePrefixMap(getNamespacePrefixMap());
  18.         if(owsContext.getXmlNamespacePrefixMap() == null) {
  19.             throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null Namespace Prefix Map");
  20.         }

  21.         owsContext.setXmlNamespaceSchemaMap(getNamespaceSchemaMap());
  22.         if(owsContext.getXmlNamespaceSchemaMap() == null) {
  23.             throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null Namespace Schema Map");
  24.         }

  25.         owsContext.setModelEncoderProvider(getModelEncoderProvider());
  26.         if(owsContext.getXmlNamespaceSchemaMap() == null) {
  27.             throw new ServletException(OwsContextFactory.class.getSimpleName() + " returned null Model Encoder Provider");
  28.         }

  29.         return owsContext;
  30.     }

  31.     public abstract ModelProvider createModelProvider();

  32.     public ModelEncoderProvider getModelEncoderProvider() {
  33.         return new DefaultModelEncoderProvider();
  34.     }

  35.     public abstract WfsCapabilities getWfsCapabilities();

  36.     public Map<String, String> getNamespacePrefixMap() {
  37.         Map<String, String> returnMap = new HashMap<>();
  38.         returnMap.put("http://www.opengis.net/ows/1.1", "ows");
  39.         returnMap.put("http://www.opengis.net/wfs/2.0", "wfs");
  40.         returnMap.put("http://www.opengis.net/fes/2.0", "fes");
  41.         returnMap.put("http://www.opengis.net/gml/3.2", "gml");
  42.         returnMap.put("http://www.w3.org/2001/XMLSchema", "xsd");
  43.         returnMap.put("http://www.w3.org/2001/XMLSchema-instance", "xsi");
  44.         returnMap.put(OwsContext.XLINK_URI, "xlink");
  45.         return returnMap;
  46.     }

  47.     public Map<String, String> getNamespaceSchemaMap() {
  48.         Map<String, String> returnMap = new HashMap<>();
  49.         returnMap.put("http://www.opengis.net/ows/1.1", "http://schemas.opengis.net/ows/1.1.0/owsAll.xsd");
  50.         returnMap.put("http://www.opengis.net/wfs/2.0", "http://schemas.opengis.net/wfs/2.0/wfs.xsd");
  51.         returnMap.put("http://www.opengis.net/fes/2.0", "http://schemas.opengis.net/filter/2.0/filterAll.xsd");
  52.         returnMap.put("http://www.opengis.net/gml/3.2", "http://schemas.opengis.net/gml/3.2.1/gml.xsd");
  53.         return returnMap;
  54.     }

  55. }