Package org.eclipse.mat.parser.model

# Class ClassLoaderImpl

java.lang.Object
org.eclipse.mat.parser.model.AbstractObjectImpl
org.eclipse.mat.parser.model.InstanceImpl
org.eclipse.mat.parser.model.ClassLoaderImpl

All Implemented Interfaces:
  `Serializable`, `IClassLoader`, `IInstance`, `IObject`

public class ClassLoaderImpl extends InstanceImpl implements IClassLoader
Implementation of a Java object representing a java.lang.ClassLoader object. As well as standard object information it contains information about the class loader and summary details about classes loaded by this class loader.

See Also:
  - Serialized Form
No Extend:

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.eclipse.mat.snapshot.model.IObject

`IObject.Type`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`NO_LABEL`
If the class loader has no name

## Constructor Summary

Constructors
Constructor
Description
`ClassLoaderImpl(int objectId, long address, ClassImpl clazz, List<Field> fields)`
Constructs a class loader object.

## Method Summary

Modifier and Type
Method
Description
`static final List<IClass>`
`doGetDefinedClasses(ISnapshot dump, int classLoaderId)`
Gets the classes defined by a given loader
`static final long`
`doGetRetainedHeapSizeOfObjects(ISnapshot dump, int classLoaderId, boolean calculateIfNotAvailable, boolean calculateMinRetainedSize, IProgressListener listener)`
Calculates the retained size of all classes and instances of the class loaded by a class loader.
`String`
`getClassSpecificName()`
Get class specific name of this object which depends on the availability of the appropriate name resolver, e.g.
`List<IClass>`
`getDefinedClasses()`
Returns the classes defined by this class loader instance.
`long`
`getRetainedHeapSizeOfObjects(boolean calculateIfNotAvailable, boolean calculateMinRetainedSize, IProgressListener listener)`
Returns the retained size of all objects and classes loaded by this class loader.

### Methods inherited from class org.eclipse.mat.parser.model.InstanceImpl

`getField, getFields, getObjectAddress, getObjectId, getOutboundReferences, getReferences, getUsedHeapSize`

### Methods inherited from class org.eclipse.mat.parser.model.AbstractObjectImpl

`equals, getClassAddress, getClassId, getClazz, getComparatorForClassSpecificName, getComparatorForTechnicalName, getComparatorForUsedHeapSize, getDisplayName, getGCRootInfo, getRetainedHeapSize, getSnapshot, getTechnicalName, hashCode, resolveValue, setClassInstance, setObjectAddress, setObjectId, setSnapshot, toString`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.eclipse.mat.snapshot.model.IInstance

`getField, getFields`

### Methods inherited from interface org.eclipse.mat.snapshot.model.IObject

`getClazz, getDisplayName, getGCRootInfo, getObjectAddress, getObjectId, getOutboundReferences, getRetainedHeapSize, getSnapshot, getTechnicalName, getUsedHeapSize, resolveValue`

## Field Details

### NO_LABEL

public static final String NO_LABEL
If the class loader has no name

See Also:
  - Constant Field Values

## Constructor Details

### ClassLoaderImpl

public ClassLoaderImpl(int objectId, long address, ClassImpl clazz, List<Field> fields)
Constructs a class loader object.

Parameters:
  `objectId` - the object id
  `address` - the actual address of the object
  `clazz` - its type
  `fields` - the fields of the object

## Method Details

### 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`
Overrides:
  `getClassSpecificName` in class `AbstractObjectImpl`
Returns:
  class specific name of the given snapshot object or null if it can't be resolved

### getDefinedClasses

public List<IClass> getDefinedClasses() throws SnapshotException
Description copied from interface: `IClassLoader`
Returns the classes defined by this class loader instance.

Specified by:
  `getDefinedClasses` in interface `IClassLoader`
Returns:
  a list of classes defined by this class loader
Throws:
  `SnapshotException` - if there is a problem retrieving the information

### getRetainedHeapSizeOfObjects

public long getRetainedHeapSizeOfObjects(boolean calculateIfNotAvailable, boolean calculateMinRetainedSize, IProgressListener listener) throws SnapshotException
Description copied from interface: `IClassLoader`
Returns the retained size of all objects and classes loaded by this class loader.

Specified by:
  `getRetainedHeapSizeOfObjects` in interface `IClassLoader`
Parameters:
  `calculateIfNotAvailable` - if false only return a cached version of the size
  `calculateMinRetainedSize` - if true then when calculating use an approximation
  `listener` - to indicate progress and errors
Returns:
  the retained size, negative if approximate
Throws:
  `SnapshotException`

### doGetDefinedClasses

public static final List<IClass> doGetDefinedClasses(ISnapshot dump, int classLoaderId) throws SnapshotException
Gets the classes defined by a given loader

Parameters:
  `dump` - the snapshot
  `classLoaderId` - the class loader to look for
Returns:
  a list of classes
Throws:
  `SnapshotException` - problem retrieving the information

### doGetRetainedHeapSizeOfObjects

public static final long doGetRetainedHeapSizeOfObjects(ISnapshot dump, int classLoaderId, boolean calculateIfNotAvailable, boolean calculateMinRetainedSize, IProgressListener listener) throws SnapshotException
Calculates the retained size of all classes and instances of the class loaded by a class loader.

Parameters:
  `dump` - the snapshot
  `classLoaderId` - the class loader if
  `calculateIfNotAvailable` - true if to skip calculations if not already done
  `calculateMinRetainedSize` - true if to make an approximate calculation
  `listener` - to indicate progress, errors and to cancel
Returns:
  the size, negative if approximate
Throws:
  `SnapshotException` - problem retrieving the information