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
Modifier and TypeFieldDescriptionprotected final ExplicitRules.Group
protected int
protected String
protected final int
protected final boolean
-
Constructor Summary
ModifierConstructorDescriptionprotected
TableDef
(boolean ignoreCase, ExplicitRules.Group aggGroup) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
add
(mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Level level) Adds a Level.protected void
add
(mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Measure measure) Adds a Measure.protected void
Add foreign key mapping entry (maps from fact table foreign key column name to aggregate table foreign key column name).protected void
addIgnoreColumnName
(String ignoreName) Adds the name of an aggregate table column that is to be ignored.static void
addLevelTo
(ExplicitRules.TableDef tableDef, String name, String columnName, boolean collapsed, String ordinalColumn, String captionColumn, MondrianDef.AggLevelProperty[] properties) static void
addMeasureTo
(ExplicitRules.TableDef tableDef, String name, String column, String rollupType) 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.Get the Group with which is a part.protected String
getAggregateFK
(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.int
Returns an approximate number of rows in this table.protected mondrian.rolap.aggmatcher.Recognizer.Matcher
Get Matcher for the fact count column.protected String
Get the name of the fact count column.Get an Iterator over all ignore column name entries.protected mondrian.rolap.aggmatcher.Recognizer.Matcher
Get Matcher for ignore columns.List<mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Level>
Gets all level mappings.protected mondrian.rolap.aggmatcher.Recognizer.Matcher
List<mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Measure>
Gets all level mappings.getStar()
Get the RolapStar associated with this cube.boolean
Return true if this name/pattern matching ignores case.abstract boolean
Does the TableDef match a table with name tableName.void
print
(PrintWriter pw, String prefix) protected void
setFactCountName
(String factCountName) Set the name of the fact count column.toString()
void
validate
(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
-