kdl.prox.dbmgr
Class NSTColumn

java.lang.Object
  extended by kdl.prox.dbmgr.NSTColumn

public class NSTColumn
extends java.lang.Object

Represents a column in an NST Stores the column name, its data type, and the BAT where the data are stored

Normally the batName corresponds to a BAT in Monet. However, if the NST to which this column belongs has an implicit filter, then the filter has to be applied to the original BAT before the data can be accessed. In those cases, the batName contains a sequence of MIL commands that create that dynamic view of the core BAT. For example, if the column belongs to an NST with a filter that says "column B = 2", then the the batName would be something like this:

o batName : tmp_124.semijoin(tmp_125.select(2).mirror)

In any case, the batName can be used as part of MIL commands. For example, to count the number of rows in a column, the following command is valid:

getBATName() + ".count.print"

Depending on whether the containing NST has a filter or not, the command will translate into either one of the following lines, respectively:

tmp_124.semijoin(tmp_125.select(2).mirror).count.print tmp_124.count.print

Of course, if the batName has a sequence of commands, then the column should be treated as read-only, because there is no way of getting to the core BAT to which modifications should be made.


Constructor Summary
NSTColumn(java.lang.String name, DataTypeEnum type, java.lang.String batName)
           
NSTColumn(java.lang.String name, DataTypeEnum type, java.lang.String batName, java.lang.String command)
           
 
Method Summary
 java.lang.String getBATName()
          Returns the name of bat where the data are stored This might not be a real BAT, but instead a list of commands that can be executed to get the values for the column
 java.lang.String getDelayedExecutionBATName()
           
 java.lang.String getName()
          Returns the name of the column
 DataTypeEnum getType()
          Returns the data type of the column
 boolean isDelayedExecution()
           
 boolean isDelimitAsBATName()
          True is teh column value should be delimited before an insert
 void rename(java.lang.String newName)
          Changes tha name of the column
 void setBAT(java.lang.String newBATName)
           
 void setDelimitAsBATName(boolean delimit)
          When set to false, column values are not delimited when inserted into BAT
 java.lang.String toString()
          Object method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NSTColumn

public NSTColumn(java.lang.String name,
                 DataTypeEnum type,
                 java.lang.String batName)

NSTColumn

public NSTColumn(java.lang.String name,
                 DataTypeEnum type,
                 java.lang.String batName,
                 java.lang.String command)
Method Detail

getBATName

public java.lang.String getBATName()
Returns the name of bat where the data are stored This might not be a real BAT, but instead a list of commands that can be executed to get the values for the column

Returns:

getDelayedExecutionBATName

public java.lang.String getDelayedExecutionBATName()

getName

public java.lang.String getName()
Returns the name of the column

Returns:

getType

public DataTypeEnum getType()
Returns the data type of the column

Returns:

isDelayedExecution

public boolean isDelayedExecution()

isDelimitAsBATName

public boolean isDelimitAsBATName()
True is teh column value should be delimited before an insert

Returns:

rename

public void rename(java.lang.String newName)
Changes tha name of the column

Parameters:
newName -

setBAT

public void setBAT(java.lang.String newBATName)

setDelimitAsBATName

public void setDelimitAsBATName(boolean delimit)
When set to false, column values are not delimited when inserted into BAT

Parameters:
delimit -

toString

public java.lang.String toString()
Object method.

Overrides:
toString in class java.lang.Object