Class AbstractObjectImpl

    • Constructor Detail

      • AbstractObjectImpl

        public AbstractObjectImpl​(int objectId,
                                  long address,
                                  ClassImpl classInstance)
        Construct a general object, called from subclass.
        Parameters:
        objectId - the index of the object
        address - the actual address
        classInstance - the type of the object
    • Method Detail

      • getObjectAddress

        public long getObjectAddress()
        Description copied from interface: IObject
        Get address for the snapshot object. This is the address at which the object was stored in memory. Use the address only for visualization purposes and try to use the id wherever possible as the snapshot API is optimized to handle ids and not addresses. Addresses are bigger ( long), have no consecutive order (with gaps), and are not used for hashing.
        Specified by:
        getObjectAddress in interface IObject
        Returns:
        address for the snapshot object
      • getObjectId

        public int getObjectId()
        Description copied from interface: IObject
        Get id for the snapshot object. The id is not the address, but an internally assigned number fitting into an int (this helps reducing the memory footprint of the snapshot considerably - addresses are only used for visualization purposes).
        Specified by:
        getObjectId in interface IObject
        Returns:
        id for the snapshot object
      • setObjectAddress

        public void setObjectAddress​(long address)
        Used to set the address, for example after reconstructing an object from a file.
        Parameters:
        address -
      • setObjectId

        public void setObjectId​(int objectId)
        Set the index for the object
        Parameters:
        objectId - the index into all the indexes for other object data
      • getClazz

        public ClassImpl getClazz()
        Description copied from interface: IObject
        Get class snapshot object this object is an instance of.
        Specified by:
        getClazz in interface IObject
        Returns:
        class snapshot object this object is an instance of
      • getClassAddress

        public long getClassAddress()
        Returns the address of the class which is the type of this object.
        Returns:
        the address
      • getClassId

        public int getClassId()
        Returns the id of the class which is the type of this object.
        Returns:
        the id
      • setClassInstance

        public void setClassInstance​(ClassImpl classInstance)
        Changes the type of the object. Used when constructing a ClassImpl for java.lang.Class.
        Parameters:
        classInstance -
      • setSnapshot

        public void setSnapshot​(ISnapshot dump)
        Set the snapshot for an object. Used once the entire snapshot has been built, or an object has been deserialized.
        Parameters:
        dump - the actual current snapshot
      • getSnapshot

        public ISnapshot getSnapshot()
        Description copied from interface: IObject
        Returns the snapshot from which this object has been read.
        Specified by:
        getSnapshot in interface IObject
        Returns:
        the snapshot from which this object has been read.
      • getUsedHeapSize

        public abstract long getUsedHeapSize()
        Description copied from interface: IObject
        Get used heap size of just this object.
        Specified by:
        getUsedHeapSize in interface IObject
        Returns:
        used heap size of this object
        Since:
        1.0
      • getRetainedHeapSize

        public long getRetainedHeapSize()
        Description copied from interface: IObject
        Get retained heap size of this object.
        Specified by:
        getRetainedHeapSize in interface IObject
        Returns:
        retained heap size of this object (returns 0 if the dominator tree wasn't calculated for the corresponding snapshot)
      • getReferences

        public abstract ArrayLong getReferences()
        Gets the outbound references from this object, as addresses.
        Returns:
        a list of outbound references
      • getClassSpecificName

        public String getClassSpecificName()
        Description copied from interface: IObject
        Get class specific name of this object which depends on the availability of the appropriate name resolver, e.g. for a String the value of the char[].
        Specified by:
        getClassSpecificName in interface IObject
        Returns:
        class specific name of the given snapshot object or null if it can't be resolved
      • getTechnicalName

        public String getTechnicalName()
        Description copied from interface: IObject
        Get technical name of this object which is something like class@address.
        Specified by:
        getTechnicalName in interface IObject
        Returns:
        technical name of this object which is something like class@address
      • resolveValue

        public final Object resolveValue​(String name)
                                  throws SnapshotException
        Description copied from interface: IObject
        Resolves and returns the value of a field specified by a dot notation. If the field is a primitive type, the value the returns the corresponding object wrapper, e.g. a java.lang.Boolean is returned for a field of type boolean. If the field is an object reference, the corresponding IObject is returned.

        The field can be specified using the dot notation, i.e. object references are followed and its fields are evaluated. If any of the object references is null, null is returned.

        Specified by:
        resolveValue in interface IObject
        Parameters:
        name - the field name in dot notation
        Returns:
        the value of the field
        Throws:
        SnapshotException
      • hashCode

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

        @Deprecated
        public static Comparator<AbstractObjectImpl> getComparatorForTechnicalName()
        Deprecated.
        Gets a comparator for sorting objects by technical name - type plus address. Appears to be unused, and currently only returns null, so do not use.
        Returns:
        null
      • getComparatorForClassSpecificName

        @Deprecated
        public static Comparator<AbstractObjectImpl> getComparatorForClassSpecificName()
        Deprecated.
        Gets a comparator for sorting objects by resolved name description. Appears to be unused, and currently only returns null, so do not use.
        Returns:
        null
      • getComparatorForUsedHeapSize

        @Deprecated
        public static Comparator<AbstractObjectImpl> getComparatorForUsedHeapSize()
        Deprecated.
        Gets a comparator for sorting objects by used heap size. Appears to be unused, and currently only returns null, so do not use.
        Returns:
        null