Package mondrian.rolap
Interface StarColumnPredicate
-
- All Superinterfaces:
StarPredicate
- All Known Implementing Classes:
AbstractColumnPredicate
,ListColumnPredicate
,LiteralStarPredicate
,MemberColumnPredicate
,MinusStarPredicate
,RangeColumnPredicate
,ValueColumnPredicate
public interface StarColumnPredicate extends StarPredicate
Refinement ofStarPredicate
which constrains precisely one column.- Since:
- Jan 15, 2007
- Author:
- jhyde
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
StarColumnPredicate.Overlap
Returned byintersect(mondrian.rolap.StarColumnPredicate)
, describes whether two predicates overlap, and if so, the remaining predicate.
-
Field Summary
-
Fields inherited from interface mondrian.rolap.StarPredicate
WILDCARD
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description StarColumnPredicate
cloneWithColumn(RolapStar.Column column)
This method is required because unfortunately some ColumnPredicate objects are created without a column.boolean
evaluate(Object value)
Returns whether this constraint would returntrue
for a given value.RolapStar.Column
getConstrainedColumn()
Returns the column constrained by this predicate.StarColumnPredicate.Overlap
intersect(StarColumnPredicate predicate)
Applies this predicate to a predicate from the axis of a segment, and tests for overlap.boolean
mightIntersect(StarPredicate other)
Returns whether this predicate might intersect another predicate.StarColumnPredicate
minus(StarPredicate predicate)
Returns the logical inverse of this Predicate.StarColumnPredicate
orColumn(StarColumnPredicate predicate)
Returns this union of this Predicate with another.void
values(Collection<Object> collection)
Adds the values in this constraint to a collection.-
Methods inherited from interface mondrian.rolap.StarPredicate
and, describe, equalConstraint, evaluate, getConstrainedColumnBitKey, getConstrainedColumnList, or, toSql
-
-
-
-
Method Detail
-
values
void values(Collection<Object> collection)
Adds the values in this constraint to a collection.- Parameters:
collection
- Collection to add values to
-
evaluate
boolean evaluate(Object value)
Returns whether this constraint would returntrue
for a given value.- Parameters:
value
- Value- Returns:
- Whether predicate is true
-
getConstrainedColumn
RolapStar.Column getConstrainedColumn()
Returns the column constrained by this predicate.- Returns:
- Column constrained by this predicate.
-
intersect
StarColumnPredicate.Overlap intersect(StarColumnPredicate predicate)
Applies 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
boolean mightIntersect(StarPredicate other)
Returns 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
StarColumnPredicate minus(StarPredicate predicate)
Description copied from interface:StarPredicate
Returns the logical inverse of this Predicate. The result is a Predicate which holds whenever this predicate holds but the other does not.- Specified by:
minus
in interfaceStarPredicate
- Parameters:
predicate
- Predicate- Returns:
- Combined predicate
-
orColumn
StarColumnPredicate orColumn(StarColumnPredicate predicate)
Returns this union of this Predicate with another.Unlike
StarPredicate.or(mondrian.rolap.StarPredicate)
, the other predicate must be on this column, and the result is a column predicate.- Parameters:
predicate
- Another predicate on this column- Returns:
- Union predicate on this column
-
cloneWithColumn
StarColumnPredicate cloneWithColumn(RolapStar.Column column)
This 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-313
andbug MONDRIAN-314
are fixed.
-
-