org.apache.openjpa.jdbc.meta.strats
Class StateComparisonVersionStrategy.CustomUpdate

java.lang.Object
  extended by org.apache.openjpa.jdbc.sql.RowImpl
      extended by org.apache.openjpa.jdbc.meta.strats.StateComparisonVersionStrategy.CustomUpdate
All Implemented Interfaces:
Cloneable, Row, RowManager
Enclosing class:
StateComparisonVersionStrategy

public static class StateComparisonVersionStrategy.CustomUpdate
extends RowImpl
implements RowManager

Row implementation we use to pass to versionable mappings so they can set up the where conditions we need to add to update statements.

Author:
Abe White

Field Summary
 
Fields inherited from class org.apache.openjpa.jdbc.sql.RowImpl
flags, NULL, RAW, VALID
 
Fields inherited from interface org.apache.openjpa.jdbc.sql.Row
ACTION_DELETE, ACTION_INSERT, ACTION_UNKNOWN, ACTION_UPDATE
 
Method Summary
 void flushAllRows(Row row)
          Flush the logical row.
 void flushSecondaryRow(Row row)
          Flush the secondary row; after flushing the row is available for reuse.
 Collection getAllRowDeletes()
           
 Row getAllRows(Table table, int action)
          Return a logical row representing an update that should be made to all rows of the given table.
 Collection getAllRowUpdates()
           
 Collection getDeletes()
           
 Collection getInserts()
           
 Row getRow(Table table, int action, OpenJPAStateManager sm, boolean create)
          Return the row for the given table and owner object, or null if create is false and the row has not already been created.
 Collection getSecondaryDeletes()
           
 Row getSecondaryRow(Table table, int action)
          Return a row for the given secondary table.
 Collection getSecondaryUpdates()
           
 String getSQL(DBDictionary dict)
          Return a boolean SQL expression that should be added to the WHERE clause of an UPDATE to test whether the current database record matches our stored version.
 Collection getUpdates()
           
 boolean hasAutoAssignConstraints()
           
protected  RowImpl newInstance(Column[] cols, int action)
          Return a new row.
 void setObject(Column col, Object val)
          Set the value of the given column in this row.
 
Methods inherited from class org.apache.openjpa.jdbc.sql.RowImpl
canSet, canSetAny, clearForeignKey, clearRelationId, clone, copyInto, flush, flush, generateSQL, getAction, getColumns, getFailedObject, getParameterCount, getPrimaryKey, getSet, getTable, getTypes, getVals, getWhere, isDependent, isFlushed, isValid, setArray, setAsciiStream, setBigDecimal, setBigInteger, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCalendar, setChar, setCharacterStream, setClob, setDate, setDate, setDouble, setFailedObject, setFloat, setFlushed, setForeignKey, setForeignKey, setInt, setLocale, setLong, setNull, setNull, setNumber, setObject, setPrimaryKey, setPrimaryKey, setRaw, setRelationId, setShort, setString, setTime, setTimestamp, setValid, whereArray, whereAsciiStream, whereBigDecimal, whereBigInteger, whereBinaryStream, whereBlob, whereBoolean, whereByte, whereBytes, whereCalendar, whereChar, whereCharacterStream, whereClob, whereDate, whereDate, whereDouble, whereFloat, whereForeignKey, whereInt, whereLocale, whereLong, whereNull, whereNumber, whereObject, whereObject, wherePrimaryKey, whereRaw, whereShort, whereString, whereTime, whereTimestamp
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getSQL

public String getSQL(DBDictionary dict)
Return a boolean SQL expression that should be added to the WHERE clause of an UPDATE to test whether the current database record matches our stored version.

Overrides:
getSQL in class RowImpl

newInstance

protected RowImpl newInstance(Column[] cols,
                              int action)
Description copied from class: RowImpl
Return a new row.

Overrides:
newInstance in class RowImpl

hasAutoAssignConstraints

public boolean hasAutoAssignConstraints()

getInserts

public Collection getInserts()

getUpdates

public Collection getUpdates()

getDeletes

public Collection getDeletes()

getSecondaryUpdates

public Collection getSecondaryUpdates()

getSecondaryDeletes

public Collection getSecondaryDeletes()

getAllRowUpdates

public Collection getAllRowUpdates()

getAllRowDeletes

public Collection getAllRowDeletes()

getRow

public Row getRow(Table table,
                  int action,
                  OpenJPAStateManager sm,
                  boolean create)
Description copied from interface: RowManager
Return the row for the given table and owner object, or null if create is false and the row has not already been created. The action must be one of Row.ACTION_INSERT, Row.ACTION_UPDATE, Row.ACTION_DELETE.

Specified by:
getRow in interface RowManager

getSecondaryRow

public Row getSecondaryRow(Table table,
                           int action)
Description copied from interface: RowManager
Return a row for the given secondary table. The action must be one of Row.ACTION_INSERT, Row.ACTION_UPDATE, Row.ACTION_DELETE. Note that secondary rows are not considered when creating the foreign key dependency graph, with can cause constraint violations when using the UPDATE action. Only use this action if the secondary row does not have restrict-action foreign keys. Otherwise use both a delete and then an insert to perform the update.

Specified by:
getSecondaryRow in interface RowManager

flushSecondaryRow

public void flushSecondaryRow(Row row)
Description copied from interface: RowManager
Flush the secondary row; after flushing the row is available for reuse. It will retain all previously set values.

Specified by:
flushSecondaryRow in interface RowManager

getAllRows

public Row getAllRows(Table table,
                      int action)
Description copied from interface: RowManager
Return a logical row representing an update that should be made to all rows of the given table. The action must be one of Row.ACTION_UPDATE, Row.ACTION_DELETE.

Specified by:
getAllRows in interface RowManager

flushAllRows

public void flushAllRows(Row row)
Description copied from interface: RowManager
Flush the logical row.

Specified by:
flushAllRows in interface RowManager

setObject

public void setObject(Column col,
                      Object val)
               throws SQLException
Description copied from interface: Row
Set the value of the given column in this row.

Specified by:
setObject in interface Row
Overrides:
setObject in class RowImpl
Parameters:
col - the column being set
val - the value for the column
Throws:
SQLException


Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.