Package mondrian.rolap.aggmatcher
Class ExplicitRules.TableDef
java.lang.Object
mondrian.rolap.aggmatcher.ExplicitRules.TableDef
- Direct Known Subclasses:
ExplicitRules.PatternTableDef
- Enclosing class:
- ExplicitRules
This is the base class for the exact name based and name pattern based
aggregate table mapping definitions. It contains the mappings for the
fact count column, optional ignore columns, foreign key mappings,
measure column mappings and level column mappings.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ExplicitRules.Groupprotected intprotected Stringprotected final intprotected final boolean -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedTableDef(boolean ignoreCase, ExplicitRules.Group aggGroup) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidadd(mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Level level) Adds a Level.protected voidadd(mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Measure measure) Adds a Measure.protected voidAdd foreign key mapping entry (maps from fact table foreign key column name to aggregate table foreign key column name).protected voidaddIgnoreColumnName(String ignoreName) Adds the name of an aggregate table column that is to be ignored.static voidaddLevelTo(ExplicitRules.TableDef tableDef, String name, String columnName, boolean collapsed, String ordinalColumn, String captionColumn, MondrianDef.AggLevelProperty[] properties) static voidaddMeasureTo(ExplicitRules.TableDef tableDef, String name, String column, String rollupType) booleancolumnsOK(RolapStar star, JdbcSchema.Table dbFactTable, JdbcSchema.Table dbTable, MessageRecorder msgRecorder) Checks that ALL of the columns in the dbTable have a mapping in the tableDef.Get the Group with which is a part.protected StringgetAggregateFK(String baseFK) Get the name of the aggregate table's foreign key column that matches the base fact table's foreign key column or return null.intReturns an approximate number of rows in this table.protected mondrian.rolap.aggmatcher.Recognizer.MatcherGet Matcher for the fact count column.protected StringGet the name of the fact count column.Get an Iterator over all ignore column name entries.protected mondrian.rolap.aggmatcher.Recognizer.MatcherGet Matcher for ignore columns.List<mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Level>Gets all level mappings.protected mondrian.rolap.aggmatcher.Recognizer.MatcherList<mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Measure>Gets all level mappings.getStar()Get the RolapStar associated with this cube.booleanReturn true if this name/pattern matching ignores case.abstract booleanDoes the TableDef match a table with name tableName.voidprint(PrintWriter pw, String prefix) protected voidsetFactCountName(String factCountName) Set the name of the fact count column.toString()voidvalidate(MessageRecorder msgRecorder) Validate the Levels and Measures, also make sure each definition is different, both name and column.
-
Field Details
-
id
protected final int id -
ignoreCase
protected final boolean ignoreCase -
aggGroup
-
factCountName
-
measuresFactCount
-
ignoreColumnNames
-
approxRowCount
protected int approxRowCount
-
-
Constructor Details
-
TableDef
-
-
Method Details
-
addLevelTo
public static void addLevelTo(ExplicitRules.TableDef tableDef, String name, String columnName, boolean collapsed, String ordinalColumn, String captionColumn, MondrianDef.AggLevelProperty[] properties) -
addMeasureTo
public static void addMeasureTo(ExplicitRules.TableDef tableDef, String name, String column, String rollupType) -
getApproxRowCount
public int getApproxRowCount()Returns an approximate number of rows in this table. A negative value indicates that no estimate is available.- Returns:
- An estimated row count, or a negative value if no row count approximation was available.
-
isIgnoreCase
public boolean isIgnoreCase()Return true if this name/pattern matching ignores case. -
getStar
Get the RolapStar associated with this cube. -
getAggGroup
Get the Group with which is a part. -
getFactCountName
Get the name of the fact count column. -
setFactCountName
Set the name of the fact count column. -
getMeasuresFactCount
-
getIgnoreColumnNames
Get an Iterator over all ignore column name entries. -
getLevels
Gets all level mappings. -
getMeasures
Gets all level mappings. -
getIgnoreMatcher
protected mondrian.rolap.aggmatcher.Recognizer.Matcher getIgnoreMatcher()Get Matcher for ignore columns. -
getFactCountMatcher
protected mondrian.rolap.aggmatcher.Recognizer.Matcher getFactCountMatcher()Get Matcher for the fact count column. -
getMeasureFactCountMatcher
protected mondrian.rolap.aggmatcher.Recognizer.Matcher getMeasureFactCountMatcher() -
columnsOK
public boolean columnsOK(RolapStar star, JdbcSchema.Table dbFactTable, JdbcSchema.Table dbTable, MessageRecorder msgRecorder) Checks that ALL of the columns in the dbTable have a mapping in the tableDef.It is an error if there is a column that does not have a mapping.
-
addIgnoreColumnName
Adds the name of an aggregate table column that is to be ignored. -
addFK
Add foreign key mapping entry (maps from fact table foreign key column name to aggregate table foreign key column name). -
getAggregateFK
Get the name of the aggregate table's foreign key column that matches the base fact table's foreign key column or return null. -
add
protected void add(mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Level level) Adds a Level. -
add
protected void add(mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Measure measure) Adds a Measure. -
matches
Does the TableDef match a table with name tableName. -
validate
Validate the Levels and Measures, also make sure each definition is different, both name and column. -
toString
-
print
-