Class InterfacePolicy

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable
    Direct Known Subclasses:
    TablePerClassPolicy

    public class InterfacePolicy
    extends java.lang.Object
    implements java.io.Serializable, java.lang.Cloneable
    Purpose: Allows for a descriptor's implemented interfaces to be configured. Generally Interface Descriptors are used for 1 of 2 reasons:

    a. Interface descriptors can be used to query across a set of classes that do not share a table.
    b. As a target of a variable one to one mapping.

    See Also:
    Serialized Form
    Since:
    TopLink for Java 2.0
    • Field Detail

      • parentInterfaces

        protected java.util.List<java.lang.Class> parentInterfaces
      • parentInterfaceNames

        protected java.util.List<java.lang.String> parentInterfaceNames
      • parentDescriptors

        protected java.util.List<ClassDescriptor> parentDescriptors
      • childDescriptors

        protected java.util.List<ClassDescriptor> childDescriptors
      • implementorDescriptor

        protected java.lang.Class implementorDescriptor
      • implementorDescriptorClassName

        protected java.lang.String implementorDescriptorClassName
    • Constructor Detail

      • InterfacePolicy

        public InterfacePolicy()
        INTERNAL: Create a new policy. Only descriptor involved in interface should have a policy.
      • InterfacePolicy

        public InterfacePolicy​(ClassDescriptor descriptor)
        INTERNAL: Create a new policy. Only descriptor involved in interface should have a policy.
    • Method Detail

      • addChildDescriptor

        public void addChildDescriptor​(ClassDescriptor childDescriptor)
        INTERNAL: Add child descriptor to the parent descriptor.
      • addParentDescriptor

        public void addParentDescriptor​(ClassDescriptor parentDescriptor)
        INTERNAL: Add parent descriptor.
      • addParentInterface

        public void addParentInterface​(java.lang.Class parentInterface)
        PUBLIC: Add the parent Interface class. This method should be called once for each parent Interface of the Descriptor.
      • addParentInterfaceName

        public void addParentInterfaceName​(java.lang.String parentInterfaceName)
      • hasChild

        public boolean hasChild()
        INTERNAL: Return if there are any child descriptors.
      • getChildDescriptors

        public java.util.List<ClassDescriptor> getChildDescriptors()
        INTERNAL: Return all the child descriptors.
      • getImplementorDescriptor

        public java.lang.Class getImplementorDescriptor()
        INTERNAL: Returns the implementor descriptor class.
      • getImplementorDescriptorClassName

        public java.lang.String getImplementorDescriptorClassName()
        INTERNAL: Returns the implementor descriptor class name.
      • getParentDescriptors

        public java.util.List<ClassDescriptor> getParentDescriptors()
        INTERNAL: Return all the parent descriptors.
      • getParentInterfaces

        public java.util.List<java.lang.Class> getParentInterfaces()
        INTERNAL: Return the list of parent interfaces.
      • getParentInterfaceNames

        public java.util.List<java.lang.String> getParentInterfaceNames()
      • convertClassNamesToClasses

        public void convertClassNamesToClasses​(java.lang.ClassLoader classLoader)
        INTERNAL: Convert all the class-name-based settings in this InheritancePolicy to actual class-based settings. This method is used when converting a project that has been built with class names to a project with classes. It will also convert referenced classes to the versions of the classes from the classLoader.
      • initialize

        public void initialize​(org.eclipse.persistence.internal.sessions.AbstractSession session)
        INTERNAL: Set the vector to store parent interfaces.
      • isInterfaceChildDescriptor

        public boolean isInterfaceChildDescriptor()
        INTERNAL: Check if it is a child descriptor.
      • isTablePerClassPolicy

        public boolean isTablePerClassPolicy()
        INTERNAL:
      • selectAllObjects

        protected java.lang.Object selectAllObjects​(ReadAllQuery query)
        INTERNAL: Select all objects for a concrete descriptor.
      • selectAllObjectsUsingMultipleTableSubclassRead

        public java.lang.Object selectAllObjectsUsingMultipleTableSubclassRead​(ReadAllQuery query)
                                                                        throws DatabaseException
        INTERNAL: Select all objects for an interface descriptor. This is accomplished by selecting for all of the concrete classes and then merging the objects.
        Throws:
        DatabaseException
      • setDescriptor

        public void setDescriptor​(ClassDescriptor descriptor)
        INTERNAL: Set the descriptor.
      • setImplementorDescriptor

        public void setImplementorDescriptor​(java.lang.Class implementorDescriptor)
        INTERNAL: Sets the implementor descriptor class.
      • setImplementorDescriptorClassName

        public void setImplementorDescriptorClassName​(java.lang.String implementorDescriptorClassName)
        INTERNAL: Sets the implementor descriptor class name.
      • setParentInterfaces

        public void setParentInterfaces​(java.util.List<java.lang.Class> parentInterfaces)
        Set the Vector to store parent interfaces.
      • setParentInterfaceNames

        public void setParentInterfaceNames​(java.util.List<java.lang.String> parentInterfaceNames)
      • usesImplementorDescriptor

        public boolean usesImplementorDescriptor()
        INTERNAL: Returns true if this descriptor should be ignored and the implementing descriptor should be used instead.