edu.udo.cs.miningmart.m4
Interface Columnset

All Superinterfaces:
M4Data, M4Object
All Known Implementing Classes:
Columnset

public interface Columnset
extends M4Data

Version:
$Id: Columnset.java,v 1.6 2006/04/11 14:10:12 euler Exp $
Author:
Timm Euler, Daniel Hakenjos

Field Summary
static java.lang.String CS_TYPE_TABLE
          DB level: String constant used in the DB to indicate that this columnset is a table
static java.lang.String CS_TYPE_VIEW
          DB level: String constant used in the DB to indicate that this columnset is a view
static java.lang.String TYPE_MATERIALIZED_VIEW
           
static java.lang.String TYPE_SNAPSHOT
           
static java.lang.String TYPE_TABLE
           
static java.lang.String TYPE_VIEW
           
 
Method Summary
 void addColumn(Column c)
          Add a column to this columnset's columns.
 void addMultiStepBranch(java.lang.String branch)
           
 void addMultiStepBranchInfo(java.lang.String oldDef, java.lang.String attribute, java.lang.String value)
          Adds an attribute-value pair to the MultiStepBranch field if the attribute isn't already present there.
 void clearStatistics()
          If data changes in the database, e.g. a DB Concept is edited, then this method allows to delete the deprecated statistics objects without running a garbage collection.
 Columnset copy(Concept newConcept)
           
 Column createColumn(java.lang.String name, java.lang.String datatype)
          Creates a Column that will be connected to this ColumnSet.
 void createColumnsFromDbObject(java.lang.String nameOfTableOrView)
          Creates an M4 Column for every column of the table or view with the given name, and connects it to this Columnset.
 ForeignKey createForeignKeyWhereThisIsFkCs(java.lang.String name)
          Creates a ForeignKey.
 PrimaryKey createPrimaryKey(java.lang.String name)
          Creates a PrimaryKey.
 Column getColumn(int index)
          Get a specific column.
 Column getColumn(java.lang.String columnName)
           
 java.util.Collection getColumns()
           
 java.lang.String getCompleteSQLQuery()
          This method returns a complete SQL query, which can be used to get the data as represented by this Columnset.
 java.lang.String getCompleteSQLQuery(java.lang.String rowNumName)
          This method returns a complete SQL query, which can be used to get the data as represented by this Columnset.
 java.util.Collection getForeignKeysWhereThisIsFkCs()
          Active getter for the Key objects referencing to this Columnset as their forein key.
 ForeignKey getForeignKeyWhereThisIsFkCs(java.lang.String keyName)
           
 java.lang.String getMsbInfoWithoutAttrib(java.lang.String attributeName)
           
 java.lang.String getMSBranchSelectionValue(java.lang.String attributeName)
          Scans the MultiStepBranch information of the Columnset for attributeName=Value; and returns the corresponding value, null otherwise.
 java.lang.String getMultiStepBranch()
           
 PrimaryKey getPrimaryKey()
           
 Relation getRelation()
          Returns the Relation in which this Columnset realizes the cross table, if there is such a Relation.
 java.lang.String getSchema()
           
 java.lang.String getSchemaPlusName()
           
 java.lang.String getSQLDefinition()
           
 java.util.Collection getStatistics()
          Active getter for the ColumnsetStatistics of this Columnset.
 int getStatisticsAll()
          Getter method.
 int getStatisticsNominal()
          Getter method.
 int getStatisticsOrdinal()
          Getter method.
 int getStatisticsTime()
          Getter method.
 Concept getTheConcept()
           
 java.lang.String getType()
           
 boolean hasColumn(Column col)
           
 java.lang.String readOrComputeCount()
          Reads, or computes and inserts into the statistics table, the number of rows of this ColumnSet and returns it as a string.
 void removeAllColumns()
           
 void removeAllForeignKeys()
          Removes all ForeignKeys from this ColumnSet.
 boolean removeColumn(Column column)
          Remove a column from this Columnsets's columns.
 void removeForeignKeyWhereThisIsFkCs(java.lang.String name)
          Removes the specified ForeignKey for this ColumnSet.
 void removePrimaryKey()
          Removes the specified PrimaryKey for this ColumnSet.
 void setColumn(int index, Column c)
          Set a specific column.
 void setColumns(java.util.Collection theColumns)
          Set all columns of this columnset.
 void setMultiStepBranch(java.lang.String branchDefinition)
          Set the information about the multistep branch.
 void setPrimaryKey(PrimaryKey primaryKey)
           
 void setRelation(Relation newRelation)
          Sets the connection to a Relation.
 void setSchema(java.lang.String s)
          Set the database schema where the table or view that this columnset refers to lives.
 void setSQLDefinition(java.lang.String sqlDefinition)
          Set the sql definition.
 void setStatistics(java.util.Collection theStats)
          Setter method.
 void setStatisticsAll(int sa)
          Setter method.
 void setStatisticsNominal(int sn)
          Setter method.
 void setStatisticsOrdinal(int so)
          Setter method.
 void setStatisticsTime(int st)
          Setter method.
 void setTheConcept(Concept c)
          Set this columnset's concept.
 void setType(java.lang.String t)
          Set the type of this columnset (table or view).
 void updateStatistics()
          Executes several SQL procedure queries to calculate statistical information for the given columnset on demand.
 
Methods inherited from interface edu.udo.cs.miningmart.m4.M4Data
deleteSoon, getDocumentation, getValidName, isDirty, isWaitingForDelete, setDocumentation
 
Methods inherited from interface edu.udo.cs.miningmart.m4.M4Object
doPrint, doPrint, equals, executeBusinessSingleValueSqlRead, executeBusinessSingleValueSqlReadL, executeBusinessSqlRead, executeBusinessSqlWrite, executeM4SingleValueSqlRead, executeM4SingleValueSqlReadL, executeM4SqlRead, executeM4SqlWrite, getCasePrintObject, getId, getM4Db, getM4ObjectFromCache, getName, getNextM4SequenceValue, isNew, load, print, putM4ObjectToCache, replaceSpacesInName, setId, setName
 

Field Detail

CS_TYPE_TABLE

public static final java.lang.String CS_TYPE_TABLE
DB level: String constant used in the DB to indicate that this columnset is a table

See Also:
Constant Field Values

CS_TYPE_VIEW

public static final java.lang.String CS_TYPE_VIEW
DB level: String constant used in the DB to indicate that this columnset is a view

See Also:
Constant Field Values

TYPE_TABLE

public static final java.lang.String TYPE_TABLE
See Also:
Constant Field Values

TYPE_VIEW

public static final java.lang.String TYPE_VIEW
See Also:
Constant Field Values

TYPE_SNAPSHOT

public static final java.lang.String TYPE_SNAPSHOT
See Also:
Constant Field Values

TYPE_MATERIALIZED_VIEW

public static final java.lang.String TYPE_MATERIALIZED_VIEW
See Also:
Constant Field Values
Method Detail

setTheConcept

public void setTheConcept(Concept c)
                   throws M4Exception
Set this columnset's concept.

Parameters:
c - the Concept this ColumnSet belongs to
Throws:
M4Exception

getTheConcept

public Concept getTheConcept()
Returns:
the Concept this ColumnSet belongs to

setSchema

public void setSchema(java.lang.String s)
Set the database schema where the table or view that this columnset refers to lives.

Parameters:
s - the schema name

getSchema

public java.lang.String getSchema()
Returns:
the name of the database schema where the table or view that this columnset refers to lives

getSchemaPlusName

public java.lang.String getSchemaPlusName()
Returns:
The name only, or "schema"."name" if the "schema" is known.

setType

public void setType(java.lang.String t)
             throws M4Exception
Set the type of this columnset (table or view). Use one of the public constants of this class, either CS_TYPE_TABLE or CS_TYPE_VIEW.

Parameters:
t - A String constant, either Columnset.CS_TYPE_TABLE or Columnset.CS_TYPE_VIEW
Throws:
M4Exception

getType

public java.lang.String getType()
Returns:
A String constant, either Columnset.CS_TYPE_TABLE or Columnset.CS_TYPE_VIEW

setSQLDefinition

public void setSQLDefinition(java.lang.String sqlDefinition)
Set the sql definition.

Parameters:
sqlDefinition - the new definition A value of null indicates that there is no explicit SQL definition, but that the name of the table or view is its defintion at the same time. If the sqlDefinition is null then the method getSQLDefinition() will return getSchemaPlusName().

getSQLDefinition

public java.lang.String getSQLDefinition()
Returns:
the sql definition of this columnset, if not set explicitly then getSchemaPlusName(). Never returns null.

getCompleteSQLQuery

public java.lang.String getCompleteSQLQuery()
                                     throws M4Exception
This method returns a complete SQL query, which can be used to get the data as represented by this Columnset. In contrast to the method getSQLDefinition() this method does also include virtual columns, which are sometimes not visible at the level of the Columnset's SQL definition.

Returns:
an SQL string like SELECT <SQLDefinition of Column1> <Name of Column1> , ... <SQLDefinition of Columnn> <Name of Columnn> FROM <SQLDefintion of the Columnset>
Throws:
M4Exception

getCompleteSQLQuery

public java.lang.String getCompleteSQLQuery(java.lang.String rowNumName)
                                     throws M4Exception
This method returns a complete SQL query, which can be used to get the data as represented by this Columnset. The difference to the same method without the additional parameter is, that this method allows to specify a target attribute name for the internal Oracle attribute ROWNUM

Parameters:
rowNumName - the target attribute name of the ROWNUM attribute
Returns:
an SQL string like SELECT ROWNUM AS <rowNumName>, <SQLDefinition of Column1> <Name of Column1> , ... <SQLDefinition of Columnn> <Name of Columnn> FROM <SQLDefintion of the Columnset>
Throws:
M4Exception
See Also:
Columnset.getCompleteSQLQuery

setMultiStepBranch

public void setMultiStepBranch(java.lang.String branchDefinition)
Set the information about the multistep branch.

Parameters:
branchDefinition - The new branch information

getMultiStepBranch

public java.lang.String getMultiStepBranch()
Returns:
the information about the multistep branch.

addMultiStepBranchInfo

public void addMultiStepBranchInfo(java.lang.String oldDef,
                                   java.lang.String attribute,
                                   java.lang.String value)
                            throws M4Exception
Adds an attribute-value pair to the MultiStepBranch field if the attribute isn't already present there.

Parameters:
oldDef - The multistep branch information so far
attribute - The attribute
Throws:
M4Exception

addMultiStepBranch

public void addMultiStepBranch(java.lang.String branch)
                        throws M4Exception
Parameters:
branch - A complete field CS_MSBRANCH as found in table COLUMNSET_T. It is added to the CS_MSBRANCH of this object via addMultiStepBranchInfo.
Throws:
M4Exception

setColumns

public void setColumns(java.util.Collection theColumns)
                throws M4Exception
Set all columns of this columnset.

Parameters:
theColumns - Collection of the new set of column objects
Throws:
M4Exception

hasColumn

public boolean hasColumn(Column col)
                  throws M4Exception
Parameters:
col - a Column
Returns:
true if a column with the same ID is already linked to this Columnset
Throws:
M4Exception

getColumns

public java.util.Collection getColumns()
                                throws M4Exception
Returns:
all columns of this columnset in an array
Throws:
M4Exception

setColumn

public void setColumn(int index,
                      Column c)
               throws M4Exception
Set a specific column. This method is to be used with care! At several occasions it is assumed, that each Column is entered just once in a Collection and entering null values might also be problematic!

Parameters:
index - number of the Column
c - Column to be set
Throws:
M4Exception

getColumn

public Column getColumn(int index)
                 throws M4Exception
Get a specific column.

Parameters:
index - number of the Column
Returns:
Column at this index
Throws:
M4Exception

getForeignKeysWhereThisIsFkCs

public java.util.Collection getForeignKeysWhereThisIsFkCs()
                                                   throws M4Exception
Active getter for the Key objects referencing to this Columnset as their forein key.

Returns:
a Collection of Key objects
Throws:
M4Exception

getStatistics

public java.util.Collection getStatistics()
                                   throws M4Exception
Active getter for the ColumnsetStatistics of this Columnset.

Returns:
a Collection of ColumnsetStatistics objects, never null.
Throws:
M4Exception

setStatistics

public void setStatistics(java.util.Collection theStats)
                   throws M4Exception
Setter method.

Throws:
M4Exception

setStatisticsAll

public void setStatisticsAll(int sa)
                      throws M4Exception
Setter method.

Parameters:
sa - the new value
Throws:
M4Exception

getStatisticsAll

public int getStatisticsAll()
                     throws M4Exception
Getter method.

Returns:
the value
Throws:
M4Exception

setStatisticsNominal

public void setStatisticsNominal(int sn)
                          throws M4Exception
Setter method.

Parameters:
sn - the new value
Throws:
M4Exception

getStatisticsNominal

public int getStatisticsNominal()
                         throws M4Exception
Getter method.

Returns:
the value
Throws:
M4Exception

setStatisticsOrdinal

public void setStatisticsOrdinal(int so)
                          throws M4Exception
Setter method.

Parameters:
so - the new value
Throws:
M4Exception

getStatisticsOrdinal

public int getStatisticsOrdinal()
                         throws M4Exception
Getter method.

Returns:
the value
Throws:
M4Exception

setStatisticsTime

public void setStatisticsTime(int st)
                       throws M4Exception
Setter method.

Parameters:
st - the new value
Throws:
M4Exception

getStatisticsTime

public int getStatisticsTime()
                      throws M4Exception
Getter method.

Returns:
the value
Throws:
M4Exception

addColumn

public void addColumn(Column c)
               throws M4Exception
Add a column to this columnset's columns.

Parameters:
c - the additional column
Throws:
M4Exception

removeColumn

public boolean removeColumn(Column column)
                     throws M4Exception
Remove a column from this Columnsets's columns.

Returns:
true if removing succeeded
Throws:
M4Exception

removeAllColumns

public void removeAllColumns()
                      throws M4Exception
Throws:
M4Exception

getMSBranchSelectionValue

public java.lang.String getMSBranchSelectionValue(java.lang.String attributeName)
                                           throws M4Exception
Scans the MultiStepBranch information of the Columnset for attributeName=Value; and returns the corresponding value, null otherwise. The attribute name is compared in a case insensitive way and it is assumed that exactly the format above is used. Each attribute value pair needs to be terminated by a ';', no whitespaces in between! If this assumption does not hold parsing might throw an exception.

Parameters:
attributeName - The name of the BaseAttribute or pseudo-attribute (e.g. (Random)) for which the value should be read from the CS_MSBRANCH field.
Returns:
the value, if found, null otherwise.
Throws:
M4Exception

getMsbInfoWithoutAttrib

public java.lang.String getMsbInfoWithoutAttrib(java.lang.String attributeName)
                                         throws M4Exception
Returns:
the MultiStepBranch-String omitting the equation for the given attribute. If the attribute does not occur, the complete String is returned. Note that an attribute is expected to occur at most once in the MultiStepBranch-String, because multiple occurences are redundant or result in an empty Columnset.
Throws:
M4Exception, - if the attributeName occurs in the String, but the substring is not properly ended by the character ';'.
M4Exception

readOrComputeCount

public java.lang.String readOrComputeCount()
                                    throws M4Exception
Reads, or computes and inserts into the statistics table, the number of rows of this ColumnSet and returns it as a string.

Returns:
the number of rows in the columnset as a String
Throws:
M4Exception

updateStatistics

public void updateStatistics()
                      throws M4Exception
Executes several SQL procedure queries to calculate statistical information for the given columnset on demand. The result is written to the table CSSTATIST_T and the JAVA cache is updated. Statistics already available are not recomputed. Finally an update for the statistics of all the Columns of this Columnset is performed.

Throws:
M4Exception

clearStatistics

public void clearStatistics()
                     throws M4Exception
If data changes in the database, e.g. a DB Concept is edited, then this method allows to delete the deprecated statistics objects without running a garbage collection.

Throws:
M4Exception

getRelation

public Relation getRelation()
Returns the Relation in which this Columnset realizes the cross table, if there is such a Relation.

Returns:
Relation The Relation or null

setRelation

public void setRelation(Relation newRelation)
                 throws M4Exception
Sets the connection to a Relation. This can be used if this Columnset realizes the cross table of a Relation.

Parameters:
newRelation - The Relation to set
Throws:
M4Exception

createColumn

public Column createColumn(java.lang.String name,
                           java.lang.String datatype)
                    throws M4Exception
Creates a Column that will be connected to this ColumnSet. The name of the Column must be unique for this ColumnSet.

Throws:
CreateException - when an error occurs during creation of the object.
NameExistsException - when the provided name already exists.
M4Exception

createColumnsFromDbObject

public void createColumnsFromDbObject(java.lang.String nameOfTableOrView)
                               throws M4Exception
Creates an M4 Column for every column of the table or view with the given name, and connects it to this Columnset.

Parameters:
nameOfTableOrView - name of the table or view
Throws:
M4Exception

getColumn

public Column getColumn(java.lang.String columnName)
                 throws M4Exception
Throws:
M4Exception

createForeignKeyWhereThisIsFkCs

public ForeignKey createForeignKeyWhereThisIsFkCs(java.lang.String name)
                                           throws M4Exception
Creates a ForeignKey. The name of the Key must be unique within the ColumnSet.

Throws:
M4Exception

getForeignKeyWhereThisIsFkCs

public ForeignKey getForeignKeyWhereThisIsFkCs(java.lang.String keyName)
                                        throws M4Exception
Throws:
M4Exception

removeForeignKeyWhereThisIsFkCs

public void removeForeignKeyWhereThisIsFkCs(java.lang.String name)
                                     throws M4Exception
Removes the specified ForeignKey for this ColumnSet. It is also removed from the M4 Schema.

Throws:
M4Exception

removeAllForeignKeys

public void removeAllForeignKeys()
                          throws M4Exception
Removes all ForeignKeys from this ColumnSet. They are removed from the M4 Schema.

Throws:
M4Exception

createPrimaryKey

public PrimaryKey createPrimaryKey(java.lang.String name)
                            throws M4Exception
Creates a PrimaryKey. The name of the Key must be unique within the ColumnSet.

Throws:
CreateException - when an error occurs during creation of the object.
NameExistsException - when the provided name already exists.
M4Exception

setPrimaryKey

public void setPrimaryKey(PrimaryKey primaryKey)
                   throws M4Exception
Throws:
M4Exception

removePrimaryKey

public void removePrimaryKey()
                      throws M4Exception
Removes the specified PrimaryKey for this ColumnSet. It is also removed from the M4 Schema.

Throws:
M4Exception

copy

public Columnset copy(Concept newConcept)
               throws M4Exception
Throws:
M4Exception

getPrimaryKey

public PrimaryKey getPrimaryKey()
                         throws M4Exception
Throws:
M4Exception


Copyright © 2001-2005