public class SegmentColumn extends Object implements Serializable
They are immutable and serializable.
| Modifier and Type | Field and Description | 
|---|---|
String | 
columnExpression  | 
int | 
valueCount  | 
SortedSet<Comparable> | 
values  | 
| Constructor and Description | 
|---|
SegmentColumn(String columnExpression,
             int valueCount,
             SortedSet<Comparable> valueList)
Creates a SegmentColumn. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
equals(Object obj)  | 
String | 
getColumnExpression()
Returns the column expression of this constrained column. 
 | 
int | 
getValueCount()
Returns the number of distinct values that occur for this column in the
 database. 
 | 
SortedSet<Comparable> | 
getValues()
Returns an array of predicate values for this column. 
 | 
int | 
hashCode()  | 
SegmentColumn | 
merge(SegmentColumn col)
Merges this column with another
 resulting in another whose values are super set of both. 
 | 
public final String columnExpression
public final int valueCount
public final SortedSet<Comparable> values
public SegmentColumn(String columnExpression, int valueCount, SortedSet<Comparable> valueList)
columnExpression - SQL expression for the column. Unique within the
     star schema, including accesses to the same physical column via
     different join paths.valueCount - Number of distinct values of this column in the
     database. For these purposes, null is counted as a value. If there
     are N distinct values of the column, and we have a collection of
     segments that cover N values, then Mondrian assumes that it is safe
     to roll up.valueList - List of values to constrain the
     column to, or null if unconstrained. Values must be
     Comparable and immutable. For example, Integer, Boolean,
     String or Double.public SegmentColumn merge(SegmentColumn col)
public String getColumnExpression()
public SortedSet<Comparable> getValues()
public int getValueCount()
Mondrian uses this to know that it can safely combine multiple segments to roll up. For example, if for the "quarter" column, one segment has values {"Q1", "Q2"} and another has values {"Q3", "Q4"}, and Mondrian knows that there are 4 values, then it can roll up.
If this method returns a value that is too low, Mondrian may generate incorrect results. If you don't know the number of values, return -1.