org.apache.cocoon.components.modules.database
Class McKoiSequenceModule

java.lang.Object
  extended by org.apache.cocoon.components.modules.database.McKoiSequenceModule
All Implemented Interfaces:
Component, ThreadSafe, AutoIncrementModule

public class McKoiSequenceModule
extends Object
implements AutoIncrementModule, ThreadSafe

Abstraction layer to encapsulate different DBMS behaviour for autoincrement columns. Here: McKoi sequences. The default sequence name is constructed from the table name, a "_", the column name, and the suffix "_seq". To use a different sequence name, set an attribute "sequence" for the modeConf e.g. <mode name="auto" type="auto" sequence="my_sequence"/>.

Version:
CVS $Id: McKoiSequenceModule.html 1304258 2012-03-23 10:09:27Z ilgrosso $
Author:
Christian Haul

Field Summary
 
Fields inherited from interface org.apache.cocoon.components.modules.database.AutoIncrementModule
ROLE
 
Constructor Summary
McKoiSequenceModule()
           
 
Method Summary
 Object getPostValue(Configuration tableConf, Configuration columnConf, Configuration modeConf, Connection conn, Statement stmt, Map objectModel)
          Return key attribute value of last inserted row.
 Object getPreValue(Configuration tableConf, Configuration columnConf, Configuration modeConf, Connection conn, Map objectModel)
          Provide the value for the key attribute column.
 String getSubquery(Configuration tableConf, Configuration columnConf, Configuration modeConf)
          Provide subquery string for the key attribute column.
 boolean includeAsValue()
          Boolean whether the key attribute needs to be included in the insert query as an attribute value (no subquery).
 boolean includeInQuery()
          Boolean whether the key attribute column needs to be included in the insert query.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

McKoiSequenceModule

public McKoiSequenceModule()
Method Detail

getPostValue

public Object getPostValue(Configuration tableConf,
                           Configuration columnConf,
                           Configuration modeConf,
                           Connection conn,
                           Statement stmt,
                           Map objectModel)
                    throws SQLException,
                           ConfigurationException
Description copied from interface: AutoIncrementModule
Return key attribute value of last inserted row.

Specified by:
getPostValue in interface AutoIncrementModule
Parameters:
tableConf - Table's configuration from resource description.
columnConf - column's configuration from resource description.
modeConf - this mode's configuration from resource description.
conn - Connection
stmt - Statement that was executed to insert the last row.
objectModel - The objectModel
Returns:
value representing the last key value value.
Throws:
SQLException
ConfigurationException

includeInQuery

public boolean includeInQuery()
Description copied from interface: AutoIncrementModule
Boolean whether the key attribute column needs to be included in the insert query.

Specified by:
includeInQuery in interface AutoIncrementModule
Returns:
true if the column is needed, false if the column should be skipped.

includeAsValue

public boolean includeAsValue()
Description copied from interface: AutoIncrementModule
Boolean whether the key attribute needs to be included in the insert query as an attribute value (no subquery).

Specified by:
includeAsValue in interface AutoIncrementModule
Returns:
true if a value is needed, false if a subquery expression is used or the column is skipped altogether.

getPreValue

public Object getPreValue(Configuration tableConf,
                          Configuration columnConf,
                          Configuration modeConf,
                          Connection conn,
                          Map objectModel)
                   throws SQLException,
                          ConfigurationException
Description copied from interface: AutoIncrementModule
Provide the value for the key attribute column. If a value for the key value column is needed (i.e. the column is not skipped), this value is computed here.

Specified by:
getPreValue in interface AutoIncrementModule
Parameters:
tableConf - Table's configuration from resource description.
columnConf - column's configuration from resource description.
modeConf - this mode's configuration from resource description.
conn - Connection
objectModel - The objectModel
Returns:
exact value for key attribute column
Throws:
SQLException
ConfigurationException

getSubquery

public String getSubquery(Configuration tableConf,
                          Configuration columnConf,
                          Configuration modeConf)
                   throws ConfigurationException
Description copied from interface: AutoIncrementModule
Provide subquery string for the key attribute column. If a value for the autoincrement column is needed (i.e. the column is not skipped), and the value can be determined through a nested subquery, this function provides the subquery as a string.

Specified by:
getSubquery in interface AutoIncrementModule
Returns:
subquery string for autoincrement column.
Throws:
ConfigurationException


Copyright © 1999-2010 The Apache Software Foundation. All Rights Reserved.