/** * Copyright (c) Codice Foundation * <p/> * This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser * General Public License as published by the Free Software Foundation, either version 3 of the * License, or any later version. * <p/> * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. A copy of the GNU Lesser General Public License * is distributed along with this program and can be found at * <http://www.gnu.org/licenses/lgpl.html>. */ package ddf.catalog.metrics; import java.util.Date; import java.util.List; import ddf.catalog.filter.FilterDelegate; /** * Filter delegate to determine the types of filter features being used. * * @author Phillip Klinefelter * @author ddf.isgs@lmco.com * */ public class QueryTypeFilterDelegate extends FilterDelegate<Boolean> { private boolean isSpatial = false; private boolean isTemporal = false; private boolean isXpath = false; private boolean isLogical = false; private boolean isFuzzy = false; private boolean isCaseSensitive = false; private boolean isComparison = false; @Override public Boolean nearestNeighbor(String propertyName, String wkt) { return isSpatial = true; } @Override public Boolean beyond(String propertyName, String wkt, double distance) { return isSpatial = true; } @Override public Boolean contains(String propertyName, String wkt) { return isSpatial = true; } @Override public Boolean crosses(String propertyName, String wkt) { return isSpatial = true; } @Override public Boolean disjoint(String propertyName, String wkt) { return isSpatial = true; } @Override public Boolean dwithin(String propertyName, String wkt, double distance) { return isSpatial = true; } @Override public Boolean intersects(String propertyName, String wkt) { return isSpatial = true; } @Override public Boolean overlaps(String propertyName, String wkt) { return isSpatial = true; } @Override public Boolean touches(String propertyName, String wkt) { return isSpatial = true; } @Override public Boolean within(String propertyName, String wkt) { return isSpatial = true; } @Override public Boolean xpathExists(String xpath) { return isXpath = true; } @Override public Boolean xpathIsLike(String xpath, String pattern, boolean isCaseSensitive) { return isXpath = true; } @Override public Boolean xpathIsFuzzy(String xpath, String literal) { return isXpath = true; } @Override public Boolean after(String propertyName, Date date) { return isTemporal = true; } @Override public Boolean before(String propertyName, Date date) { return isTemporal = true; } @Override public Boolean during(String propertyName, Date startDate, Date endDate) { return isTemporal = true; } @Override public Boolean relative(String propertyName, long duration) { return isTemporal = true; } @Override public Boolean and(List<Boolean> operands) { return isLogical = true; } @Override public Boolean or(List<Boolean> operands) { return isLogical = true; } @Override public Boolean not(Boolean operand) { return isLogical = true; } @Override public Boolean include() { return isLogical = true; } @Override public Boolean exclude() { return isLogical = true; } @Override public Boolean propertyIsEqualTo(String propertyName, String literal, boolean isCaseSensitive) { if (isCaseSensitive) { this.isCaseSensitive = true; } return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, Date literal) { return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, Date startDate, Date endDate) { return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, int literal) { return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, short literal) { return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, long literal) { return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, float literal) { return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, double literal) { return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, boolean literal) { return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, byte[] literal) { return isComparison = true; } @Override public Boolean propertyIsEqualTo(String propertyName, Object literal) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, String literal, boolean isCaseSensitive) { if (isCaseSensitive) { this.isCaseSensitive = true; } return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, Date literal) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, Date startDate, Date endDate) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, int literal) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, short literal) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, long literal) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, float literal) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, double literal) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, boolean literal) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, byte[] literal) { return isComparison = true; } @Override public Boolean propertyIsNotEqualTo(String propertyName, Object literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThan(String propertyName, String literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThan(String propertyName, Date literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThan(String propertyName, int literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThan(String propertyName, short literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThan(String propertyName, long literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThan(String propertyName, float literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThan(String propertyName, double literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThan(String propertyName, Object literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThanOrEqualTo(String propertyName, String literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThanOrEqualTo(String propertyName, Date literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThanOrEqualTo(String propertyName, int literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThanOrEqualTo(String propertyName, short literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThanOrEqualTo(String propertyName, long literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThanOrEqualTo(String propertyName, float literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThanOrEqualTo(String propertyName, double literal) { return isComparison = true; } @Override public Boolean propertyIsGreaterThanOrEqualTo(String propertyName, Object literal) { return isComparison = true; } @Override public Boolean propertyIsLessThan(String propertyName, String literal) { return isComparison = true; } @Override public Boolean propertyIsLessThan(String propertyName, Date literal) { return isComparison = true; } @Override public Boolean propertyIsLessThan(String propertyName, int literal) { return isComparison = true; } @Override public Boolean propertyIsLessThan(String propertyName, short literal) { return isComparison = true; } @Override public Boolean propertyIsLessThan(String propertyName, long literal) { return isComparison = true; } @Override public Boolean propertyIsLessThan(String propertyName, float literal) { return isComparison = true; } @Override public Boolean propertyIsLessThan(String propertyName, double literal) { return isComparison = true; } @Override public Boolean propertyIsLessThan(String propertyName, Object literal) { return isComparison = true; } @Override public Boolean propertyIsLessThanOrEqualTo(String propertyName, String literal) { return isComparison = true; } @Override public Boolean propertyIsLessThanOrEqualTo(String propertyName, Date literal) { return isComparison = true; } @Override public Boolean propertyIsLessThanOrEqualTo(String propertyName, int literal) { return isComparison = true; } @Override public Boolean propertyIsLessThanOrEqualTo(String propertyName, short literal) { return isComparison = true; } @Override public Boolean propertyIsLessThanOrEqualTo(String propertyName, long literal) { return isComparison = true; } @Override public Boolean propertyIsLessThanOrEqualTo(String propertyName, float literal) { return isComparison = true; } @Override public Boolean propertyIsLessThanOrEqualTo(String propertyName, double literal) { return isComparison = true; } @Override public Boolean propertyIsLessThanOrEqualTo(String propertyName, Object literal) { return isComparison = true; } @Override public Boolean propertyIsBetween(String propertyName, String lowerBoundary, String upperBoundary) { return isComparison = true; } @Override public Boolean propertyIsBetween(String propertyName, Date lowerBoundary, Date upperBoundary) { return isComparison = true; } @Override public Boolean propertyIsBetween(String propertyName, int lowerBoundary, int upperBoundary) { return isComparison = true; } @Override public Boolean propertyIsBetween(String propertyName, short lowerBoundary, short upperBoundary) { return isComparison = true; } @Override public Boolean propertyIsBetween(String propertyName, long lowerBoundary, long upperBoundary) { return isComparison = true; } @Override public Boolean propertyIsBetween(String propertyName, float lowerBoundary, float upperBoundary) { return isComparison = true; } @Override public Boolean propertyIsBetween(String propertyName, double lowerBoundary, double upperBoundary) { return isComparison = true; } @Override public Boolean propertyIsBetween(String propertyName, Object lowerBoundary, Object upperBoundary) { return isComparison = true; } @Override public Boolean propertyIsNull(String propertyName) { return isComparison = true; } @Override public Boolean propertyIsLike(String propertyName, String pattern, boolean isCaseSensitive) { if (isCaseSensitive) { this.isCaseSensitive = true; } return isComparison = true; } @Override public Boolean propertyIsFuzzy(String propertyName, String literal) { isFuzzy = true; return isComparison = true; } public boolean isSpatial() { return isSpatial; } public boolean isTemporal() { return isTemporal; } public boolean isXpath() { return isXpath; } public boolean isLogical() { return isLogical; } public boolean isFuzzy() { return isFuzzy; } public boolean isCaseSensitive() { return isCaseSensitive; } public boolean isComparison() { return isComparison; } }