NonIdOperatorDecoder.java
package de.turnertech.ows.filter;
import java.util.Arrays;
import java.util.List;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import de.turnertech.ows.common.OwsContext;
/**
* Delegating Decoder
*/
public class NonIdOperatorDecoder {
private NonIdOperatorDecoder() {
}
// TODO: Move to Filter?
public static List<String> COMPARISON_OPERATORS = Arrays.asList("PropertyIsEqualTo", "PropertyIsNotEqualTo", "PropertyIsLessThan", "PropertyIsGreaterThan", "PropertyIsLessThanOrEqualTo", "PropertyIsGreaterThanOrEqualTo", "PropertyIsLike", "PropertyIsNull", "PropertyIsNil", "PropertyIsBetween");
// TODO: Move to Filter?
public static List<String> LOGICAL_OPERATORS = Arrays.asList("And", "Or", "Not");
public static boolean canDecode(final XMLStreamReader in) {
return BinarySpatialOperatorDecoder.canDecode(in);
}
public static NonIdOperator decode(final XMLStreamReader in, final OwsContext owsContext) throws XMLStreamException {
NonIdOperator returnOperator = null;
if(COMPARISON_OPERATORS.contains(in.getLocalName())) {
returnOperator = ComparisonOperatorDecoder.decode(in, owsContext);
} else if(LOGICAL_OPERATORS.contains(in.getLocalName())) {
returnOperator = LogicalOperatorDecoder.decode(in, owsContext);
} else if(SpatialOperatorDecoder.canDecode(in)) {
returnOperator = SpatialOperatorDecoder.decode(in, owsContext);
}
return returnOperator;
}
}