/** * OR's provided expressions to the existing WHERE clause expression. * * @return this object */ public ObjectSelect<T> or(Collection<Expression> expressions) { if (expressions == null || expressions.isEmpty()) { return this; } Collection<Expression> all; if (where != null) { all = new ArrayList<>(expressions.size() + 1); all.add(where); all.addAll(expressions); } else { all = expressions; } where = ExpressionFactory.or(all); replacementQuery = null; return this; }
/** * OR's provided expressions to the existing WHERE or HAVING clause expression. * * @return this object */ public ColumnSelect<T> or(Collection<Expression> expressions) { if (expressions == null || expressions.isEmpty()) { return this; } Collection<Expression> all; Expression activeExpression = getActiveExpression(); if (activeExpression != null) { all = new ArrayList<>(expressions.size() + 1); all.add(activeExpression); all.addAll(expressions); } else { all = expressions; } setActiveExpression(ExpressionFactory.or(all)); return this; }
public List<T> match(ObjectContext context, Map<Object, Map<String, Object>> mappedSegment) { Collection<Object> keys = mappedSegment.keySet(); List<Expression> expressions = new ArrayList<>(keys.size()); for (Object key : keys) { Expression e = mapper.expressionForKey(key); if (e != null) { expressions.add(e); } } // no keys (?) if (expressions.isEmpty()) { return Collections.emptyList(); } else { return ObjectSelect.query(type).where(ExpressionFactory.or(expressions)).select(context); } } }