/** * Compare the value of this AbstractValue with another to see if it is equal. It uses the * compare method of AbstractValue. * * @param obj an AbstractValue to compare to * @param tableMap a mapping between tablenames of the two elements * @param reverseTableMap a reverse of tableMap * @return true if this is equal to obj */ public boolean valueEquals(AbstractValue obj, Map<AbstractTable, AbstractTable> tableMap, Map<AbstractTable, AbstractTable> reverseTableMap) { int compareVal = compare(obj, tableMap, reverseTableMap); return (compareVal == EQUAL); }
/** * Overrides Object.equals(). * * @param obj an Object to compare to * @return true if the object is equal */ @Override public boolean equals(Object obj) { if (obj instanceof SelectValue) { SelectValue objSV = (SelectValue) obj; return v.equals(objSV.v) && alias.equals(objSV.alias); } return false; }
/** * {@inheritDoc} */ @Override public String getSQLString() { return value.getSQLString() + " DESC"; }
switch (objC.operation) { case EQ: if (left.valueEquals(objC.left, tableMap, reverseTableMap)) { return (right.valueEquals(objC.right, tableMap, reverseTableMap) ? EQUAL : (right.notEqualTo(objC.right, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT)); } else if (left.valueEquals(objC.right, tableMap, reverseTableMap)) { return (right.valueEquals(objC.left, tableMap, reverseTableMap) ? EQUAL : (right.notEqualTo(objC.left, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT)); } else if (right.valueEquals(objC.left, tableMap, reverseTableMap)) { return (left.notEqualTo(objC.right, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT); } else if (right.valueEquals(objC.right, tableMap, reverseTableMap)) { return (left.notEqualTo(objC.left, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT); } else { if (left.valueEquals(objC.left, tableMap, reverseTableMap)) { return (right.lessThan(objC.right, tableMap, reverseTableMap) ? IMPLIES : (right.greaterOrEqual(objC.right, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT)); } else if (left.valueEquals(objC.right, tableMap, reverseTableMap)) { return (right.greaterThan(objC.left, tableMap, reverseTableMap) ? IMPLIES : (right.lessOrEqual(objC.left, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT)); } else if (right.valueEquals(objC.left, tableMap, reverseTableMap)) { return (left.lessThan(objC.right, tableMap, reverseTableMap) ? IMPLIES : (left.greaterOrEqual(objC.right, tableMap,
/** * {@inheritDoc} */ @Override public int hashCode() { return value.hashCode() + 1; }
/** * {@inheritDoc} */ @Override public boolean isAggregate() { return value.isAggregate(); } }
switch (objC.operation) { case EQ: if (left.valueEquals(objC.left, tableMap, reverseTableMap)) { return (right.valueEquals(objC.right, tableMap, reverseTableMap) ? EQUAL : (right.notEqualTo(objC.right, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT)); } else if (left.valueEquals(objC.right, tableMap, reverseTableMap)) { return (right.valueEquals(objC.left, tableMap, reverseTableMap) ? EQUAL : (right.notEqualTo(objC.left, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT)); } else if (right.valueEquals(objC.left, tableMap, reverseTableMap)) { return (left.notEqualTo(objC.right, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT); } else if (right.valueEquals(objC.right, tableMap, reverseTableMap)) { return (left.notEqualTo(objC.left, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT); } else { if (left.valueEquals(objC.left, tableMap, reverseTableMap)) { return (right.lessThan(objC.right, tableMap, reverseTableMap) ? IMPLIES : (right.greaterOrEqual(objC.right, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT)); } else if (left.valueEquals(objC.right, tableMap, reverseTableMap)) { return (right.greaterThan(objC.left, tableMap, reverseTableMap) ? IMPLIES : (right.lessOrEqual(objC.left, tableMap, reverseTableMap) ? EXCLUDES : INDEPENDENT)); } else if (right.valueEquals(objC.left, tableMap, reverseTableMap)) { return (left.lessThan(objC.right, tableMap, reverseTableMap) ? IMPLIES : (left.greaterOrEqual(objC.right, tableMap,
/** * {@inheritDoc} */ @Override public boolean isAggregate() { return value.isAggregate(); } }
/** * {@inheritDoc} */ @Override public String getSQLString() { return value.getSQLString() + " DESC"; }
/** * {@inheritDoc} */ @Override public int hashCode() { return value.hashCode() + 1; }
/** * Compare the value of this AbstractValue with another to see if it is less. This only really * makes sense with Constants. It uses the compare method of AbstractValue. Note that the * result being false does not imply greater than or equal - it may be incomparable. * * @param obj an AbstractValue to compare to * @param tableMap a mapping between tablenames of the two elements * @param reverseTableMap a reverse of tableMap * @return true if this is less than obj */ public boolean lessThan(AbstractValue obj, Map<AbstractTable, AbstractTable> tableMap, Map<AbstractTable, AbstractTable> reverseTableMap) { return (compare(obj, tableMap, reverseTableMap) == LESS); }
/** * Overrides Object.equals(). * * @param obj an Object to compare to * @return true if the object is equal */ @Override public boolean equals(Object obj) { if (obj instanceof SelectValue) { SelectValue objSV = (SelectValue) obj; return v.equals(objSV.v) && alias.equals(objSV.alias); } return false; }
/** * Returns true if this value is an aggregate function. * * @return a boolean */ @Override public boolean isAggregate() { switch(operation) { case COUNT: case MAX: case MIN: case SUM: case AVG: case STDDEV: return true; default: for (AbstractValue operand : operands) { if (operand.isAggregate()) { return true; } } return false; } } }
/** * Returns a String representation of this Field object, suitable for forming part of an SQL * SELECT list. * * @return the String representation */ public String getSQLString() { if ((v instanceof Field) && ((Field) v).name.equals(alias)) { return v.getSQLString(); } return v.getSQLString() + " AS " + alias; }
/** * Compare this value of this AbstractValue with another to see if it is not equal. It uses the * compare method of AbstractValue. Note that the result being false does not imply EQUAL - it * may be incomparable. * * @param obj an AbstractValue to compare to * @param tableMap a mapping between tablenames of the two elements * @param reverseTableMap a reverse of tableMap * @return true if this is definitely not equal to obj */ public boolean notEqualTo(AbstractValue obj, Map<AbstractTable, AbstractTable> tableMap, Map<AbstractTable, AbstractTable> reverseTableMap) { int compareVal = compare(obj, tableMap, reverseTableMap); return (compareVal == NOT_EQUAL) || (compareVal == LESS) || (compareVal == GREATER); }
/** * {@inheritDoc} */ @Override public boolean equals(Object o) { if (o instanceof OrderDescending) { return value.equals(((OrderDescending) o).getValue()); } return false; }
/** * Returns true if this value is an aggregate function. * * @return a boolean */ @Override public boolean isAggregate() { switch(operation) { case COUNT: case MAX: case MIN: case SUM: case AVG: case STDDEV: return true; default: for (AbstractValue operand : operands) { if (operand.isAggregate()) { return true; } } return false; } } }
/** * Returns a String representation of this Field object, suitable for forming part of an SQL * SELECT list. * * @return the String representation */ public String getSQLString() { if ((v instanceof Field) && ((Field) v).name.equals(alias)) { return v.getSQLString(); } return v.getSQLString() + " AS " + alias; }