/** * Adds a new support type to capabilities. * * @param type The {@link FilterType} type that is supported * @deprecated * @see #convertFilterTypeToMask(short) * @see #addType(long) */ public void addType(short type) { addAll(convertFilterTypeToMask(type)); }
/** * @see org.geotools.xml.schema.Type#getValue(org.geotools.xml.schema.Element, * org.geotools.xml.schema.ElementValue[], org.xml.sax.Attributes, java.util.Map) */ public Object getValue(Element element, ElementValue[] value, Attributes attrs, Map hints) { FilterCapabilities caps = new FilterCapabilities(); for (int i = 0; i < value.length; i++) { caps.addAll((FilterCapabilities) value[i].getValue()); } return caps; }
/** * @see org.geotools.xml.schema.Type#getValue(org.geotools.xml.schema.Element, * org.geotools.xml.schema.ElementValue[], org.xml.sax.Attributes, java.util.Map) */ public Object getValue(Element element, ElementValue[] value, Attributes attrs, Map hints) { // TODO FilterCapabilities caps = new FilterCapabilities(); String functionName = (String) value[0].getValue(); caps.addAll(FilterCapabilities.findFunction(functionName.toLowerCase())); return caps; }
/** * @see org.geotools.xml.schema.Type#getValue(org.geotools.xml.schema.Element, * org.geotools.xml.schema.ElementValue[], org.xml.sax.Attributes, java.util.Map) */ public Object getValue(Element element, ElementValue[] value, Attributes attrs, Map hints) throws SAXException, SAXNotSupportedException { if ((element == null) || (value == null)) { throw new SAXException("Parameter missing for Comparison_OperatorsType"); } if (value.length < 1) { throw new SAXException("Missing child element"); } FilterCapabilities caps = new FilterCapabilities(); for (int i = 0; i < value.length; i++) { String name = value[i].getElement().getName(); if (name.equals("Functions")) caps.addAll((FilterCapabilities) value[i].getValue()); else caps.addAll(FilterCapabilities.findOperation(name)); } return caps; }
/** * @see org.geotools.xml.schema.Type#getValue(org.geotools.xml.schema.Element, * org.geotools.xml.schema.ElementValue[], org.xml.sax.Attributes, java.util.Map) */ public Object getValue(Element element, ElementValue[] value, Attributes attrs, Map hints) throws SAXException, SAXNotSupportedException { if ((element == null) || (value == null)) { throw new SAXException("Parameter missing for Comparison_OperatorsType"); } if (value.length < 1) { throw new SAXException("Missing child element"); } FilterCapabilities caps = new FilterCapabilities(); for (int i = 0; i < value.length; i++) { caps.addAll(FilterCapabilities.findOperation(value[i].getElement().getName())); } return caps; }
/** * @see org.geotools.xml.schema.Type#getValue(org.geotools.xml.schema.Element, * org.geotools.xml.schema.ElementValue[], org.xml.sax.Attributes, java.util.Map) */ public Object getValue(Element element, ElementValue[] value, Attributes attrs, Map hints) throws SAXException, SAXNotSupportedException { if ((element == null) || (value == null)) { throw new SAXException("Missing parameter for Spatial_OperatorsType"); } if (value.length < 1) { throw new SAXException("Atleast one child element is required"); } FilterCapabilities caps = new FilterCapabilities(); for (int i = 0; i < value.length; i++) { caps.addAll(FilterCapabilities.findOperation(value[i].getElement().getName())); } return caps; }
/** * Overrides the superclass implementation to indicate that we support pushing FeatureId filters * down into the data store. */ @Override protected FilterCapabilities createFilterCapabilities() { FilterCapabilities capabilities = new FilterCapabilities(); capabilities.addAll(FilterCapabilities.LOGICAL_OPENGIS); capabilities.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); capabilities.addType(FilterCapabilities.SIMPLE_ARITHMETIC); capabilities.addType(PropertyIsNull.class); capabilities.addType(PropertyIsBetween.class); capabilities.addType(Id.class); capabilities.addType(IncludeFilter.class); capabilities.addType(ExcludeFilter.class); capabilities.addType(PropertyIsLike.class); return capabilities; }
FilterCapabilities capabilities = new FilterCapabilities(); if (inEncodingEnabled) { capabilities.addAll(InFunction.getInCapabilities()); capabilities.addAll(FilterCapabilities.LOGICAL_OPENGIS); capabilities.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); capabilities.addType(PropertyIsNull.class); capabilities.addType(PropertyIsBetween.class);
@SuppressWarnings({"rawtypes", "unchecked"}) public void testVisitIdFilterWithNoIdCapabilities() throws Exception { // Id Filter HashSet ids = new HashSet(); ids.add(ff.featureId("david")); Filter idFilter = ff.id(ids); // no Id Capabilities FilterCapabilities fc = new FilterCapabilities(); fc.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); fc.addType(And.class); visitor = newVisitor(fc); idFilter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPre()); assertEquals(idFilter, visitor.getFilterPost()); }
@Override protected FilterCapabilities createFilterCapabilities() { FilterCapabilities caps = new FilterCapabilities(); caps.addAll(SQLDialect.BASE_DBMS_CAPABILITIES); // adding the spatial filters support caps.addType(BBOX.class); caps.addType(Contains.class); caps.addType(Crosses.class); caps.addType(Disjoint.class); caps.addType(Equals.class); caps.addType(Intersects.class); caps.addType(Overlaps.class); caps.addType(Touches.class); caps.addType(Within.class); caps.addType(DWithin.class); caps.addType(Beyond.class); return caps; }
@Override protected FilterCapabilities createFilterCapabilities() { FilterCapabilities caps = super.createFilterCapabilities(); caps.addAll(SQLDialect.BASE_DBMS_CAPABILITIES); caps.addType(BBOX.class); caps.addType(Contains.class); caps.addType(Crosses.class); caps.addType(Disjoint.class); caps.addType(Equals.class); caps.addType(Intersects.class); caps.addType(Overlaps.class); caps.addType(Touches.class); caps.addType(Within.class); caps.addType(DWithin.class); caps.addType(Beyond.class); return caps; }
public void testSupportOnlySome() throws Exception { PropertyIsEqualTo filter1 = createFunctionFilter(); FilterFunction_abs filterFunction_abs = new FilterFunction_abs(); filterFunction_abs.setParameters(Arrays.asList(new Expression[] {ff.property("name")})); PropertyIsEqualTo filter2 = ff.equals(ff.property("name"), filterFunction_abs); Filter filter = ff.and(filter1, filter2); FilterCapabilities filterCapabilitiesMask = new FilterCapabilities(); filterCapabilitiesMask.addType(FilterFunction_geometryType.class); filterCapabilitiesMask.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); filterCapabilitiesMask.addAll(FilterCapabilities.LOGICAL_OPENGIS); visitor = newVisitor(filterCapabilitiesMask); filter.accept(visitor, null); assertEquals(filter1, visitor.getFilterPre()); assertEquals(filter2, visitor.getFilterPost()); } }
capabilities.addType(Not.class); capabilities.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); capabilities.addType(PropertyIsNull.class); capabilities.addType(PropertyIsBetween.class);
@Override protected FilterCapabilities createFilterCapabilities() { FilterCapabilities caps = super.createFilterCapabilities(); caps.addAll(SQLDialect.BASE_DBMS_CAPABILITIES); caps.addType(BBOX.class); caps.addType(Contains.class); caps.addType(Crosses.class); caps.addType(Disjoint.class); caps.addType(Equals.class); caps.addType(Intersects.class); caps.addType(Overlaps.class); caps.addType(Touches.class); caps.addType(Within.class); caps.addType(DWithin.class); caps.addType(Beyond.class); // native filter support caps.addType(NativeFilter.class); return caps; }
public void testSupportAll() throws Exception { PropertyIsEqualTo filter1 = createFunctionFilter(); FilterFunction_abs filterFunction_abs = new FilterFunction_abs(); filterFunction_abs.setParameters(Arrays.asList(new Expression[] {ff.property("name")})); PropertyIsEqualTo filter2 = ff.equals(ff.property("name"), filterFunction_abs); Filter filter = ff.and(filter1, filter2); visitor = newVisitor(new FilterCapabilities()); filter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPre()); assertEquals(filter, visitor.getFilterPost()); FilterCapabilities filterCapabilitiesMask = new FilterCapabilities(); filterCapabilitiesMask.addType(FilterFunction_geometryType.class); filterCapabilitiesMask.addType(FilterFunction_abs.class); filterCapabilitiesMask.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); filterCapabilitiesMask.addAll(FilterCapabilities.LOGICAL_OPENGIS); visitor = newVisitor(filterCapabilitiesMask); filter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPost()); assertEquals(filter, visitor.getFilterPre()); }
public void testNullLiteralInLogicCombination() { FilterCapabilities caps = new FilterCapabilities(); PostPreProcessFilterSplittingVisitor visitor = new PostPreProcessFilterSplittingVisitor(caps, null, null); caps.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); caps.addType(And.class); caps.addType(Or.class); caps.addType(Not.class); Filter f1 = ff.equal(ff.literal(null), ff.literal("test"), false); Filter f2 = ff.not(ff.equal(ff.literal(null), ff.literal("test"), false)); Filter or = ff.or(Arrays.asList(f1, f2)); or.accept(visitor, null); assertEquals(or, visitor.getFilterPre()); assertEquals(Filter.INCLUDE, visitor.getFilterPost()); } }
@Override protected FilterCapabilities createFilterCapabilities() { FilterCapabilities caps = new FilterCapabilities(); caps.addAll(SQLDialect.BASE_DBMS_CAPABILITIES);
public void testOrNotSupported() { FilterCapabilities caps = new FilterCapabilities(); caps.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); caps.addType(And.class); PostPreProcessFilterSplittingVisitor visitor = new PostPreProcessFilterSplittingVisitor(caps, null, null); FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); Filter f1 = ff.equals(ff.property("CFCC"), ff.literal("A41")); Filter f2 = ff.equals(ff.property("CFCC"), ff.literal("A42")); Filter ored = ff.or(f1, f2); ored.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPre()); assertEquals(ored, visitor.getFilterPost()); Filter anded = ff.and(f1, f2); visitor = new PostPreProcessFilterSplittingVisitor(caps, null, null); anded.accept(visitor, null); assertEquals(anded, visitor.getFilterPre()); assertEquals(Filter.INCLUDE, visitor.getFilterPost()); }