org.apache.empire.db
Class DBView

java.lang.Object
  extended by org.apache.empire.db.DBObject
      extended by org.apache.empire.db.DBExpr
          extended by org.apache.empire.db.DBRowSet
              extended by org.apache.empire.db.DBView
All Implemented Interfaces:
Serializable

public abstract class DBView
extends DBRowSet

This class represents a database view. It contains methods to get and update records from the database

See Also:
Serialized Form

Nested Class Summary
static class DBView.DBViewColumn
           
 
Field Summary
 
Fields inherited from class org.apache.empire.db.DBRowSet
columnReferences, columns, comment, db, log, primaryKey, timestampColumn
 
Fields inherited from class org.apache.empire.db.DBExpr
CTX_ALIAS, CTX_ALL, CTX_DEFAULT, CTX_FULLNAME, CTX_NAME, CTX_NOPARENTHESES, CTX_VALUE
 
Constructor Summary
DBView(String name, DBDatabase db)
          Creates a view object for a given view in the database.
DBView(String name, DBDatabase db, boolean isUpdateable)
          Creates a view object for a given view in the database.
 
Method Summary
protected  DBView.DBViewColumn addColumn(DBTableColumn sourceColumn)
          Adds a column to the view based on an existing column in another table or view.
protected  void addColumn(DBView.DBViewColumn col)
          Adds a column to the view.
protected  DBView.DBViewColumn addColumn(String columnName, DataType dataType)
          Adds a column to the view.
protected  DBView.DBViewColumn addColumn(String columnName, DBColumnExpr columnExpr)
          Adds a column to the view.
 void addSQL(StringBuilder buf, long context)
          Creates the SQL-Command adds the alias name to the SQL-Command.
abstract  DBCommandExpr createCommand()
          Returns the command required to create the view
This is function is only used for the creation of DDL statements
 void createRecord(DBRecord rec, Connection conn)
           
 void deleteRecord(Object[] keys, Connection conn)
           
 DBView.DBViewColumn findViewColumn(DBColumnExpr expr)
          This function searchs for equal columns given by the specified DBColumnExpr object.
 String getAlias()
          Returns the alias name of this object.
 String getFullName()
          Returns the full qualified table name.
 String getName()
          Returns the view name of this object.
 boolean isUpdateable()
          Returns whether or not the view is updateable
protected  void setKeyColumn(DBView.DBViewColumn keyColumn)
          identifies the column that uniquely identifies a row in the view
protected  void setKeyColumns(DBView.DBViewColumn[] keyColumns)
          identifies the columns that uniquely identify a row in the view
 void updateRecord(DBRecord rec, Connection conn)
          Updates or Inserts a record in the database.
Whether an update or insert is performed depends on the record state.
Only modified fields will be inserted or updated in the database.
 
Methods inherited from class org.apache.empire.db.DBRowSet
addColumnReference, addReferencedColumns, completeInitRecord, count, deleteAllReferences, deleteRecord, deleteReferenceRecords, equals, findById, getColumn, getColumn, getColumnIndex, getColumnIndex, getColumnReferences, getColumns, getComment, getDatabase, getId, getKeyColumns, getRecordKey, getRenameTablePhrase, getTimestampColumn, initRecord, initRecord, isColumnReadOnly, isKeyColumn, prepareInitRecord, readRecord, readRecord, recordExists, recordExists, setComment, setKeyConstraints, setTimestampColumn
 
Methods inherited from class org.apache.empire.db.DBExpr
getObjectValue, getValueClass
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DBView

public DBView(String name,
              DBDatabase db,
              boolean isUpdateable)
Creates a view object for a given view in the database.

Parameters:
name - the name of the view
db - the database this view belongs to.
isUpdateable - true if the records of this view can be updated

DBView

public DBView(String name,
              DBDatabase db)
Creates a view object for a given view in the database.

Parameters:
name - the name of the view
db - the database this view belongs to.
Method Detail

setKeyColumns

protected void setKeyColumns(DBView.DBViewColumn[] keyColumns)
identifies the columns that uniquely identify a row in the view

Parameters:
keyColumns - list of columns that uniquely identify a row

setKeyColumn

protected void setKeyColumn(DBView.DBViewColumn keyColumn)
identifies the column that uniquely identifies a row in the view

Parameters:
keyColumn - the column that uniquely identifies a row

createCommand

public abstract DBCommandExpr createCommand()
Returns the command required to create the view
This is function is only used for the creation of DDL statements

Returns:
a command expression that is used to create the view

getName

public String getName()
Returns the view name of this object.

Specified by:
getName in class DBRowSet
Returns:
the view name of this object

getFullName

public String getFullName()
Returns the full qualified table name.

Overrides:
getFullName in class DBRowSet
Returns:
the full qualified table name

getAlias

public String getAlias()
Returns the alias name of this object.

Specified by:
getAlias in class DBRowSet
Returns:
the alias name of this object

isUpdateable

public boolean isUpdateable()
Returns whether or not the view is updateable

Specified by:
isUpdateable in class DBRowSet
Returns:
true if the view is updateable or false if not

addColumn

protected void addColumn(DBView.DBViewColumn col)
Adds a column to the view.

Parameters:
col - a view column object

addColumn

protected final DBView.DBViewColumn addColumn(String columnName,
                                              DataType dataType)
Adds a column to the view.

Parameters:
columnName - name of the column in the view
dataType - the data type of the column
Returns:
true if the column was successfully added or false otherwise

addColumn

protected final DBView.DBViewColumn addColumn(String columnName,
                                              DBColumnExpr columnExpr)
Adds a column to the view.

Parameters:
columnName - name of the column in the view
columnExpr - the column expression that builds the column
Returns:
true if the column was successfully added or false otherwise

addColumn

protected final DBView.DBViewColumn addColumn(DBTableColumn sourceColumn)
Adds a column to the view based on an existing column in another table or view.

Parameters:
sourceColumn - existing column in another table or view
Returns:
the view column object

findViewColumn

public DBView.DBViewColumn findViewColumn(DBColumnExpr expr)
This function searchs for equal columns given by the specified DBColumnExpr object.

Parameters:
expr - the DBColumnExpr object
Returns:
the located column (only DBViewColumn objects)

addSQL

public void addSQL(StringBuilder buf,
                   long context)
Creates the SQL-Command adds the alias name to the SQL-Command.

Specified by:
addSQL in class DBExpr
Parameters:
buf - the SQL-Command
context - the current SQL-Command context

updateRecord

public void updateRecord(DBRecord rec,
                         Connection conn)
Description copied from class: DBRowSet
Updates or Inserts a record in the database.
Whether an update or insert is performed depends on the record state.
Only modified fields will be inserted or updated in the database.

If a timestamp-column is set for this RowSet then a constraint will be added in the update statement in order to detect concurrent changes.
If the record has been modified by another user, an error of type DBErrors.RecordUpdateFailed will be set.

Overrides:
updateRecord in class DBRowSet
Parameters:
rec - the DBRecord object. contains all fields and the field properties
conn - a valid JDBC connection.

createRecord

public void createRecord(DBRecord rec,
                         Connection conn)
Specified by:
createRecord in class DBRowSet

deleteRecord

public void deleteRecord(Object[] keys,
                         Connection conn)
Specified by:
deleteRecord in class DBRowSet


Copyright © 2008-2012 Apache Software Foundation. All Rights Reserved.