com.mckoi.database.interpret
Class FromTableDirectSource

java.lang.Object
  extended by com.mckoi.database.interpret.FromTableDirectSource
All Implemented Interfaces:
FromTableInterface

public class FromTableDirectSource
extends java.lang.Object
implements FromTableInterface

An implementation of FromTableInterface that wraps around an TableName/AbstractDataTable object. The handles case insensitive resolution.

Author:
Tobias Downer

Constructor Summary
FromTableDirectSource(DatabaseConnection connection, TableQueryDef table_query, java.lang.String unique_name, TableName given_name, TableName root_name)
          Constructs the source.
 
Method Summary
 Variable[] allColumns()
          Returns an array of Variable objects that references each column available in this table set item in order from left column to right column.
 QueryPlanNode createFetchQueryPlanNode()
          Creates a QueryPlanNode to be added into a query tree that fetches the table source.
 TableName getGivenTableName()
          Returns the given name of the table.
 TableName getRootTableName()
          Returns the root name of the table.
 java.lang.String getUniqueName()
          Returns a unique name given to this table source.
 boolean matchesReference(java.lang.String catalog, java.lang.String schema, java.lang.String table)
          Returns true if this source will match the given catalog, schema and table.
 Variable resolveColumn(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)
          Returns a Variable that is a fully resolved form of the given column in this table set.
 int resolveColumnCount(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)
          Returns the number of instances we can resolve the given catalog, schema, table and column name to a column or columns within this item.
 void setCaseInsensitive(boolean status)
          Toggle the case sensitivity flag.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FromTableDirectSource

public FromTableDirectSource(DatabaseConnection connection,
                             TableQueryDef table_query,
                             java.lang.String unique_name,
                             TableName given_name,
                             TableName root_name)
Constructs the source.

Method Detail

getGivenTableName

public TableName getGivenTableName()
Returns the given name of the table. For example, if the Part table is aliased as P this returns P. If there is no given name, returns the root table name.


getRootTableName

public TableName getRootTableName()
Returns the root name of the table. This TableName can always be used as a direct reference to a table in the database.


createFetchQueryPlanNode

public QueryPlanNode createFetchQueryPlanNode()
Creates a QueryPlanNode to be added into a query tree that fetches the table source.


setCaseInsensitive

public void setCaseInsensitive(boolean status)
Toggle the case sensitivity flag.


getUniqueName

public java.lang.String getUniqueName()
Description copied from interface: FromTableInterface
Returns a unique name given to this table source. No other sources will share this identifier string.

Specified by:
getUniqueName in interface FromTableInterface

matchesReference

public boolean matchesReference(java.lang.String catalog,
                                java.lang.String schema,
                                java.lang.String table)
Description copied from interface: FromTableInterface
Returns true if this source will match the given catalog, schema and table. If any arguments are null then it is not included in the match.

Used for 'Part.*' type glob searches.

Specified by:
matchesReference in interface FromTableInterface

resolveColumnCount

public int resolveColumnCount(java.lang.String catalog,
                              java.lang.String schema,
                              java.lang.String table,
                              java.lang.String column)
Description copied from interface: FromTableInterface
Returns the number of instances we can resolve the given catalog, schema, table and column name to a column or columns within this item. Note that if catalog, schema, table or column is 'null' then it means it doesn't matter.

For example, say we need to resolve the column 'id' the arguments are null, null, null, "id". This may resolve to multiple columns if there is a mixture of tables with "id" as a column.

Note that parameters of 'null, null, null, null', 'null, null, null, not null', 'null, null, not null, not null', 'null, not null, not null, not null', and 'not null, not null, not null, not null' are only accepted.

Specified by:
resolveColumnCount in interface FromTableInterface

resolveColumn

public Variable resolveColumn(java.lang.String catalog,
                              java.lang.String schema,
                              java.lang.String table,
                              java.lang.String column)
Description copied from interface: FromTableInterface
Returns a Variable that is a fully resolved form of the given column in this table set. This method does not have to check whether the parameters reference more than one column. If more than one column is referenced, the actual column returned is implementation specific.

Specified by:
resolveColumn in interface FromTableInterface

allColumns

public Variable[] allColumns()
Description copied from interface: FromTableInterface
Returns an array of Variable objects that references each column available in this table set item in order from left column to right column.

Specified by:
allColumns in interface FromTableInterface