public OrImpl or(ConstraintImpl constraint1, ConstraintImpl constraint2) { return new OrImpl(constraint1, constraint2); }
public OrImpl or(ConstraintImpl constraint1, ConstraintImpl constraint2) { return new OrImpl(constraint1, constraint2); }
public OrImpl or(ConstraintImpl constraint1, ConstraintImpl constraint2) { return new OrImpl(constraint1, constraint2); }
@Override public AstElement copyOf() { List<ConstraintImpl> clone = newArrayList(); for (ConstraintImpl c : constraints) { clone.add((ConstraintImpl) copyElementAndCheckReference(c)); } return new OrImpl(clone); }
@Override public AstElement copyOf() { List<ConstraintImpl> clone = newArrayList(); for (ConstraintImpl c : constraints) { clone.add((ConstraintImpl) copyElementAndCheckReference(c)); } return new OrImpl(clone); }
@Override public AstElement copyOf() { List<ConstraintImpl> clone = newArrayList(); for (ConstraintImpl c : constraints) { clone.add((ConstraintImpl) copyElementAndCheckReference(c)); } return new OrImpl(clone); }
@Override ConstraintImpl not() { // not (X and Y) == (not X) or (not Y) List<ConstraintImpl> list = newArrayList(); for (ConstraintImpl constraint : constraints) { list.add(new NotImpl(constraint)); } return new OrImpl(list).simplify(); }
@Override ConstraintImpl not() { // not (X and Y) == (not X) or (not Y) List<ConstraintImpl> list = newArrayList(); for (ConstraintImpl constraint : constraints) { list.add(new NotImpl(constraint)); } return new OrImpl(list).simplify(); }
@Override ConstraintImpl not() { // not (X and Y) == (not X) or (not Y) List<ConstraintImpl> list = newArrayList(); for (ConstraintImpl constraint : constraints) { list.add(new NotImpl(constraint)); } return new OrImpl(list).simplify(); }
return simplified.iterator().next(); } else if (changed) { return new OrImpl(newArrayList(simplified)); } else { return this;
return simplified.iterator().next(); } else if (changed) { return new OrImpl(newArrayList(simplified)); } else { return this;
return simplified.iterator().next(); } else if (changed) { return new OrImpl(newArrayList(simplified)); } else { return this;
@Test public void simplifyForUnion() { ConstraintImpl op1, op2, op3, op4, or; Set<ConstraintImpl> expected; op1 = mock(ComparisonImpl.class); op2 = mock(ComparisonImpl.class); or = new OrImpl(op1, op2); expected = of(op1, op2); assertThat(or.convertToUnion(), is(expected)); op1 = mock(ComparisonImpl.class); op2 = mock(ComparisonImpl.class); op3 = mock(ComparisonImpl.class); or = new OrImpl(new OrImpl(op1, op2), op3); expected = of(op1, op2, op3); assertThat(or.convertToUnion(), is(expected)); op1 = mock(ComparisonImpl.class); op2 = mock(ComparisonImpl.class); op3 = mock(ComparisonImpl.class); op4 = mock(ComparisonImpl.class); or = new OrImpl(new OrImpl(new OrImpl(op1, op4), op2), op3); expected = of(op1, op2, op3, op4); assertThat(or.convertToUnion(), is(expected)); } }
@Test public void simplifyOr() { assertEquals(fooIsA, new OrImpl(fooIsA, fooIsA).simplify()); assertEquals(fooInAB, new OrImpl(fooIsA, fooIsB).simplify()); assertEquals(fooInBC, new OrImpl(fooIsB, fooIsC).simplify()); assertEquals(fooInABC, new OrImpl(fooInAB, fooIsC).simplify()); assertEquals(fooInABC, new OrImpl(fooIsA, fooInBC).simplify()); assertEquals(fooInABC, new OrImpl(fooInAB, fooInBC).simplify()); assertEquals(fooInABC, new OrImpl(fooIsA, fooInABC).simplify()); assertEquals(fooInABC, new OrImpl(fooIsA, new OrImpl(fooIsB, fooIsC)).simplify()); }
op2 = mockConstraint("op2", ComparisonImpl.class); op3 = mockConstraint("op3", ComparisonImpl.class); and = new AndImpl(new OrImpl(op1, op2), op3); expected = of( (ConstraintImpl) new AndImpl(op1, op3) op3 = mockConstraint("op3", ComparisonImpl.class); op4 = mockConstraint("op4", ComparisonImpl.class); and = new AndImpl(new OrImpl(new OrImpl(op1, op4), op2), op3); expected = of( (ConstraintImpl) new AndImpl(op1, op3)
c = new OrImpl(c1, c2); query = createQuery(c); assertTrue(query.containsUnfilteredFullTextCondition()); c2 = new FullTextSearchImpl(null, null, null); c3 = new FullTextSearchImpl(null, null, null); c = new OrImpl(of(c1, c2, c3)); query = createQuery(c); assertTrue(query.containsUnfilteredFullTextCondition()); c3 = new FullTextSearchImpl(null, null, null); c4 = new ComparisonImpl(null, null, null); c1 = new OrImpl(of(c2, c3, c4)); c5 = mock(DescendantNodeImpl.class); c = new AndImpl(c1, c5); c2 = new FullTextSearchImpl(null, null, null); c3 = new FullTextSearchImpl(null, null, null); c = new OrImpl(of(c1, c2, c3)); query = createQuery(c); assertFalse(query.containsUnfilteredFullTextCondition());