Class ClassData

java.lang.Object
org.openjdk.jol.info.ClassData

public class ClassData extends Object
Holds the class data, without the layout information.
See Also:
  • Field Details

    • instance

      private final WeakReference<Object> instance
    • name

      private final String name
    • fields

      private final List<FieldData> fields
    • classNames

      private final List<String> classNames
    • arrayKlass

      private final String arrayKlass
    • arrayComponentKlass

      private final String arrayComponentKlass
    • length

      private final long length
    • isArray

      private final boolean isArray
    • isContended

      private boolean isContended
    • superClass

      private ClassData superClass
  • Constructor Details

    • ClassData

      public ClassData(String name)
      Constructs the empty ClassData, suited for regular class.
      Parameters:
      name - class name
    • ClassData

      private ClassData(Object instance, String name)
    • ClassData

      public ClassData(String arrayKlass, String componentKlass, int length)
      Constructs the empty ClassData, suited for arrays.
      Parameters:
      arrayKlass - array class, e.g. "int[]"
      componentKlass - , e.g. "int"
      length - array length
    • ClassData

      private ClassData(Object instance, String arrayKlass, String componentKlass, int length)
  • Method Details

    • parseInstance

      public static ClassData parseInstance(Object o)
      Parse the existing instance.
      Parameters:
      o - object instance to parse
      Returns:
      class data instance
    • parseClass

      public static ClassData parseClass(Class klass)
      Parse the existing class.
      Parameters:
      klass - class to parse
      Returns:
      class data instance
    • arrayLength

      private static int arrayLength(Object o)
    • parse

      private static ClassData parse(Object o, Class klass)
    • wrapInstance

      private WeakReference<Object> wrapInstance(Object instance)
    • addSuperClass

      public void addSuperClass(String superClass)
      Add the super-class into the hierarchy.
      Parameters:
      superClass - super class name
    • addSuperClassData

      public void addSuperClassData(Class superClass)
      Add the super-class data of the class.
      Parameters:
      superClass - super class
    • addSuperClassData

      public void addSuperClassData(ClassData superClassData)
      Add the super-class data of the class.
      Parameters:
      superClassData - parsed super class
    • addField

      public void addField(FieldData fieldData)
      Add the field data.
      Parameters:
      fieldData - the data to add
    • fields

      public List<FieldData> fields()
      Get the fields' data, including all the fields in the hierarchy.
      Returns:
      field data
    • ownFields

      public List<FieldData> ownFields()
      Get the fields' of the own fields.
      Returns:
      field data
    • oopsCount

      public int oopsCount()
      Returns the count of the oops in th class
      Returns:
      oops count
    • fieldsFor

      public List<FieldData> fieldsFor(String klass)
      Get the fields' data for the given class.
      Parameters:
      klass - class name
      Returns:
      field data
    • classHierarchy

      public List<String> classHierarchy()
      Get the class names in the hierarchy, starting from the superclasses down to subclasses
      Returns:
      list of class names
    • name

      public String name()
      Answer class name
      Returns:
      string representation of class name
    • isArray

      public boolean isArray()
      Is this class data for the array?
      Returns:
      true, if class data represents the array; false otherwise
    • superClass

      public ClassData superClass()
      Get ClassData of the super-class.
      Returns:
      ClassData
    • isContended

      public boolean isContended()
      Does the class have @Contended annotation?
      Returns:
      true, if class has @Contended annotation; false otherwise
    • arrayClass

      public String arrayClass()
      Answer the array class for this class data.
      Returns:
      array class name, e.g. "int[]".
    • arrayComponentType

      public String arrayComponentType()
      Answer the array component class for this class data.
      Returns:
      array component class name, e.g. "int" for int[] array.
    • arrayLength

      public long arrayLength()
      Answer the array length for this class data.
      Returns:
      array length
    • merge

      public void merge(ClassData superClassData)
      Merge this class data with the super-class class data
      Parameters:
      superClassData - super class data
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • instance

      public Object instance()
      Returns:
      the recorded instance, if available