org.eclipse.persistence.descriptors
Class ReturningPolicy

java.lang.Object
  extended by org.eclipse.persistence.descriptors.ReturningPolicy
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class ReturningPolicy
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable

Purpose: Allows for INSERT or UPDATE operations to return values back into the object being written. This allows for table default values, trigger or stored procedures computed values to be set back into the object. This can be used with generated SQL on the Oracle platform using the RETURNING clause, or through stored procedures on other platforms.

Since:
TopLink 10.1.3
See Also:
Serialized Form

Nested Class Summary
static class ReturningPolicy.Info
          INTERNAL:
 
Constructor Summary
ReturningPolicy()
           
 
Method Summary
 void addFieldForInsert(org.eclipse.persistence.internal.helper.DatabaseField field)
          PUBLIC: Define that the field will be returned from an insert operation.
 void addFieldForInsert(java.lang.String qualifiedName)
          PUBLIC: Define that the field will be returned from an insert operation.
 void addFieldForInsert(java.lang.String qualifiedName, java.lang.Class type)
          PUBLIC: Define that the field will be returned from an insert operation.
 void addFieldForInsertReturnOnly(org.eclipse.persistence.internal.helper.DatabaseField field)
          PUBLIC: Define that the field will be returned from an insert operation.
 void addFieldForInsertReturnOnly(java.lang.String qualifiedName)
          PUBLIC: Define that the field will be returned from an insert operation.
 void addFieldForInsertReturnOnly(java.lang.String qualifiedName, java.lang.Class type)
          PUBLIC: Define that the field will be returned from an insert operation.
 void addFieldForUpdate(org.eclipse.persistence.internal.helper.DatabaseField field)
          PUBLIC: Define that the field will be returned from an update operation.
 void addFieldForUpdate(java.lang.String qualifiedName)
          PUBLIC: Define that the field will be returned from an update operation.
 void addFieldForUpdate(java.lang.String qualifiedName, java.lang.Class type)
          PUBLIC: Define that the field will be returned from an update operation.
static boolean areCollectionsEqualAsSets(java.util.Collection col1, java.util.Collection col2)
          INTERNAL: Compares two Collections as sets (ignoring the order of the elements).
 java.lang.Object clone()
          INTERNAL: Normally cloned when not yet initialized.
 ClassDescriptor getDescriptor()
          PUBLIC: Return the owner of the policy.
 org.eclipse.persistence.internal.helper.DatabaseField getField(org.eclipse.persistence.internal.helper.DatabaseField field)
          INTERNAL: Returns an equal field held by ReturningPolicy, or null.
 java.util.List<ReturningPolicy.Info> getFieldInfos()
          INTERNAL:
 java.util.Vector getFieldsToGenerateInsert(org.eclipse.persistence.internal.helper.DatabaseTable table)
          INTERNAL:
 java.util.Vector getFieldsToGenerateUpdate(org.eclipse.persistence.internal.helper.DatabaseTable table)
          INTERNAL:
 java.util.Collection<org.eclipse.persistence.internal.helper.DatabaseField> getFieldsToMergeInsert()
          INTERNAL:
 java.util.Collection<org.eclipse.persistence.internal.helper.DatabaseField> getFieldsToMergeUpdate()
          INTERNAL:
 boolean hasEqualFieldInfos(java.util.List<ReturningPolicy.Info> infosToCompare)
          INTERNAL: Used for testing only
 boolean hasEqualFieldInfos(ReturningPolicy returningPolicyToCompare)
          INTERNAL: Used for testing only
 boolean hasEqualMains(ReturningPolicy policy)
          INTERNAL: Both ReturningPolicies should be initialized
 void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL:
 boolean isUsedToSetPrimaryKey()
          PUBLIC:
 void setDescriptor(ClassDescriptor descriptor)
          INTERNAL:
 void setFieldInfos(java.util.List<ReturningPolicy.Info> infos)
          INTERNAL:
 void trimModifyRowForInsert(org.eclipse.persistence.internal.sessions.AbstractRecord modifyRow)
          INTERNAL:
 void validationAfterDescriptorInitialization(org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL:
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReturningPolicy

public ReturningPolicy()
Method Detail

getDescriptor

public ClassDescriptor getDescriptor()
PUBLIC: Return the owner of the policy.


getFieldsToGenerateInsert

public java.util.Vector getFieldsToGenerateInsert(org.eclipse.persistence.internal.helper.DatabaseTable table)
INTERNAL:


getFieldsToGenerateUpdate

public java.util.Vector getFieldsToGenerateUpdate(org.eclipse.persistence.internal.helper.DatabaseTable table)
INTERNAL:


getFieldInfos

public java.util.List<ReturningPolicy.Info> getFieldInfos()
INTERNAL:


setFieldInfos

public void setFieldInfos(java.util.List<ReturningPolicy.Info> infos)
INTERNAL:


hasEqualFieldInfos

public boolean hasEqualFieldInfos(ReturningPolicy returningPolicyToCompare)
INTERNAL: Used for testing only


hasEqualFieldInfos

public boolean hasEqualFieldInfos(java.util.List<ReturningPolicy.Info> infosToCompare)
INTERNAL: Used for testing only


areCollectionsEqualAsSets

public static boolean areCollectionsEqualAsSets(java.util.Collection col1,
                                                java.util.Collection col2)
INTERNAL: Compares two Collections as sets (ignoring the order of the elements). Note that the passed Collections are cloned. Used for testing only.


getFieldsToMergeInsert

public java.util.Collection<org.eclipse.persistence.internal.helper.DatabaseField> getFieldsToMergeInsert()
INTERNAL:


getFieldsToMergeUpdate

public java.util.Collection<org.eclipse.persistence.internal.helper.DatabaseField> getFieldsToMergeUpdate()
INTERNAL:


clone

public java.lang.Object clone()
INTERNAL: Normally cloned when not yet initialized. If initialized ReturningPolicy cloned then the clone should be re-initialized.

Overrides:
clone in class java.lang.Object

setDescriptor

public void setDescriptor(ClassDescriptor descriptor)
INTERNAL:


addFieldForInsert

public void addFieldForInsert(java.lang.String qualifiedName)
PUBLIC: Define that the field will be returned from an insert operation.


addFieldForInsert

public void addFieldForInsert(java.lang.String qualifiedName,
                              java.lang.Class type)
PUBLIC: Define that the field will be returned from an insert operation. The type may be required to bind the output parameter if not known by the mapping.


addFieldForInsert

public void addFieldForInsert(org.eclipse.persistence.internal.helper.DatabaseField field)
PUBLIC: Define that the field will be returned from an insert operation.


addFieldForInsertReturnOnly

public void addFieldForInsertReturnOnly(java.lang.String qualifiedName)
PUBLIC: Define that the field will be returned from an insert operation. A field added with addFieldForInsertReturnOnly method is excluded from INSERT clause during SQL generation.


addFieldForInsertReturnOnly

public void addFieldForInsertReturnOnly(java.lang.String qualifiedName,
                                        java.lang.Class type)
PUBLIC: Define that the field will be returned from an insert operation. A field added with addFieldForInsertReturnOnly method is excluded from INSERT clause during SQL generation. The type may be required to bind the output parameter if not known by the mapping.


addFieldForInsertReturnOnly

public void addFieldForInsertReturnOnly(org.eclipse.persistence.internal.helper.DatabaseField field)
PUBLIC: Define that the field will be returned from an insert operation. A field added with addFieldForInsertReturnOnly method is excluded from INSERT clause during SQL generation.


addFieldForUpdate

public void addFieldForUpdate(java.lang.String qualifiedName)
PUBLIC: Define that the field will be returned from an update operation.


addFieldForUpdate

public void addFieldForUpdate(java.lang.String qualifiedName,
                              java.lang.Class type)
PUBLIC: Define that the field will be returned from an update operation. The type may be required to bind the output parameter if not known by the mapping.


addFieldForUpdate

public void addFieldForUpdate(org.eclipse.persistence.internal.helper.DatabaseField field)
PUBLIC: Define that the field will be returned from an update operation.


initialize

public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:


hasEqualMains

public boolean hasEqualMains(ReturningPolicy policy)
INTERNAL: Both ReturningPolicies should be initialized


trimModifyRowForInsert

public void trimModifyRowForInsert(org.eclipse.persistence.internal.sessions.AbstractRecord modifyRow)
INTERNAL:


isUsedToSetPrimaryKey

public boolean isUsedToSetPrimaryKey()
PUBLIC:


validationAfterDescriptorInitialization

public void validationAfterDescriptorInitialization(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:


getField

public org.eclipse.persistence.internal.helper.DatabaseField getField(org.eclipse.persistence.internal.helper.DatabaseField field)
INTERNAL: Returns an equal field held by ReturningPolicy, or null.



EclipseLink 2.2.1, "build v20110722-r9776" API Reference