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:
 void addFieldForInsert(java.lang.String qualifiedName)
          PUBLIC:
 void addFieldForInsert(java.lang.String qualifiedName, java.lang.Class type)
          PUBLIC:
 void addFieldForInsertReturnOnly(org.eclipse.persistence.internal.helper.DatabaseField field)
          PUBLIC:
 void addFieldForInsertReturnOnly(java.lang.String qualifiedName)
          PUBLIC:
 void addFieldForInsertReturnOnly(java.lang.String qualifiedName, java.lang.Class type)
          PUBLIC:
 void addFieldForUpdate(org.eclipse.persistence.internal.helper.DatabaseField field)
          PUBLIC:
 void addFieldForUpdate(java.lang.String qualifiedName)
          PUBLIC:
 void addFieldForUpdate(java.lang.String qualifiedName, java.lang.Class type)
          PUBLIC:
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.Vector 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 getFieldsToMergeInsert()
          INTERNAL:
 java.util.Collection getFieldsToMergeUpdate()
          INTERNAL:
 boolean hasEqualFieldInfos(ReturningPolicy returningPolicyToCompare)
          INTERNAL: Used for testing only
 boolean hasEqualFieldInfos(java.util.Vector infosToCompare)
          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.Vector 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.Vector getFieldInfos()
INTERNAL:


setFieldInfos

public void setFieldInfos(java.util.Vector infos)
INTERNAL:


hasEqualFieldInfos

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


hasEqualFieldInfos

public boolean hasEqualFieldInfos(java.util.Vector 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 getFieldsToMergeInsert()
INTERNAL:


getFieldsToMergeUpdate

public java.util.Collection 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:


addFieldForInsert

public void addFieldForInsert(java.lang.String qualifiedName,
                              java.lang.Class type)
PUBLIC:


addFieldForInsert

public void addFieldForInsert(org.eclipse.persistence.internal.helper.DatabaseField field)
PUBLIC:


addFieldForInsertReturnOnly

public void addFieldForInsertReturnOnly(java.lang.String qualifiedName)
PUBLIC:


addFieldForInsertReturnOnly

public void addFieldForInsertReturnOnly(java.lang.String qualifiedName,
                                        java.lang.Class type)
PUBLIC:


addFieldForInsertReturnOnly

public void addFieldForInsertReturnOnly(org.eclipse.persistence.internal.helper.DatabaseField field)
PUBLIC:


addFieldForUpdate

public void addFieldForUpdate(java.lang.String qualifiedName)
PUBLIC:


addFieldForUpdate

public void addFieldForUpdate(java.lang.String qualifiedName,
                              java.lang.Class type)
PUBLIC:


addFieldForUpdate

public void addFieldForUpdate(org.eclipse.persistence.internal.helper.DatabaseField field)
PUBLIC:


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.