@Override public Or<E> clone() { return new Or<E>(this); }
public static <E extends TitanElement> Or<E> of(Condition<E>... elements) { return new Or<E>(elements); }
/** * Constructs a condition that is equivalent to the type constraints of this query if there are any. * * @param types * @return */ private static Condition<TitanRelation> getTypeCondition(Set<RelationType> types) { assert !types.isEmpty(); if (types.size() == 1) return new RelationTypeCondition<TitanRelation>(types.iterator().next()); Or<TitanRelation> typeCond = new Or<TitanRelation>(types.size()); for (RelationType type : types) typeCond.add(new RelationTypeCondition<TitanRelation>(type)); return typeCond; }
addConstraint(type, Cmp.EQUAL, values.iterator().next(), conditions, tx); } else { Or<E> nested = new Or<E>(values.size()); for (Object invalue : values) addConstraint(type, Cmp.EQUAL, invalue, nested, tx);
public static final<E extends TitanElement> Condition<E> transformation(Condition<E> condition, Function<Condition<E>,Condition<E>> transformation) { Condition<E> transformed = transformation.apply(condition); if (transformed!=null) return transformed; //if transformed==null we go a level deeper if (condition.getType()== Condition.Type.LITERAL) { return condition; } else if (condition instanceof Not) { return Not.of(transformation(((Not) condition).getChild(), transformation)); } else if (condition instanceof And) { And<E> newand = new And<E>(condition.numChildren()); for (Condition<E> child : condition.getChildren()) newand.add(transformation(child, transformation)); return newand; } else if (condition instanceof Or) { Or<E> newor = new Or<E>(condition.numChildren()); for (Condition<E> child : condition.getChildren()) newor.add(transformation(child, transformation)); return newor; } else throw new IllegalArgumentException("Unexpected condition type: " + condition); }
@Override public Or<E> clone() { return new Or<E>(this); }
@Override public Or<E> clone() { return new Or<E>(this); }
public static <E extends TitanElement> Or<E> of(Condition<E>... elements) { return new Or<E>(elements); }
public static <E extends TitanElement> Or<E> of(Condition<E>... elements) { return new Or<E>(elements); }
/** * Constructs a condition that is equivalent to the type constraints of this query if there are any. * * @param types * @return */ private static Condition<TitanRelation> getTypeCondition(Set<RelationType> types) { assert !types.isEmpty(); if (types.size() == 1) return new RelationTypeCondition<TitanRelation>(types.iterator().next()); Or<TitanRelation> typeCond = new Or<TitanRelation>(types.size()); for (RelationType type : types) typeCond.add(new RelationTypeCondition<TitanRelation>(type)); return typeCond; }
/** * Constructs a condition that is equivalent to the type constraints of this query if there are any. * * @param types * @return */ private static Condition<TitanRelation> getTypeCondition(Set<RelationType> types) { assert !types.isEmpty(); if (types.size() == 1) return new RelationTypeCondition<TitanRelation>(types.iterator().next()); Or<TitanRelation> typeCond = new Or<TitanRelation>(types.size()); for (RelationType type : types) typeCond.add(new RelationTypeCondition<TitanRelation>(type)); return typeCond; }
addConstraint(type, Cmp.EQUAL, values.iterator().next(), conditions, tx); } else { Or<E> nested = new Or<E>(values.size()); for (Object invalue : values) addConstraint(type, Cmp.EQUAL, invalue, nested, tx);
addConstraint(type, Cmp.EQUAL, values.iterator().next(), conditions, tx); } else { Or<E> nested = new Or<E>(values.size()); for (Object invalue : values) addConstraint(type, Cmp.EQUAL, invalue, nested, tx);
public static final<E extends TitanElement> Condition<E> transformation(Condition<E> condition, Function<Condition<E>,Condition<E>> transformation) { Condition<E> transformed = transformation.apply(condition); if (transformed!=null) return transformed; //if transformed==null we go a level deeper if (condition.getType()== Condition.Type.LITERAL) { return condition; } else if (condition instanceof Not) { return Not.of(transformation(((Not) condition).getChild(), transformation)); } else if (condition instanceof And) { And<E> newand = new And<E>(condition.numChildren()); for (Condition<E> child : condition.getChildren()) newand.add(transformation(child, transformation)); return newand; } else if (condition instanceof Or) { Or<E> newor = new Or<E>(condition.numChildren()); for (Condition<E> child : condition.getChildren()) newor.add(transformation(child, transformation)); return newor; } else throw new IllegalArgumentException("Unexpected condition type: " + condition); }
public static final<E extends TitanElement> Condition<E> transformation(Condition<E> condition, Function<Condition<E>,Condition<E>> transformation) { Condition<E> transformed = transformation.apply(condition); if (transformed!=null) return transformed; //if transformed==null we go a level deeper if (condition.getType()== Condition.Type.LITERAL) { return condition; } else if (condition instanceof Not) { return Not.of(transformation(((Not) condition).getChild(), transformation)); } else if (condition instanceof And) { And<E> newand = new And<E>(condition.numChildren()); for (Condition<E> child : condition.getChildren()) newand.add(transformation(child, transformation)); return newand; } else if (condition instanceof Or) { Or<E> newor = new Or<E>(condition.numChildren()); for (Condition<E> child : condition.getChildren()) newor.add(transformation(child, transformation)); return newor; } else throw new IllegalArgumentException("Unexpected condition type: " + condition); }