NonIdOperatorDecoder.java

  1. package de.turnertech.ows.filter;

  2. import java.util.Arrays;
  3. import java.util.List;

  4. import javax.xml.stream.XMLStreamException;
  5. import javax.xml.stream.XMLStreamReader;

  6. import de.turnertech.ows.common.OwsContext;

  7. /**
  8.  * Delegating Decoder
  9.  */
  10. public class NonIdOperatorDecoder {
  11.    
  12.     private NonIdOperatorDecoder() {
  13.        
  14.     }

  15.     // TODO: Move to Filter?
  16.     public static List<String> COMPARISON_OPERATORS = Arrays.asList("PropertyIsEqualTo", "PropertyIsNotEqualTo", "PropertyIsLessThan", "PropertyIsGreaterThan", "PropertyIsLessThanOrEqualTo", "PropertyIsGreaterThanOrEqualTo", "PropertyIsLike", "PropertyIsNull", "PropertyIsNil", "PropertyIsBetween");

  17.     // TODO: Move to Filter?
  18.     public static List<String> LOGICAL_OPERATORS = Arrays.asList("And", "Or", "Not");

  19.     public static boolean canDecode(final XMLStreamReader in) {
  20.         return BinarySpatialOperatorDecoder.canDecode(in);
  21.     }

  22.     public static NonIdOperator decode(final XMLStreamReader in, final OwsContext owsContext) throws XMLStreamException {
  23.         NonIdOperator returnOperator = null;
  24.         if(COMPARISON_OPERATORS.contains(in.getLocalName())) {
  25.             returnOperator = ComparisonOperatorDecoder.decode(in, owsContext);
  26.         } else if(LOGICAL_OPERATORS.contains(in.getLocalName())) {
  27.             returnOperator = LogicalOperatorDecoder.decode(in, owsContext);
  28.         } else if(SpatialOperatorDecoder.canDecode(in)) {
  29.             returnOperator = SpatialOperatorDecoder.decode(in, owsContext);
  30.         }
  31.         return returnOperator;
  32.     }

  33. }