Class CoreInheritancePolicy<ABSTRACT_RECORD extends org.eclipse.persistence.internal.core.sessions.CoreAbstractRecord,ABSTRACT_SESSION extends org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,DESCRIPTOR extends CoreDescriptor,FIELD extends org.eclipse.persistence.internal.core.helper.CoreField>

java.lang.Object
org.eclipse.persistence.core.descriptors.CoreInheritancePolicy<ABSTRACT_RECORD,ABSTRACT_SESSION,DESCRIPTOR,FIELD>
Direct Known Subclasses:
InheritancePolicy

public abstract class CoreInheritancePolicy<ABSTRACT_RECORD extends org.eclipse.persistence.internal.core.sessions.CoreAbstractRecord,ABSTRACT_SESSION extends org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,DESCRIPTOR extends CoreDescriptor,FIELD extends org.eclipse.persistence.internal.core.helper.CoreField> extends Object
INTERNAL A abstraction of inheritance policy capturing behavior common to all persistence types.
  • Constructor Details

    • CoreInheritancePolicy

      public CoreInheritancePolicy()
  • Method Details

    • addClassIndicatorFieldToRow

      public abstract void addClassIndicatorFieldToRow(ABSTRACT_RECORD databaseRow)
      INTERNAL: Add abstract class indicator information to the database row. This is required when building a row for an insert or an update of a concrete child descriptor.
    • addClassNameIndicator

      public abstract void addClassNameIndicator(String childClassName, Object typeValue)
      INTERNAL: Add the class name reference by class name, used by the MW.
    • classFromRow

      public abstract Class classFromRow(ABSTRACT_RECORD record, ABSTRACT_SESSION session)
      INTERNAL: This method is invoked only for the abstract descriptors.
    • getAllChildDescriptors

      public abstract List<DESCRIPTOR> getAllChildDescriptors()
      INTERNAL: Returns all the child descriptors, even descriptors for subclasses of subclasses. Required for bug 3019934.
    • getClassIndicatorField

      public abstract FIELD getClassIndicatorField()
      INTERNAL: Returns field that the class type indicator is store when using inheritance.
    • getClassIndicatorFieldName

      public abstract String getClassIndicatorFieldName()
      PUBLIC: Return the class indicator field name. This is the name of the field in the table that stores what type of object this is.
    • getClassIndicatorMapping

      public abstract Map getClassIndicatorMapping()
      INTERNAL: Return the association of indicators and classes using specified ConversionManager
    • getClassNameIndicatorMapping

      public abstract Map getClassNameIndicatorMapping()
      INTERNAL: Return the mapping from class name to indicator, used by MW.
    • getDescriptor

      public abstract DESCRIPTOR getDescriptor()
      INTERNAL: Returns the descriptor which the policy belongs to.
    • getParentClass

      public abstract Class getParentClass()
      PUBLIC: Return the parent class.
    • getParentDescriptor

      public abstract DESCRIPTOR getParentDescriptor()
      INTERNAL: Return the parent descriptor.
    • hasClassExtractor

      public abstract boolean hasClassExtractor()
      INTERNAL:
    • isRootParentDescriptor

      public abstract boolean isRootParentDescriptor()
      INTERNAL: Return whether or not is root parent descriptor
    • setClassExtractorName

      public abstract void setClassExtractorName(String classExtractorName)
      ADVANCED: Set the class extractor class name. At descriptor initialize time this class will be converted to a Class and set as the ClassExtractor. This method is called from JPA.
      See Also:
    • setClassIndicatorField

      public abstract void setClassIndicatorField(FIELD classIndicatorField)
      ADVANCED: To set the class indicator field. This can be used for advanced field types, such as XML nodes, or to set the field type.
    • setClassIndicatorMapping

      public abstract void setClassIndicatorMapping(Map classIndicatorMapping)
      PUBLIC: Set the association of indicators and classes. This may be desired to be used by clients in strange inheritance models.
    • setDescriptor

      public abstract void setDescriptor(DESCRIPTOR descriptor)
      INTERNAL: Set the descriptor.
    • setParentClassName

      public abstract void setParentClassName(String parentClassName)
      INTERNAL: Set the parent class name, used by MW to avoid referencing the real class for deployment XML generation.
    • setShouldReadSubclasses

      public abstract void setShouldReadSubclasses(Boolean shouldReadSubclasses)
      INTERNAL: Set the descriptor to read instance of itself and its subclasses when queried. This is used with inheritance to configure the result of queries. By default this is true for root inheritance descriptors, and false for all others.