Package org.eclipse.mat.parser.model

## Class AbstractArrayImpl

- java.lang.Object
- - org.eclipse.mat.parser.model.AbstractObjectImpl
  - - org.eclipse.mat.parser.model.AbstractArrayImpl

All Implemented Interfaces:
  `java.io.Serializable`, `IArray`, `IObject`

Direct Known Subclasses:
  `ObjectArrayImpl`, `PrimitiveArrayImpl`

    public abstract class AbstractArrayImpl
    extends AbstractObjectImpl
    implements IArray

The general implementation of any Java array object (primitive array, object array).

See Also:
  Serialized Form
No Extend:

### Nested Class Summary

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

`IObject.Type`

### Constructor Summary

Constructors
`AbstractArrayImpl​(int objectId, long address, ClassImpl classInstance, int length)` Construct a general object, called from subclass.

### Method Summary

All Methods Instance Methods Concrete Methods
`java.lang.Object` `getInfo()` Gets the cached information about the contents of the array.
`int` `getLength()` Returns the length of the array in elements.
`long` `getObjectAddress()` Get address for the snapshot object.
`int` `getObjectId()` Get id for the snapshot object.
`java.lang.String` `getTechnicalName()` Get technical name of this object which is something like class@address.
`void` `setInfo​(java.lang.Object content)` Sets the cached information about the contents of the array.
`void` `setLength​(int i)` Sets the length in elements.

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

`equals, getClassAddress, getClassId, getClassSpecificName, getClazz, getComparatorForClassSpecificName, getComparatorForTechnicalName, getComparatorForUsedHeapSize, getDisplayName, getGCRootInfo, getReferences, getRetainedHeapSize, getSnapshot, getUsedHeapSize, 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.IObject

`getClassSpecificName, getClazz, getDisplayName, getGCRootInfo, getOutboundReferences, getRetainedHeapSize, getSnapshot, getUsedHeapSize, resolveValue`

### Constructor Detail

#### AbstractArrayImpl

    public AbstractArrayImpl​(int objectId,
                             long address,
                             ClassImpl classInstance,
                             int length)

Construct a general object, called from subclass.

Parameters:
  `objectId` - the index of the object
  `address` - the actual address
  `classInstance` - the type of the object
  `length` - the length of the array in elements

### Method Detail

#### getInfo

    public java.lang.Object getInfo()

Gets the cached information about the contents of the array.

Returns:
  the cached data (parser specific).

#### setInfo

    public void setInfo​(java.lang.Object content)

Sets the cached information about the contents of the array.

Parameters:
  `content` - from the `IObjectReader`

#### getLength

    public int getLength()

Description copied from interface: `IArray`
Returns the length of the array in elements.

Specified by:
  `getLength` in interface `IArray`
Returns:
  the length

#### setLength

    public void setLength​(int i)

Sets the length in elements.

Parameters:
  `i` - the new length

#### getTechnicalName

    public java.lang.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`
Overrides:
  `getTechnicalName` in class `AbstractObjectImpl`
Returns:
  technical name of this object which is something like class@address

#### 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`
Overrides:
  `getObjectId` in class `AbstractObjectImpl`
Returns:
  id for the snapshot object

#### 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`
Overrides:
  `getObjectAddress` in class `AbstractObjectImpl`
Returns:
  address for the snapshot object