java.lang.Object
org.eclipse.persistence.internal.jpa.weaving.ClassDetails

public class ClassDetails extends Object
Internal helper class that holds details of a persistent class. Used by PersistenceWeaver
  • Field Details

    • describedClass

      protected MetadataClass describedClass
    • className

      protected String className
      Name of this class.
    • superClassName

      protected String superClassName
      Superclass' name.
    • superClassDetails

      protected ClassDetails superClassDetails
      Superclass' ClassDetails - only populated if superclass is also persistent.
    • shouldWeaveValueHolders

      protected boolean shouldWeaveValueHolders
      Define if lazy value holders should be weaved in this class.
    • shouldWeaveChangeTracking

      protected boolean shouldWeaveChangeTracking
      Define if change tracking should be weaved in this class.
    • shouldWeaveFetchGroups

      protected boolean shouldWeaveFetchGroups
      Define if fetch groups should be weaved in this class.
    • shouldWeaveInternal

      protected boolean shouldWeaveInternal
      Define if internal optimizations should be weaved in this class.
    • shouldWeaveRest

      protected boolean shouldWeaveRest
      Define if this class should be weaved for our REST support
    • attributesMap

      protected Map<String,AttributeDetails> attributesMap
      Map of this class' persistent attributes where the key is the Attribute name.
    • getterMethodToAttributeDetails

      protected Map<String,AttributeDetails> getterMethodToAttributeDetails
      Map of this class' persistent get methods where the key is the getMethod name.
    • setterMethodToAttributeDetails

      protected Map<String,AttributeDetails> setterMethodToAttributeDetails
      Map of this class' persistent set methods where the key is the setMethod name.
    • isMappedSuperClass

      protected boolean isMappedSuperClass
      Determine if a JPA "mapped superclass".
    • isEmbedable

      protected boolean isEmbedable
      Determine if a JPA "embedable" (aggregate).
    • usesAttributeAccess

      protected boolean usesAttributeAccess
      Determine if class uses attribute access, lazily initialized.
    • implementsCloneMethod

      protected boolean implementsCloneMethod
      Determine if this class specifically implements a clone method
    • shouldWeaveConstructorOptimization

      protected boolean shouldWeaveConstructorOptimization
      Determine if a new constructor can be used to bypass setting variables to default values.
    • virtualAccessMethods

      protected List<VirtualAttributeMethodInfo> virtualAccessMethods
      The methods that are used by virtual attributes as getter methods. These will be used by our weaver to properly weave those methods This list should be kept in sync with virtualSetMethodNames. Every time a value is added, one should be added to virtualSetMethodNames so that at a particular index, the virtualGetMethodName and the virtualSetMethodCoorespond
  • Constructor Details

    • ClassDetails

      public ClassDetails()
  • Method Details

    • getDescribedClass

      public MetadataClass getDescribedClass()
    • getClassName

      public String getClassName()
    • setDescribedClass

      public void setDescribedClass(MetadataClass describedClass)
    • setClassName

      public void setClassName(String className)
    • getSuperClassName

      public String getSuperClassName()
    • setSuperClassName

      public void setSuperClassName(String superClassName)
    • getSuperClassDetails

      public ClassDetails getSuperClassDetails()
    • setSuperClassDetails

      public void setSuperClassDetails(ClassDetails superClassDetails)
    • shouldWeaveValueHolders

      public boolean shouldWeaveValueHolders()
    • setShouldWeaveValueHolders

      public void setShouldWeaveValueHolders(boolean shouldWeaveValueHolders)
    • shouldWeaveChangeTracking

      public boolean shouldWeaveChangeTracking()
    • setShouldWeaveChangeTracking

      public void setShouldWeaveChangeTracking(boolean shouldWeaveChangeTracking)
    • setShouldWeaveConstructorOptimization

      public void setShouldWeaveConstructorOptimization(boolean shouldWeaveConstructorOptimization)
    • shouldWeaveFetchGroups

      public boolean shouldWeaveFetchGroups()
    • setShouldWeaveFetchGroups

      public void setShouldWeaveFetchGroups(boolean shouldWeaveFetchGroups)
    • shouldWeaveInternal

      public boolean shouldWeaveInternal()
    • setShouldWeaveInternal

      public void setShouldWeaveInternal(boolean shouldWeaveInternal)
    • shouldWeaveREST

      public boolean shouldWeaveREST()
    • setShouldWeaveREST

      public void setShouldWeaveREST(boolean shouldWeaveRest)
    • getAttributesMap

      public Map<String,AttributeDetails> getAttributesMap()
    • getGetterMethodToAttributeDetails

      public Map<String,AttributeDetails> getGetterMethodToAttributeDetails()
    • getSetterMethodToAttributeDetails

      public Map<String,AttributeDetails> getSetterMethodToAttributeDetails()
    • setAttributesMap

      public void setAttributesMap(Map<String,AttributeDetails> attributesMap)
    • setGetterMethodToAttributeDetails

      public void setGetterMethodToAttributeDetails(Map<String,AttributeDetails> map)
    • getImplementsCloneMethod

      public boolean getImplementsCloneMethod()
    • getInfoForVirtualGetMethod

      public VirtualAttributeMethodInfo getInfoForVirtualGetMethod(String getMethodName)
      INTERNAL: Search the list of virtualAccessMethods for a VirtualAttributeMethodInfo with the given getMethodName. Return the VirtualAttributeMethodInfo if there is one, else return null
    • getInfoForVirtualSetMethod

      public VirtualAttributeMethodInfo getInfoForVirtualSetMethod(String setMethodName)
      INTERNAL: Search the list of virtualAccessMethods for a VirtualAttributeMethodInfo with the given setMethodName. Return the VirtualAttributeMethodInfo if there is one, else return null
    • setImplementsCloneMethod

      public void setImplementsCloneMethod(boolean implementsCloneMethod)
    • getNameOfSuperclassImplementingCloneMethod

      public String getNameOfSuperclassImplementingCloneMethod()
      Return the name of the most direct superclass that has a direct implementation of a clone method. If there is not one, return null
    • getVirtualAccessMethods

      public List<VirtualAttributeMethodInfo> getVirtualAccessMethods()
    • setVirtualAccessMethods

      public void setVirtualAccessMethods(List<VirtualAttributeMethodInfo> virtualAccessMethods)
    • isMappedSuperClass

      public boolean isMappedSuperClass()
    • setIsMappedSuperClass

      public void setIsMappedSuperClass(boolean isMappedSuperClass)
    • isEmbedable

      public boolean isEmbedable()
    • setIsEmbedable

      public void setIsEmbedable(boolean isEmbedable)
    • setSetterMethodToAttributeDetails

      public void setSetterMethodToAttributeDetails(Map map)
    • usesAttributeAccess

      public boolean usesAttributeAccess()
      If one attribute of this class uses attribute access, by the JPA specification, all attributes must use attribute access This method assumes it is called when this class details is completely initialized.
    • useAttributeAccess

      public void useAttributeAccess()
    • getAttributeDetailsFromClassOrSuperClass

      public AttributeDetails getAttributeDetailsFromClassOrSuperClass(String attributeName)
    • doesSuperclassWeaveChangeTracking

      public boolean doesSuperclassWeaveChangeTracking()
    • canWeaveChangeTracking

      public boolean canWeaveChangeTracking()
    • canWeaveConstructorOptimization

      public boolean canWeaveConstructorOptimization()
      Returns true if Used with field access, and is set to false if transient variables are discovered
    • isInMetadataHierarchy

      public boolean isInMetadataHierarchy(String className)
      Returns true if the given class name represents this class, or any superclass that can be navigated to by recursively navigating up the structure of superClassDetails stored in this class. Assume java.lang.Object is in the hierarchy
    • isInSuperclassHierarchy

      public boolean isInSuperclassHierarchy(String className)
      Returns true if the given class name represents this class, or any superclass that can be navigated to by recursively navigating up the structure of superClassDetails stored in this class. Assume java.lang.Object is in the hierarchy