/** * Returns a predicate that evaluates to {@code true} if each of its components evaluates to * {@code true}. * * <p>The components are evaluated in order, and evaluation will be "short-circuited" as soon as * a false predicate is found. */ public static Filter and(Filter op1, Filter op2) { List<Filter> children = new ArrayList<Filter>(); if (op1 instanceof And) { children.addAll(((And) op1).getChildren()); } else { children.add(op1); } if (op2 instanceof And) { children.addAll(((And) op2).getChildren()); } else { children.add(op2); } return factory.and(children); }
public Object visit(And filter, Object data) { if (data == null) return null; if (filter.getChildren() != null) { for (Filter child : filter.getChildren()) { data = child.accept(this, data); if (data == null) return null; } } return data; }
public Object visit(And filter, Object data) { if (filter.getChildren() != null) { for (Filter child : filter.getChildren()) { child.accept(this, data); if (found) break; } } return found; }
@Override protected void addFiltersToResults(List<Filter> results, Filter filter) { if (filter instanceof org.opengis.filter.And) { results.addAll(((org.opengis.filter.And) filter).getChildren()); } else { results.add(filter); } } }
@Override public Object visit(And filter, Object extraData) { List<Filter> children = filter.getChildren(); for (Filter child : children) { child.accept(this, extraData); } return extraData; }
public Object visit(And filter, Object data) { List<Filter> childList = filter.getChildren(); if (childList != null) { for (Filter child : childList) { if (child == null) continue; data = child.accept(this, data); } } return data; }
public Object visit(And filter, Object data) { List<Filter> childList = filter.getChildren(); if (childList != null) { for (Filter child : childList) { if (child == null) continue; children.add(child); data = child.accept(this, data); } } return data; }
public AndBuilder<P> reset(And filter) { if (filter == null) { return unset(); } this.list = new ArrayList<FilterBuilder>(); if (filter.getChildren() != null) { for (Filter child : filter.getChildren()) { list.add(new FilterBuilder().reset(child)); } } return this; }
public Object visit(And filter, Object extraData) { List<Filter> children = filter.getChildren(); List<Filter> newChildren = new ArrayList<Filter>(); for (Iterator<Filter> iter = children.iterator(); iter.hasNext(); ) { Filter child = iter.next(); if (child != null) { Filter newChild = (Filter) child.accept(this, extraData); newChildren.add(newChild); } } return getFactory(extraData).and(newChildren); }
public Object visit(And filter, Object data) { if (found(data)) { return data; // short cut } if (filter.getChildren() != null) { for (Filter child : filter.getChildren()) { data = child.accept(this, data); if (found(data)) { return data; } } } return data; }
@Override public Object visit(And filter, Object data) { Envelope mixed = infinity(); for (Filter f : filter.getChildren()) { Envelope env = (Envelope) f.accept(this, data); mixed = mixed.intersection(env); } return mixed; }
public Object visit(And filter, Object extraData) { start("And"); for (org.opengis.filter.Filter child : filter.getChildren()) { child.accept(this, extraData); } end("And"); return extraData; }
public Object visit(And filter, Object extraData) { ScalarCapabilities scalar = capabilities.getScalarCapabilities(); if (scalar == null || !scalar.hasLogicalOperators()) { return false; } List<Filter> children = filter.getChildren(); if (children == null) return false; for (Filter child : children) { boolean yes = (Boolean) child.accept(this, null); if (!yes) return false; } return true; }
public void testAndWithLikeParse() throws Exception { Element e = FilterMockData.and(document, document, true); FilterMockData.propertyIsLike(document, e); FilterMockData.propertyIsLike(document, e); And and = (And) parse(); assertEquals(2, and.getChildren().size()); assertTrue(and.getChildren().get(0) instanceof PropertyIsLike); assertTrue(and.getChildren().get(1) instanceof PropertyIsLike); }
public void testAndWithNullParse() throws Exception { Element e = FilterMockData.and(document, document, true); FilterMockData.propertyisNull(document, e); FilterMockData.propertyisNull(document, e); And and = (And) parse(); assertEquals(2, and.getChildren().size()); assertTrue(and.getChildren().get(0) instanceof PropertyIsNull); assertTrue(and.getChildren().get(1) instanceof PropertyIsNull); }
public void testAndWithBetweenParse() throws Exception { Element e = FilterMockData.and(document, document, true); FilterMockData.propertyIsBetween(document, e); FilterMockData.propertyIsBetween(document, e); And and = (And) parse(); assertEquals(2, and.getChildren().size()); assertTrue(and.getChildren().get(0) instanceof PropertyIsBetween); assertTrue(and.getChildren().get(1) instanceof PropertyIsBetween); }
@Override public Object visit(And filter, Object extraData) { BasicDBObject output = asDBObject(extraData); List<Filter> children = filter.getChildren(); BasicDBList andList = new BasicDBList(); if (children != null) { for (Filter child : children) { BasicDBObject item = (BasicDBObject) child.accept(this, null); andList.add(item); } output.put("$and", andList); } return output; }
public void testAndParse() throws Exception { FilterMockData.and(document, document); And and = (And) parse(); assertEquals(2, and.getChildren().size()); }
public void testAndParse() throws Exception { FilterMockData.and(document, document); And and = (And) parse(); assertEquals(2, and.getChildren().size()); }
public void testCoalesheNestedAnd() { Filter eq = ff.equal(ff.property("A"), ff.literal("3"), true); Filter gt = ff.greater(ff.property("b"), ff.literal("3")); Filter lt = ff.less(ff.property("c"), ff.literal("5")); And nested = ff.and(Arrays.asList(ff.and(Arrays.asList(eq, gt)), lt)); And simplified = (And) nested.accept(simpleVisitor, null); assertEquals(3, simplified.getChildren().size()); assertEquals(ff.and(Arrays.asList(eq, gt, lt)), simplified); }