Package mondrian.rolap.agg
Class LiteralStarPredicate
- java.lang.Object
-
- mondrian.rolap.agg.AbstractColumnPredicate
-
- mondrian.rolap.agg.LiteralStarPredicate
-
- All Implemented Interfaces:
StarColumnPredicate,StarPredicate
public class LiteralStarPredicate extends AbstractColumnPredicate
A constraint which always returns true or false.- Since:
- Nov 2, 2006
- Author:
- jhyde
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class mondrian.rolap.agg.AbstractColumnPredicate
AbstractColumnPredicate.Factory
-
Nested classes/interfaces inherited from interface mondrian.rolap.StarColumnPredicate
StarColumnPredicate.Overlap
-
-
Field Summary
Fields Modifier and Type Field Description static LiteralStarPredicateFALSEstatic LiteralStarPredicateTRUE-
Fields inherited from class mondrian.rolap.agg.AbstractColumnPredicate
constrainedColumn
-
Fields inherited from interface mondrian.rolap.StarPredicate
WILDCARD
-
-
Constructor Summary
Constructors Constructor Description LiteralStarPredicate(RolapStar.Column column, boolean value)Creates a LiteralStarPredicate.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StarColumnPredicatecloneWithColumn(RolapStar.Column column)This method is required because unfortunately some ColumnPredicate objects are created without a column.voiddescribe(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.booleanequals(Object obj)booleanevaluate(Object value)Returns whether this constraint would returntruefor a given value.booleanevaluate(List<Object> valueList)Evaluates a constraint against a list of values.booleangetValue()inthashCode()StarColumnPredicate.Overlapintersect(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.StarColumnPredicateminus(StarPredicate predicate)Returns the logical inverse of this Predicate.voidtoSql(SqlQuery sqlQuery, StringBuilder buf)StringtoString()voidvalues(Collection<Object> collection)Adds the values in this constraint to a collection.-
Methods inherited from class mondrian.rolap.agg.AbstractColumnPredicate
and, cloneListWithColumn, getConstrainedColumn, getConstrainedColumnBitKey, getConstrainedColumnList, or, orColumn
-
-
-
-
Field Detail
-
TRUE
public static final LiteralStarPredicate TRUE
-
FALSE
public static final LiteralStarPredicate FALSE
-
-
Constructor Detail
-
LiteralStarPredicate
public LiteralStarPredicate(RolapStar.Column column, boolean value)
Creates a LiteralStarPredicate.- Parameters:
column- Constrained columnvalue- Truth value
-
-
Method Detail
-
evaluate
public boolean evaluate(List<Object> valueList)
Description copied from interface:StarPredicateEvaluates a constraint against a list of values.If one of the values is
StarPredicate.WILDCARD, returns true if constraint is true for all possible values of that column.- Specified by:
evaluatein interfaceStarPredicate- Overrides:
evaluatein classAbstractColumnPredicate- Parameters:
valueList- List of values, one for each constrained column- Returns:
- Whether constraint holds for given set of values
-
equalConstraint
public boolean equalConstraint(StarPredicate that)
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
-
toString
public String toString()
- Overrides:
toStringin classAbstractColumnPredicate
-
values
public void values(Collection<Object> collection)
Description copied from interface:StarColumnPredicateAdds the values in this constraint to a collection.- Parameters:
collection- Collection to add values to
-
evaluate
public boolean evaluate(Object value)
Description copied from interface:StarColumnPredicateReturns whether this constraint would returntruefor a given value.- Parameters:
value- Value- Returns:
- Whether predicate is true
-
describe
public void describe(StringBuilder buf)
Description copied from interface:StarPredicateAppends a description of this predicate to aStringBuilder. For example:- =any
- =5
- in (2, 4, 6)
- Parameters:
buf- Builder to append to
-
intersect
public StarColumnPredicate.Overlap intersect(StarColumnPredicate predicate)
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').- Parameters:
predicate- Predicate- Returns:
- description of overlap between predicates, if any
-
mightIntersect
public boolean mightIntersect(StarPredicate other)
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.- Parameters:
other- Other constraint- Returns:
- Whether constraints intersect
-
minus
public StarColumnPredicate minus(StarPredicate predicate)
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.- Parameters:
predicate- Predicate- Returns:
- Combined predicate
-
cloneWithColumn
public StarColumnPredicate cloneWithColumn(RolapStar.Column column)
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.
-
getValue
public boolean getValue()
-
toSql
public void toSql(SqlQuery sqlQuery, StringBuilder buf)
- Specified by:
toSqlin interfaceStarPredicate- Overrides:
toSqlin classAbstractColumnPredicate
-
-