| org.apache.cocoon.acting.AbstractAction org.apache.cocoon.acting.AbstractConfigurableAction org.apache.cocoon.acting.ConfigurableServiceableAction org.apache.cocoon.acting.AbstractComplementaryConfigurableAction org.apache.cocoon.acting.AbstractDatabaseAction org.apache.cocoon.acting.DatabaseAddAction
All known Subclasses: org.apache.cocoon.acting.OraAddAction,
DatabaseAddAction | public class DatabaseAddAction extends AbstractDatabaseAction implements ThreadSafe(Code) | | Adds record in a database. The action can update one or more tables,
and can add more than one row to a table at a time. The form descriptor
semantics for this are still in a bit of a state of flux. Note
that if a secondary table relies on the value of a new primary key in a
primary table, the primary key must be created using manual mode.
author: Berin Loritsch author: Donald Ball version: CVS $Id: DatabaseAddAction.java 433543 2006-08-22 06:22:54Z crossley $ |
Method Summary | |
public Map | act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters param) Add a record to the database. | String | getActualParam(String param, String wildcard) Returns the actual name of the parameter. | protected String | getAddQuery(Configuration table) Get the String representation of the PreparedStatement. | final protected synchronized String | getSelectQuery(Configuration entry) | void | processTable(Configuration table, Connection conn, Request request, Map results) | int | setKey(Configuration table, Configuration key, Connection conn, PreparedStatement statement, int currentIndex, Request request, String param, Map results) Sets the key value on the prepared statement. | final protected synchronized void | setSelectQuery(String tableName, Configuration entry) Set the String representation of the MaxID lookup statement. |
addStatements | final protected static Map addStatements(Code) | | |
act | public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters param) throws Exception(Code) | | Add a record to the database. This action assumes that
the file referenced by the "descriptor" parameter conforms
to the AbstractDatabaseAction specifications.
|
getActualParam | String getActualParam(String param, String wildcard)(Code) | | Returns the actual name of the parameter. If the name contains
no wildcard, the param is returned untouched, otherwise the
wildcard value is substituted for the * character. This probably
doesn't deserve a method unto itself, but I can imagine wanting
to use a more sophisticated matching and substitution algorithm.
Parameters: param - the name of the parameter, possibly with a wildcard char Parameters: wildcard - the wildcard value the actual name of the parameter |
getAddQuery | protected String getAddQuery(Configuration table) throws ConfigurationException(Code) | | Get the String representation of the PreparedStatement. This is
mapped to the Configuration object itself, so if it doesn't exist,
it will be created.
Parameters: table - the table's configuration object the insert query as a string |
getSelectQuery | final protected synchronized String getSelectQuery(Configuration entry) throws ConfigurationException(Code) | | |
processTable | void processTable(Configuration table, Connection conn, Request request, Map results) throws SQLException, ConfigurationException, Exception(Code) | | Inserts a row or a set of rows into the given table based on the
request parameters
Parameters: table - the table's configuration Parameters: conn - the database connection Parameters: request - the request |
setKey | int setKey(Configuration table, Configuration key, Connection conn, PreparedStatement statement, int currentIndex, Request request, String param, Map results) throws ConfigurationException, SQLException, Exception(Code) | | Sets the key value on the prepared statement. There are four modes:
- automatic (default)
- let the database automatically create the key. note this
prohibits the action from storing the key value anywhere.
- manual
- create the key value using SELECT(dbcol)+1 from TABLE
- form
- look for the key value in the request parameters
- request-attribute
- look for the key value in the request attributes
This method has a couple of side effects. If the mode is manual,
the key value is stored in the request object's attributes for use
by other inserts. The key is the string "key:TABLENAME:DBCOL".
This method also puts the value of manually created keys in the results
map. That key is simply the value of the dbcol attribute. Note this
stuff is definitely up in the air.
Parameters: table - the table's configuration object Parameters: key - the key's configuration object Parameters: conn - the database connection Parameters: statement - the insert statement Parameters: currentIndex - the position of the key column Parameters: request - the request object Parameters: param - the actual name of the request parameter the number of columns by which to increment the currentIndex |
setSelectQuery | final protected synchronized void setSelectQuery(String tableName, Configuration entry) throws ConfigurationException(Code) | | Set the String representation of the MaxID lookup statement. This is
mapped to the Configuration object itself, so if it doesn't exist,
it will be created.
|
Methods inherited from org.apache.cocoon.acting.AbstractDatabaseAction | protected StringBuffer buildList(Configuration[] values, String separator) throws ConfigurationException(Code)(Java Doc) protected StringBuffer buildList(Configuration[] values, int begin) throws ConfigurationException(Code)(Java Doc) public void dispose()(Code)(Java Doc) protected Object getColumn(ResultSet set, Request request, Configuration entry) throws Exception(Code)(Java Doc) final protected DataSourceComponent getDataSource(Configuration conf) throws ServiceException(Code)(Java Doc) protected Object getRequestAttribute(Request request, String key)(Code)(Java Doc) final protected boolean isLargeObject(String type)(Code)(Java Doc) public void service(ServiceManager manager) throws ServiceException(Code)(Java Doc) protected void setColumn(PreparedStatement statement, int position, Request request, Configuration entry) throws Exception(Code)(Java Doc) protected void setColumn(PreparedStatement statement, int position, Request request, Configuration entry, String param) throws Exception(Code)(Java Doc) protected void setColumn(PreparedStatement statement, int position, Request request, Configuration entry, String param, Object value) throws Exception(Code)(Java Doc) protected void setColumn(PreparedStatement statement, int position, Request request, Configuration entry, String param, Object value, int rowIndex) throws Exception(Code)(Java Doc) protected void setRequestAttribute(Request request, String key, Object value)(Code)(Java Doc)
|
Methods inherited from org.apache.cocoon.acting.AbstractComplementaryConfigurableAction | protected Configuration getConfiguration(String descriptor) throws ConfigurationException(Code)(Java Doc) protected Configuration getConfiguration(String descriptor, boolean reloadable) throws ConfigurationException(Code)(Java Doc) protected Configuration getConfiguration(String descriptor, SourceResolver resolver, boolean reloadable) throws ConfigurationException(Code)(Java Doc)
|
Fields inherited from org.apache.cocoon.acting.ConfigurableServiceableAction | protected ServiceManager manager(Code)(Java Doc)
|
Methods inherited from org.apache.cocoon.acting.ConfigurableServiceableAction | public void service(ServiceManager manager) throws ServiceException(Code)(Java Doc)
|
Fields inherited from org.apache.cocoon.acting.AbstractConfigurableAction | protected HashMap settings(Code)(Java Doc)
|
Methods inherited from org.apache.cocoon.acting.AbstractConfigurableAction | public void configure(Configuration conf) throws ConfigurationException(Code)(Java Doc)
|
Fields inherited from org.apache.cocoon.acting.AbstractAction | final protected static Map EMPTY_MAP(Code)(Java Doc)
|
|
|