Package mondrian.rolap.agg
Class ValueColumnPredicate
java.lang.Object
mondrian.rolap.agg.AbstractColumnPredicate
mondrian.rolap.agg.ValueColumnPredicate
- All Implemented Interfaces:
Comparable,StarColumnPredicate,StarPredicate
- Direct Known Subclasses:
MemberColumnPredicate
A constraint which requires a column to have a particular value.
- Since:
- Nov 2, 2006
- Author:
- jhyde
-
Nested Class Summary
Nested classes/interfaces inherited from class mondrian.rolap.agg.AbstractColumnPredicate
AbstractColumnPredicate.FactoryNested classes/interfaces inherited from interface mondrian.rolap.StarColumnPredicate
StarColumnPredicate.Overlap -
Field Summary
Fields inherited from class mondrian.rolap.agg.AbstractColumnPredicate
constrainedColumnFields inherited from interface mondrian.rolap.StarPredicate
WILDCARD -
Constructor Summary
ConstructorsConstructorDescriptionValueColumnPredicate(RolapStar.Column constrainedColumn, Object value) Creates a column constraint. -
Method Summary
Modifier and TypeMethodDescriptioncheckInList(BitKey inListLHSBitKey) cloneWithColumn(RolapStar.Column column) This method is required because unfortunately some ColumnPredicate objects are created without a column.intvoiddescribe(StringBuilder buf) Appends a description of this predicate to aStringBuilder.booleanequalConstraint(StarPredicate that) Returns whether this Predicate has the same constraining effect as the other constraint.booleanbooleanReturns whether this constraint would returntruefor a given value.getValue()Returns the value which the column is compared to.inthashCode()intersect(StarColumnPredicate predicate) Applies this predicate to a predicate from the axis of a segment, and tests for overlap.booleanmightIntersect(StarPredicate other) Returns whether this predicate might intersect another predicate.minus(StarPredicate predicate) Returns the logical inverse of this Predicate.voidtoInListSql(SqlQuery sqlQuery, StringBuilder buf) voidtoSql(SqlQuery sqlQuery, StringBuilder buf) toString()voidvalues(Collection<Object> collection) Adds the values in this constraint to a collection.Methods inherited from class mondrian.rolap.agg.AbstractColumnPredicate
and, cloneListWithColumn, evaluate, getConstrainedColumn, getConstrainedColumnBitKey, getConstrainedColumnList, or, orColumn
-
Constructor Details
-
ValueColumnPredicate
Creates a column constraint.- Parameters:
value- Value to constraint the column to. (We require that it isComparablebecause we will sort the values in order to generate deterministic SQL.)
-
-
Method Details
-
getValue
Returns the value which the column is compared to. -
toString
- Overrides:
toStringin classAbstractColumnPredicate
-
equalConstraint
Description copied from interface:StarPredicateReturns whether this Predicate has the same constraining effect as the other constraint. This is weaker thanObject.equals(Object): it is possible for two different members to constrain the same column in the same way.- Specified by:
equalConstraintin interfaceStarPredicate- Overrides:
equalConstraintin classAbstractColumnPredicate- Parameters:
that- Other predicate- Returns:
- whether the other predicate is equivalent
-
compareTo
- Specified by:
compareToin interfaceComparable
-
equals
-
hashCode
public int hashCode() -
values
Description copied from interface:StarColumnPredicateAdds the values in this constraint to a collection.- Specified by:
valuesin interfaceStarColumnPredicate- Parameters:
collection- Collection to add values to
-
evaluate
Description copied from interface:StarColumnPredicateReturns whether this constraint would returntruefor a given value.- Specified by:
evaluatein interfaceStarColumnPredicate- Parameters:
value- Value- Returns:
- Whether predicate is true
-
describe
Description copied from interface:StarPredicateAppends a description of this predicate to aStringBuilder. For example:- =any
- =5
- in (2, 4, 6)
- Specified by:
describein interfaceStarPredicate- Parameters:
buf- Builder to append to
-
intersect
Description copied from interface:StarColumnPredicateApplies this predicate to a predicate from the axis of a segment, and tests for overlap. The result might be that there is no overlap, full overlap (so the constraint can be removed), or partial overlap (so the constraint will need to be replaced with a stronger constraint, say 'x > 10' is replaced with 'x > 20').- Specified by:
intersectin interfaceStarColumnPredicate- Parameters:
predicate- Predicate- Returns:
- description of overlap between predicates, if any
-
mightIntersect
Description copied from interface:StarColumnPredicateReturns whether this predicate might intersect another predicate. That is, whether there might be a value which holds true for both constraints.- Specified by:
mightIntersectin interfaceStarColumnPredicate- Parameters:
other- Other constraint- Returns:
- Whether constraints intersect
-
minus
Description copied from interface:StarPredicateReturns the logical inverse of this Predicate. The result is a Predicate which holds whenever this predicate holds but the other does not.- Specified by:
minusin interfaceStarColumnPredicate- Specified by:
minusin interfaceStarPredicate- Parameters:
predicate- Predicate- Returns:
- Combined predicate
-
cloneWithColumn
Description copied from interface:StarColumnPredicateThis method is required because unfortunately some ColumnPredicate objects are created without a column.We call this method to provide a fake column, then call
StarPredicate.toSql(mondrian.rolap.sql.SqlQuery, StringBuilder).todo: remove this method when
bug MONDRIAN-313andbug MONDRIAN-314are fixed.- Specified by:
cloneWithColumnin interfaceStarColumnPredicate
-
toSql
- Specified by:
toSqlin interfaceStarPredicate- Overrides:
toSqlin classAbstractColumnPredicate
-
checkInList
-
toInListSql
-