Class ExplicitRules.TableDef

java.lang.Object
mondrian.rolap.aggmatcher.ExplicitRules.TableDef
Direct Known Subclasses:
ExplicitRules.PatternTableDef
Enclosing class:
ExplicitRules

public abstract static class ExplicitRules.TableDef extends Object
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 Details

    • id

      protected final int id
    • ignoreCase

      protected final boolean ignoreCase
    • aggGroup

      protected final ExplicitRules.Group aggGroup
    • factCountName

      protected String factCountName
    • measuresFactCount

      protected Map<String,String> measuresFactCount
    • ignoreColumnNames

      protected List<String> ignoreColumnNames
    • approxRowCount

      protected int approxRowCount
  • Constructor Details

  • 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

      public RolapStar getStar()
      Get the RolapStar associated with this cube.
    • getAggGroup

      public ExplicitRules.Group getAggGroup()
      Get the Group with which is a part.
    • getFactCountName

      protected String getFactCountName()
      Get the name of the fact count column.
    • setFactCountName

      protected void setFactCountName(String factCountName)
      Set the name of the fact count column.
    • getMeasuresFactCount

      public Map<String,String> getMeasuresFactCount()
    • getIgnoreColumnNames

      protected Iterator<String> getIgnoreColumnNames()
      Get an Iterator over all ignore column name entries.
    • getLevels

      public List<mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Level> getLevels()
      Gets all level mappings.
    • getMeasures

      public List<mondrian.rolap.aggmatcher.ExplicitRules.TableDef.Measure> 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

      protected void addIgnoreColumnName(String ignoreName)
      Adds the name of an aggregate table column that is to be ignored.
    • addFK

      protected void addFK(MondrianDef.AggForeignKey fk)
      Add foreign key mapping entry (maps from fact table foreign key column name to aggregate table foreign key column name).
    • getAggregateFK

      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.
    • 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

      public abstract boolean matches(String tableName)
      Does the TableDef match a table with name tableName.
    • validate

      public void validate(MessageRecorder msgRecorder)
      Validate the Levels and Measures, also make sure each definition is different, both name and column.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • print

      public void print(PrintWriter pw, String prefix)