/** * 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; }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(BetweenCriteria) */ public void visit(BetweenCriteria obj) { obj.setExpression( replaceExpression(obj.getExpression()) ); obj.setLowerExpression( replaceExpression(obj.getLowerExpression()) ); obj.setUpperExpression( replaceExpression(obj.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()); }
final public BetweenCriteria betweenCrit(ParseInfo info, Expression expression) throws ParseException { Expression lowerExpression = null, upperExpression = null; boolean negated = false; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case NOT: jj_consume_token(NOT); negated=true; break; default: jj_la1[215] = jj_gen; ; } jj_consume_token(BETWEEN); lowerExpression = commonValueExpression(info); jj_consume_token(AND); upperExpression = commonValueExpression(info); BetweenCriteria criteria = new BetweenCriteria(expression, lowerExpression, upperExpression); criteria.setNegated(negated); {if (true) return criteria;} throw new Error("Missing return statement in function"); }
/** * Get hash code. WARNING: The hash code is based on data in the criteria. * If data values are changed, the hash code will change - don't hash this * object and change values. * @return Hash code for object */ public int hashCode() { int hc = 0; hc = HashCodeUtil.hashCode(hc, getExpression()); hc = HashCodeUtil.hashCode(hc, getLowerExpression()); hc = HashCodeUtil.hashCode(hc, getUpperExpression()); return hc; }
public void testEquals3() { BetweenCriteria c1 = example("x", 1, 20, true); //$NON-NLS-1$ BetweenCriteria c2 = (BetweenCriteria)c1.clone(); c2.setNegated(false); assertFalse("Criteria should not be equal: " + c1 + ", " + c2, c1.equals(c2)); //$NON-NLS-1$ //$NON-NLS-2$ }
public void testVisitBetweenCriteria() { BetweenCriteria bc = new BetweenCriteria(exampleElement(true, 0), new Constant(new Integer(1000)), new Constant(new Integer(2000))); helpTest(bc, getSymbolMap()); }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.BetweenCriteria) * @since 4.3 */ public void visit(BetweenCriteria obj) { if (isNonComparable(obj.getExpression())) { handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0027", obj, DataTypeManager.getDataTypeName(obj.getExpression().getType())),obj); //$NON-NLS-1$ } }
/** * 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()); }
final public BetweenCriteria betweenCrit(ParseInfo info, Expression expression) throws ParseException { Expression lowerExpression = null, upperExpression = null; boolean negated = false; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case NOT: jj_consume_token(NOT); negated=true; break; default: jj_la1[214] = jj_gen; ; } jj_consume_token(BETWEEN); lowerExpression = commonValueExpression(info); jj_consume_token(AND); upperExpression = commonValueExpression(info); BetweenCriteria criteria = new BetweenCriteria(expression, lowerExpression, upperExpression); criteria.setNegated(negated); {if (true) return criteria;} throw new Error("Missing return statement in function"); }
/** * Get hash code. WARNING: The hash code is based on data in the criteria. * If data values are changed, the hash code will change - don't hash this * object and change values. * @return Hash code for object */ public int hashCode() { int hc = 0; hc = HashCodeUtil.hashCode(hc, getExpression()); hc = HashCodeUtil.hashCode(hc, getLowerExpression()); hc = HashCodeUtil.hashCode(hc, getUpperExpression()); return hc; }
@Test public void testBetweenCriteria1() { BetweenCriteria bc = new BetweenCriteria( new ElementSymbol("m.g.c1"), //$NON-NLS-1$ new Constant(new Integer(1000)), new Constant(new Integer(2000)) ); helpTest(bc, "m.g.c1 BETWEEN 1000 AND 2000"); //$NON-NLS-1$ }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.BetweenCriteria) * @since 4.3 */ public void visit(BetweenCriteria obj) { if (isNonComparable(obj.getExpression())) { handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0027", obj, DataTypeManager.getDataTypeName(obj.getExpression().getType())),obj); //$NON-NLS-1$ } }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(BetweenCriteria) */ public void visit(BetweenCriteria obj) { obj.setExpression( replaceExpression(obj.getExpression()) ); obj.setLowerExpression( replaceExpression(obj.getLowerExpression()) ); obj.setUpperExpression( replaceExpression(obj.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; }
/** * 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()); }
final public BetweenCriteria betweenCrit(ParseInfo info, Expression expression) throws ParseException { Expression lowerExpression = null, upperExpression = null; boolean negated = false; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case NOT: jj_consume_token(NOT); negated=true; break; default: jj_la1[215] = jj_gen; ; } jj_consume_token(BETWEEN); lowerExpression = commonValueExpression(info); jj_consume_token(AND); upperExpression = commonValueExpression(info); BetweenCriteria criteria = new BetweenCriteria(expression, lowerExpression, upperExpression); criteria.setNegated(negated); {if (true) return criteria;} throw new Error("Missing return statement in function"); }
/** * Get hash code. WARNING: The hash code is based on data in the criteria. * If data values are changed, the hash code will change - don't hash this * object and change values. * @return Hash code for object */ public int hashCode() { int hc = 0; hc = HashCodeUtil.hashCode(hc, getExpression()); hc = HashCodeUtil.hashCode(hc, getLowerExpression()); hc = HashCodeUtil.hashCode(hc, getUpperExpression()); return hc; }
/** SELECT a from db.g where a BETWEEN 1000 AND 2000 */ @Test public void testBetween1(){ GroupSymbol g = new GroupSymbol("db.g"); //$NON-NLS-1$ From from = new From(); from.addGroup(g); Select select = new Select(); ElementSymbol a = new ElementSymbol("a"); //$NON-NLS-1$ select.addSymbol(a); Expression constant1 = new Constant(new Integer(1000)); Expression constant2 = new Constant(new Integer(2000)); Criteria crit = new BetweenCriteria(a, constant1, constant2); Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setCriteria(crit); helpTest("SELECT a from db.g where a BETWEEN 1000 AND 2000", //$NON-NLS-1$ "SELECT a FROM db.g WHERE a BETWEEN 1000 AND 2000", //$NON-NLS-1$ query); }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.BetweenCriteria) * @since 4.3 */ public void visit(BetweenCriteria obj) { if (isNonComparable(obj.getExpression())) { handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0027", obj, DataTypeManager.getDataTypeName(obj.getExpression().getType())),obj); //$NON-NLS-1$ } this.validateRowLimitFunctionNotInInvalidCriteria(obj); }