BinaryComparisonOperator.java
- package de.turnertech.ows.filter;
- import de.turnertech.ows.gml.IFeature;
- public class BinaryComparisonOperator implements ComparisonOperator {
- private final Expression leftExpression;
- private final BinaryComparisonName operatorType;
- private final Expression rightExpression;
- private boolean matchCase;
- private MatchAction matchAction;
- public BinaryComparisonOperator(final Expression leftExpression, BinaryComparisonName operatorType, final Expression rightExpression) {
- this.leftExpression = leftExpression;
- this.operatorType = operatorType;
- this.rightExpression = rightExpression;
- this.matchCase = true;
- this.matchAction = MatchAction.ANY;
- }
-
- public Expression getLeftExpression() {
- return leftExpression;
- }
- public BinaryComparisonName getOperatorType() {
- return operatorType;
- }
- public Expression getRightExpression() {
- return rightExpression;
- }
- public boolean isMatchCase() {
- return matchCase;
- }
- public BinaryComparisonOperator setMatchCase(boolean matchCase) {
- this.matchCase = matchCase;
- return this;
- }
- public MatchAction getMatchAction() {
- return matchAction;
- }
- public BinaryComparisonOperator setMatchAction(MatchAction matchAction) {
- this.matchAction = matchAction;
- return this;
- }
- @Override
- public boolean test(IFeature feature) {
- // Special case handling for null.
- if(leftExpression == null && rightExpression == null && operatorType.equals(BinaryComparisonName.PROPERTY_IS_EQUAL_TO)) {
- return true;
- }
- if(leftExpression == null || rightExpression == null) {
- return false;
- }
- final Object left = leftExpression.apply(feature);
- final Object right = rightExpression.apply(feature);
- return operatorType.test(left, right, matchCase);
- }
-
- }