Refine search
public Object visit(Not filter, Object extraData) { FilterFactory2 ff = getFactory(extraData); Filter inner = filter.getFilter(); if (inner instanceof Not) { return innerNot.getFilter().accept(this, extraData); } else if (inner instanceof And) { List<Filter> negatedChildren = new ArrayList<>(); for (Filter child : children) { negatedChildren.add((Filter) ff.not(child).accept(this, extraData)); List<Filter> negatedChildren = new ArrayList<>(); for (Filter child : children) { negatedChildren.add((Filter) ff.not(child).accept(this, extraData)); Filter simplified = (Filter) inner.accept(this, extraData); if (simplified == Filter.INCLUDE) { return Filter.EXCLUDE;
@Override public Object getProperty(Object object, QName name) throws Exception { Not not = (Not) object; if (OGC.spatialOps.equals(name) && not.getFilter() instanceof BinarySpatialOperator) { return not.getFilter(); } if (OGC.logicOps.equals(name) && not.getFilter() instanceof BinaryLogicOperator) { return not.getFilter(); } if (OGC.comparisonOps.equals(name) && not.getFilter() instanceof BinaryComparisonOperator) { return not.getFilter(); } if (OGC.comparisonOps.equals(name) && not.getFilter() instanceof PropertyIsNull) { return not.getFilter(); } return null; } }
public void testNotFilter() { // set GEOT-1566 PropertyIsLike like = fac.like(fac.property("stringProperty"), "ab*"); Not not = fac.not(like); DuplicatingFilterVisitor visitor = new DuplicatingFilterVisitor(fac); Not clone = (Not) not.accept(visitor, null); assertEquals(not, clone); assertNotSame(not, clone); assertNotSame(like, clone.getFilter()); }
public void testSimplifyNegateImpossible() throws Exception { PropertyIsEqualTo propertyIsEqualTo = ff.equal(ff.literal("a"), ff.literal("b"), true); Not negated = ff.not(propertyIsEqualTo); SimplifyingFilterVisitor visitor = new SimplifyingFilterVisitor(); SimpleFeatureType schema = DataUtilities.createType("test", "pop:String"); visitor.setFeatureType(schema); Filter simplified = (Filter) negated.accept(visitor, null); assertEquals(Filter.INCLUDE, simplified); } }
assertFalse(fac.not(filter).evaluate(testFeature));
private Filter translateOr(Or filter) throws IllegalFilterException { if (!(filter instanceof Or)) { return filter; } // a|b == ~~(a|b) negative introduction // ~(a|b) == (~a + ~b) modus ponens // ~~(a|b) == ~(~a + ~b) substitution // a|b == ~(~a + ~b) negative simpilification Iterator i = filter.getChildren().iterator(); List translated = new ArrayList(); while (i.hasNext()) { Filter f = (Filter) i.next(); if (f instanceof Not) { // simplify it Not logic = (Not) f; Filter next = logic.getFilter(); translated.add(next); } else { translated.add(ff.not(f)); } } Filter and = ff.and(translated); return ff.not(and); }
private Filter translateOr(Or filter) throws IllegalFilterException { if (!(filter instanceof Or)) { return filter; } // a|b == ~~(a|b) negative introduction // ~(a|b) == (~a + ~b) modus ponens // ~~(a|b) == ~(~a + ~b) substitution // a|b == ~(~a + ~b) negative simpilification Iterator i = filter.getChildren().iterator(); List translated = new ArrayList(); while (i.hasNext()) { Filter f = (Filter) i.next(); if (f instanceof Not) { // simplify it Not logic = (Not) f; Filter next = logic.getFilter(); translated.add(next); } else { translated.add(ff.not(f)); } } Filter and = ff.and(translated); return ff.not(and); }
if (f1 instanceof Not) { Not not = (Not) f1; return f2.equals(not.getFilter()); } else if (f2 instanceof Not) { Not not = (Not) f2; return f1.equals(not.getFilter()); } else if ((f1 instanceof PropertyIsEqualTo && f2 instanceof PropertyIsNotEqualTo) || (f1 instanceof PropertyIsNotEqualTo && f2 instanceof PropertyIsEqualTo)) {
return ((Not) result).getFilter(); } else { return ((BinaryLogicOperator) result).getChildren().get(0);
if (!(this.fullySupports(lf.getFilter()))) { supports = false;
public void testParse() throws Exception { FilterMockData.not(document, document); Not not = (Not) parse(); assertNotNull(not.getFilter()); }
public void testParse() throws Exception { FilterMockData.not(document, document); Not not = (Not) parse(); assertNotNull(not.getFilter()); }