org.apache.openjpa.jdbc.sql
Class PrimaryRow

java.lang.Object
  extended by org.apache.openjpa.jdbc.sql.RowImpl
      extended by org.apache.openjpa.jdbc.sql.PrimaryRow
All Implemented Interfaces:
Cloneable, Row

public class PrimaryRow
extends RowImpl

Primary table row that tracks foreign keys and auto-inc columns.

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
 
Constructor Summary
protected PrimaryRow(Column[] cols, int action, OpenJPAStateManager owner)
           
  PrimaryRow(Table table, int action, OpenJPAStateManager owner)
          Constructor; supply table and action.
 
Method Summary
(package private)  boolean allowsUpdate(Column col, Object old, Object cur)
          Allow the given column value to be updated only if old or current value is a default value or was not set and the column is not a primary key.
 void clearForeignKey(ForeignKey fk)
          Clear a circular foreign key.
 void clearRelationId(Column col)
          Clear a circular relation id.
 void copyInto(RowImpl row, boolean whereOnly)
          Copy all values from this row into the given one.
protected  String generateSQL(DBDictionary dict)
          Generate the SQL for this row; the result of this method is cached.
 Object getFailedObject()
          This implementation does not track failed objects.
 ColumnIO getForeignKeyIO(ForeignKey fk)
          Return the I/O information for the given set foreign key.
 OpenJPAStateManager getForeignKeySet(ForeignKey fk)
          Return the value for the given foreign key.
 OpenJPAStateManager getForeignKeyWhere(ForeignKey fk)
          Return the value for the given foreign key.
 int getIndex()
          The index of this row in ordered row list.
 OpenJPAStateManager getPrimaryKey()
          This implementation does not track primary keys.
 RelationId getRelationIdCallback(Column col)
          Return the recorded callbacks for the given relation id column.
 OpenJPAStateManager getRelationIdSet(Column col)
          Return the recorded value for the given relation id column.
(package private)  boolean isDefaultValue(Object val)
           
 boolean isDependent()
          Mark this row as dependent on some other row.
protected  RowImpl newInstance(Column[] cols, int action)
          Return a new row.
 void setDependent(boolean dependent)
          Mark this row as dependent on some other row.
 void setFailedObject(Object failed)
          This implementation does not track failed objects.
 void setForeignKey(ForeignKey fk, ColumnIO io, OpenJPAStateManager sm)
          Set the value of the given foreign key to the given object.
 void setForeignKey(ForeignKey fk, OpenJPAStateManager sm)
          Set the value of the given foreign key to the given object.
 void setIndex(int idx)
          The index of this row in ordered row list.
protected  void setObject(Column col, Object val, int metaType, boolean overrideDefault)
          All set column methods delegate to this one.
 void setPrimaryKey(ColumnIO io, OpenJPAStateManager sm)
          Set the primary key to represent the given object.
 void setPrimaryKey(OpenJPAStateManager sm)
          Set the primary key to represent the given object.
 void setRelationId(Column col, OpenJPAStateManager sm, RelationId rel)
          Set the value of the given column to the identity of given instance, using the given callback to create the column value.
 void whereForeignKey(ForeignKey fk, OpenJPAStateManager sm)
          Set the foreign key equality criteria to link to the given object.
 void wherePrimaryKey(OpenJPAStateManager sm)
          Set the primary key equality criteria for this row.
 
Methods inherited from class org.apache.openjpa.jdbc.sql.RowImpl
canSet, canSetAny, clone, flush, flush, getAction, getColumns, getParameterCount, getSet, getSQL, getTable, getTypes, getVals, getWhere, isFlushed, isValid, setArray, setAsciiStream, setBigDecimal, setBigInteger, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCalendar, setChar, setCharacterStream, setClob, setDate, setDate, setDouble, setFloat, setFlushed, setInt, setLocale, setLong, setNull, setNull, setNumber, setObject, setRaw, setShort, setString, setTime, setTimestamp, setValid, whereArray, whereAsciiStream, whereBigDecimal, whereBigInteger, whereBinaryStream, whereBlob, whereBoolean, whereByte, whereBytes, whereCalendar, whereChar, whereCharacterStream, whereClob, whereDate, whereDate, whereDouble, whereFloat, whereInt, whereLocale, whereLong, whereNull, whereNumber, whereObject, whereObject, whereRaw, whereShort, whereString, whereTime, whereTimestamp
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PrimaryRow

public PrimaryRow(Table table,
                  int action,
                  OpenJPAStateManager owner)
Constructor; supply table and action.


PrimaryRow

protected PrimaryRow(Column[] cols,
                     int action,
                     OpenJPAStateManager owner)
Method Detail

isDependent

public boolean isDependent()
Mark this row as dependent on some other row.

Overrides:
isDependent in class RowImpl

setDependent

public void setDependent(boolean dependent)
Mark this row as dependent on some other row.


getIndex

public int getIndex()
The index of this row in ordered row list.


setIndex

public void setIndex(int idx)
The index of this row in ordered row list.


getFailedObject

public Object getFailedObject()
Description copied from class: RowImpl
This implementation does not track failed objects.

Specified by:
getFailedObject in interface Row
Overrides:
getFailedObject in class RowImpl

setFailedObject

public void setFailedObject(Object failed)
Description copied from class: RowImpl
This implementation does not track failed objects.

Specified by:
setFailedObject in interface Row
Overrides:
setFailedObject in class RowImpl

getPrimaryKey

public OpenJPAStateManager getPrimaryKey()
Description copied from class: RowImpl
This implementation does not track primary keys.

Specified by:
getPrimaryKey in interface Row
Overrides:
getPrimaryKey in class RowImpl

setPrimaryKey

public void setPrimaryKey(OpenJPAStateManager sm)
                   throws SQLException
Description copied from interface: Row
Set the primary key to represent the given object.

Specified by:
setPrimaryKey in interface Row
Overrides:
setPrimaryKey in class RowImpl
Throws:
SQLException

setPrimaryKey

public void setPrimaryKey(ColumnIO io,
                          OpenJPAStateManager sm)
Description copied from interface: Row
Set the primary key to represent the given object.

Specified by:
setPrimaryKey in interface Row
Overrides:
setPrimaryKey in class RowImpl
Parameters:
io - information on which columns are settable; may be null

wherePrimaryKey

public void wherePrimaryKey(OpenJPAStateManager sm)
                     throws SQLException
Description copied from interface: Row
Set the primary key equality criteria for this row.

Specified by:
wherePrimaryKey in interface Row
Overrides:
wherePrimaryKey in class RowImpl
Throws:
SQLException

getForeignKeyIO

public ColumnIO getForeignKeyIO(ForeignKey fk)
Return the I/O information for the given set foreign key.


getForeignKeySet

public OpenJPAStateManager getForeignKeySet(ForeignKey fk)
Return the value for the given foreign key. Values not needed for constraint analyses are not recorded.


getForeignKeyWhere

public OpenJPAStateManager getForeignKeyWhere(ForeignKey fk)
Return the value for the given foreign key. Values not needed for constraint analyses are not recorded.


setForeignKey

public void setForeignKey(ForeignKey fk,
                          OpenJPAStateManager sm)
                   throws SQLException
Description copied from interface: Row
Set the value of the given foreign key to the given object. If the related type uses table-per-class mappings, the foreign key may be targeted at an independent superclass table.

Specified by:
setForeignKey in interface Row
Overrides:
setForeignKey in class RowImpl
Throws:
SQLException

setForeignKey

public void setForeignKey(ForeignKey fk,
                          ColumnIO io,
                          OpenJPAStateManager sm)
                   throws SQLException
Description copied from interface: Row
Set the value of the given foreign key to the given object. If the related type uses table-per-class mappings, the foreign key may be targeted at an independent superclass table.

Specified by:
setForeignKey in interface Row
Overrides:
setForeignKey in class RowImpl
io - information on which columns are settable; may be null
Throws:
SQLException

whereForeignKey

public void whereForeignKey(ForeignKey fk,
                            OpenJPAStateManager sm)
                     throws SQLException
Description copied from interface: Row
Set the foreign key equality criteria to link to the given object. If the related type uses table-per-class mappings, the foreign key may be targeted at an independent superclass table.

Specified by:
whereForeignKey in interface Row
Overrides:
whereForeignKey in class RowImpl
Throws:
SQLException

clearForeignKey

public void clearForeignKey(ForeignKey fk)
                     throws SQLException
Description copied from class: RowImpl
Clear a circular foreign key.

Overrides:
clearForeignKey in class RowImpl
Throws:
SQLException

getRelationIdSet

public OpenJPAStateManager getRelationIdSet(Column col)
Return the recorded value for the given relation id column. Only values that are dependent on a new, unflushed auto-assigned instance are recorded.


getRelationIdCallback

public RelationId getRelationIdCallback(Column col)
Return the recorded callbacks for the given relation id column. Only values that are dependent on a new, unflushed auto-assigned instance are recorded.


setRelationId

public void setRelationId(Column col,
                          OpenJPAStateManager sm,
                          RelationId rel)
                   throws SQLException
Description copied from interface: Row
Set the value of the given column to the identity of given instance, using the given callback to create the column value. This method is used for mappings that store some serialized form of id values, but must make sure that the related object's id is assigned (which might require an insert if the instance uses auto-increment) before it is serialized.

Specified by:
setRelationId in interface Row
Overrides:
setRelationId in class RowImpl
Throws:
SQLException

clearRelationId

public void clearRelationId(Column col)
                     throws SQLException
Description copied from class: RowImpl
Clear a circular relation id.

Overrides:
clearRelationId in class RowImpl
Throws:
SQLException

setObject

protected void setObject(Column col,
                         Object val,
                         int metaType,
                         boolean overrideDefault)
                  throws SQLException
Description copied from class: RowImpl
All set column methods delegate to this one. Set the given object unless this is an insert and the given column is auto-assigned.

Overrides:
setObject in class RowImpl
Throws:
SQLException

allowsUpdate

boolean allowsUpdate(Column col,
                     Object old,
                     Object cur)
Allow the given column value to be updated only if old or current value is a default value or was not set and the column is not a primary key.


isDefaultValue

boolean isDefaultValue(Object val)

generateSQL

protected String generateSQL(DBDictionary dict)
Description copied from class: RowImpl
Generate the SQL for this row; the result of this method is cached.

Overrides:
generateSQL 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

copyInto

public void copyInto(RowImpl row,
                     boolean whereOnly)
Description copied from class: RowImpl
Copy all values from this row into the given one.

Overrides:
copyInto in class RowImpl
whereOnly - if true, only copy where conditions


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