mondrian.rolap.aggmatcher
Class AggStar.Table

java.lang.Object
  extended by mondrian.rolap.aggmatcher.AggStar.Table
Direct Known Subclasses:
AggStar.DimTable, AggStar.FactTable
Enclosing class:
AggStar

public abstract class AggStar.Table
extends Object

Base Table class for the FactTable and DimTable classes. This class parallels the RolapStar.Table class.

 

Nested Class Summary
 class AggStar.Table.Column
          Base class for Level and Measure classes
(package private)  class AggStar.Table.ForeignKey
          This class is used for holding foreign key columns.
 class AggStar.Table.JoinCondition
          The query join condition between a base table and this table (the table that owns the join condition).
(package private)  class AggStar.Table.Level
          This class is used for holding dimension level information.
 
Field Summary
protected  List<AggStar.DimTable> children
           
protected  List<AggStar.Table.Level> levels
           
 
Constructor Summary
AggStar.Table(String name, MondrianDef.Relation relation)
           
 
Method Summary
protected  void addLevel(AggStar.Table.Level level)
          Add a Level column.
protected  void addTable(AggStar.DimTable child)
          Add a child DimTable table.
 void addToFrom(SqlQuery query, boolean failIfExists, boolean joinToParent)
          This is a copy of the code found in RolapStar used to generate an SQL query.
protected  void convertChildren(RolapStar.Table rTable)
          Convert the child tables of a RolapStar.Table into child AggStar.DimTable tables.
protected  void convertColumns(RolapStar.Table rTable)
          Convert a RolapStar.Table table's columns into AggStar.Table.Level columns.
protected  AggStar.DimTable convertTable(RolapStar.Table rTable, String rightJoinConditionColumnName)
          Converts a RolapStar.Table into a AggStar.DimTable as well as converting all columns and child tables.
 AggStar.Table findDescendant(String name)
          Find descendant of fact table with given name or return null.
protected  AggStar getAggStar()
          Get this table's enclosing AggStar.
 List<AggStar.DimTable> getChildTables()
          Returns a list of child AggStar.Table objects.
abstract  AggStar.Table.JoinCondition getJoinCondition()
           
 List<AggStar.Table.Level> getLevels()
          Returns all level columns.
 String getName()
          Return the name of the table in the database.
abstract  AggStar.Table getParent()
          Get the parent table (returns null if this table is a FactTable).
 MondrianDef.Relation getRelation()
           
protected  SqlQuery getSqlQuery()
          Get a SqlQuery object.
 boolean hasChildren()
          Return true if this table has one or more child tables.
abstract  boolean hasJoinCondition()
          Return true if this table has a join condition (only DimTables have join conditions, FactTable instances do not).
 boolean hasLevels()
          Return true if table has levels.
abstract  boolean hasParent()
          Return true if this table has a parent table (FactTable instances do not have parent tables, all other do).
abstract  void print(PrintWriter pw, String prefix)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

levels

protected final List<AggStar.Table.Level> levels

children

protected List<AggStar.DimTable> children
Constructor Detail

AggStar.Table

AggStar.Table(String name,
              MondrianDef.Relation relation)
Method Detail

getName

public String getName()
Return the name of the table in the database.


hasParent

public abstract boolean hasParent()
Return true if this table has a parent table (FactTable instances do not have parent tables, all other do).


getParent

public abstract AggStar.Table getParent()
Get the parent table (returns null if this table is a FactTable).


hasJoinCondition

public abstract boolean hasJoinCondition()
Return true if this table has a join condition (only DimTables have join conditions, FactTable instances do not).


getJoinCondition

public abstract AggStar.Table.JoinCondition getJoinCondition()

getRelation

public MondrianDef.Relation getRelation()

getAggStar

protected AggStar getAggStar()
Get this table's enclosing AggStar.


getSqlQuery

protected SqlQuery getSqlQuery()
Get a SqlQuery object.


addLevel

protected void addLevel(AggStar.Table.Level level)
Add a Level column.

Parameters:
level -

getLevels

public List<AggStar.Table.Level> getLevels()
Returns all level columns.


hasLevels

public boolean hasLevels()
Return true if table has levels.


addTable

protected void addTable(AggStar.DimTable child)
Add a child DimTable table.

Parameters:
child -

getChildTables

public List<AggStar.DimTable> getChildTables()
Returns a list of child AggStar.Table objects.


findDescendant

public AggStar.Table findDescendant(String name)
Find descendant of fact table with given name or return null.

Parameters:
name - the child table name (alias).
Returns:
the child table or null.

hasChildren

public boolean hasChildren()
Return true if this table has one or more child tables.


convertTable

protected AggStar.DimTable convertTable(RolapStar.Table rTable,
                                        String rightJoinConditionColumnName)
Converts a RolapStar.Table into a AggStar.DimTable as well as converting all columns and child tables. If the rightJoinConditionColumnName parameter is null, then the table's namd and the rTable parameter's condition left condition's column name are used to form the join condition's left expression.


convertColumns

protected void convertColumns(RolapStar.Table rTable)
Convert a RolapStar.Table table's columns into AggStar.Table.Level columns.

Parameters:
rTable -

convertChildren

protected void convertChildren(RolapStar.Table rTable)
Convert the child tables of a RolapStar.Table into child AggStar.DimTable tables.

Parameters:
rTable -

addToFrom

public void addToFrom(SqlQuery query,
                      boolean failIfExists,
                      boolean joinToParent)
This is a copy of the code found in RolapStar used to generate an SQL query.

Parameters:
query -
failIfExists -
joinToParent -

toString

public String toString()
Overrides:
toString in class Object

print

public abstract void print(PrintWriter pw,
                           String prefix)

SourceForge.net_Logo