Class 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

      Nested Classes 
      Modifier and Type Class Description
      static class  ReturningPolicy.Info
      INTERNAL:
    • Constructor Summary

      Constructors 
      Constructor Description
      ReturningPolicy()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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 addFieldForInsert​(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 addFieldForInsertReturnOnly​(org.eclipse.persistence.internal.helper.DatabaseField field)
      PUBLIC: Define that the field will be returned from an insert 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.
      void addFieldForUpdate​(org.eclipse.persistence.internal.helper.DatabaseField field)
      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:
      • 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.
      • 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.