/** * Rewrites "a [NOT] BETWEEN b AND c" as "a >= b AND a <= c", or as "a <= b OR a>= c" * @param criteria * @return * @throws QueryValidatorException */ private Criteria rewriteCriteria(BetweenCriteria criteria) throws TeiidComponentException, TeiidProcessingException{ CompareCriteria lowerCriteria = new CompareCriteria(criteria.getExpression(), criteria.isNegated() ? CompareCriteria.LT: CompareCriteria.GE, criteria.getLowerExpression()); CompareCriteria upperCriteria = new CompareCriteria(criteria.getExpression(), criteria.isNegated() ? CompareCriteria.GT: CompareCriteria.LE, criteria.getUpperExpression()); CompoundCriteria newCriteria = new CompoundCriteria(criteria.isNegated() ? CompoundCriteria.OR : CompoundCriteria.AND, lowerCriteria, upperCriteria); return rewriteCriteria(newCriteria); }
/** * Rewrites "a [NOT] BETWEEN b AND c" as "a >= b AND a <= c", or as "a <= b OR a>= c" * @param criteria * @return * @throws QueryValidatorException */ private Criteria rewriteCriteria(BetweenCriteria criteria) throws TeiidComponentException, TeiidProcessingException{ CompareCriteria lowerCriteria = new CompareCriteria(criteria.getExpression(), criteria.isNegated() ? CompareCriteria.LT: CompareCriteria.GE, criteria.getLowerExpression()); CompareCriteria upperCriteria = new CompareCriteria(criteria.getExpression(), criteria.isNegated() ? CompareCriteria.GT: CompareCriteria.LE, criteria.getUpperExpression()); CompoundCriteria newCriteria = new CompoundCriteria(criteria.isNegated() ? CompoundCriteria.OR : CompoundCriteria.AND, lowerCriteria, upperCriteria); return rewriteCriteria(newCriteria); }
/** * Rewrites "a [NOT] BETWEEN b AND c" as "a >= b AND a <= c", or as "a <= b OR a>= c" * @param criteria * @return * @throws QueryValidatorException */ private Criteria rewriteCriteria(BetweenCriteria criteria) throws TeiidComponentException, TeiidProcessingException{ CompareCriteria lowerCriteria = new CompareCriteria(criteria.getExpression(), criteria.isNegated() ? CompareCriteria.LT: CompareCriteria.GE, criteria.getLowerExpression()); CompareCriteria upperCriteria = new CompareCriteria(criteria.getExpression(), criteria.isNegated() ? CompareCriteria.GT: CompareCriteria.LE, criteria.getUpperExpression()); CompoundCriteria newCriteria = new CompoundCriteria(criteria.isNegated() ? CompoundCriteria.OR : CompoundCriteria.AND, lowerCriteria, upperCriteria); return rewriteCriteria(newCriteria); }
/** * Comparees this criteria to another object for equality * @param obj Other object * @return True if objects are equal */ public boolean equals(Object obj) { if(this == obj) { return true; } if(!(obj instanceof BetweenCriteria)) { return false; } BetweenCriteria other = (BetweenCriteria) obj; if (isNegated() ^ other.isNegated()) { return false; } return EquivalenceUtil.areEqual(getExpression(), other.getExpression()) && EquivalenceUtil.areEqual(getLowerExpression(), other.getLowerExpression()) && EquivalenceUtil.areEqual(getUpperExpression(), other.getUpperExpression()); }
/** * Comparees this criteria to another object for equality * @param obj Other object * @return True if objects are equal */ public boolean equals(Object obj) { if(this == obj) { return true; } if(!(obj instanceof BetweenCriteria)) { return false; } BetweenCriteria other = (BetweenCriteria) obj; if (isNegated() ^ other.isNegated()) { return false; } return EquivalenceUtil.areEqual(getExpression(), other.getExpression()) && EquivalenceUtil.areEqual(getLowerExpression(), other.getLowerExpression()) && EquivalenceUtil.areEqual(getUpperExpression(), other.getUpperExpression()); }
/** * Comparees this criteria to another object for equality * @param obj Other object * @return True if objects are equal */ public boolean equals(Object obj) { if(this == obj) { return true; } if(!(obj instanceof BetweenCriteria)) { return false; } BetweenCriteria other = (BetweenCriteria) obj; if (isNegated() ^ other.isNegated()) { return false; } return EquivalenceUtil.areEqual(getExpression(), other.getExpression()) && EquivalenceUtil.areEqual(getLowerExpression(), other.getLowerExpression()) && EquivalenceUtil.areEqual(getUpperExpression(), other.getUpperExpression()); }
/** * Deep copy of object * @return Deep copy of object */ public Object clone() { Expression copy = null; Expression lowerCopy = null; Expression upperCopy = null; if(getExpression() != null) { copy = (Expression) getExpression().clone(); } if(getLowerExpression() != null) { lowerCopy = (Expression) getLowerExpression().clone(); } if(getUpperExpression() != null) { upperCopy = (Expression) getUpperExpression().clone(); } BetweenCriteria criteriaCopy = new BetweenCriteria(copy, lowerCopy, upperCopy); criteriaCopy.setNegated(isNegated()); return criteriaCopy; }
/** * Deep copy of object * @return Deep copy of object */ public Object clone() { Expression copy = null; Expression lowerCopy = null; Expression upperCopy = null; if(getExpression() != null) { copy = (Expression) getExpression().clone(); } if(getLowerExpression() != null) { lowerCopy = (Expression) getLowerExpression().clone(); } if(getUpperExpression() != null) { upperCopy = (Expression) getUpperExpression().clone(); } BetweenCriteria criteriaCopy = new BetweenCriteria(copy, lowerCopy, upperCopy); criteriaCopy.setNegated(isNegated()); return criteriaCopy; }
/** * Deep copy of object * @return Deep copy of object */ public Object clone() { Expression copy = null; Expression lowerCopy = null; Expression upperCopy = null; if(getExpression() != null) { copy = (Expression) getExpression().clone(); } if(getLowerExpression() != null) { lowerCopy = (Expression) getLowerExpression().clone(); } if(getUpperExpression() != null) { upperCopy = (Expression) getUpperExpression().clone(); } BetweenCriteria criteriaCopy = new BetweenCriteria(copy, lowerCopy, upperCopy); criteriaCopy.setNegated(isNegated()); return criteriaCopy; }
@Override public void visit( BetweenCriteria obj ) { visitNode(obj.getExpression()); append(SPACE); if (obj.isNegated()) { append(NOT); append(SPACE); } append(BETWEEN); append(SPACE); visitNode(obj.getLowerExpression()); append(SPACE); append(AND); append(SPACE); visitNode(obj.getUpperExpression()); }
@Override public void visit( BetweenCriteria obj ) { visitNode(obj.getExpression()); append(SPACE); if (obj.isNegated()) { append(NOT); append(SPACE); } append(BETWEEN); append(SPACE); visitNode(obj.getLowerExpression()); append(SPACE); append(AND); append(SPACE); visitNode(obj.getUpperExpression()); }
@Override public void visit( BetweenCriteria obj ) { visitNode(obj.getExpression()); append(SPACE); if (obj.isNegated()) { append(NOT); append(SPACE); } append(BETWEEN); append(SPACE); visitNode(obj.getLowerExpression()); append(SPACE); append(AND); append(SPACE); visitNode(obj.getUpperExpression()); }