Package org.jboss.modules.ref

# Class PhantomReference<T,A>

java.lang.Object
java.lang.ref.Reference<T>
java.lang.ref.PhantomReference<T>
org.jboss.modules.ref.PhantomReference<T,A>

Type Parameters:
  `T` - the reference value type
  `A` - the attachment type

All Implemented Interfaces:
  `Reference<T,A>`

public class PhantomReference<T,A> extends PhantomReference<T> implements Reference<T,A>
A reapable phantom reference with an attachment. If a `Reaper` is given, then it will be used to asynchronously clean up the referent.

Author:
  David M. Lloyd
See Also:
  - `PhantomReference`

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.jboss.modules.ref.Reference

`Reference.Type`

## Constructor Summary

Constructors
Constructor
Description
`PhantomReference(T referent, A attachment, ReferenceQueue<? super T> q)`
`PhantomReference(T referent, A attachment, Reaper<T,A> reaper)`

## Method Summary

Modifier and Type
Method
Description
`A`
`getAttachment()`
Get the attachment, if any.
`Reaper<T,A>`
`getReaper()`
`Reference.Type`
`getType()`
Get the type of the reference.
`String`
`toString()`

### Methods inherited from class java.lang.ref.PhantomReference

`get`

### Methods inherited from class java.lang.ref.Reference

`clear, clone, enqueue, isEnqueued, reachabilityFence, refersTo`

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

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.jboss.modules.ref.Reference

`clear, get`

## Constructor Details

### PhantomReference

public PhantomReference(T referent, A attachment, ReferenceQueue<? super T> q)

### PhantomReference

public PhantomReference(T referent, A attachment, Reaper<T,A> reaper)

## Method Details

### getAttachment

public A getAttachment()
Description copied from interface: `Reference`
Get the attachment, if any.

Specified by:
  `getAttachment` in interface `Reference<T,A>`
Returns:
  the attachment

### getType

public Reference.Type getType()
Description copied from interface: `Reference`
Get the type of the reference.

Specified by:
  `getType` in interface `Reference<T,A>`
Returns:
  the type

### getReaper

public Reaper<T,A> getReaper()

### toString

public String toString()

Overrides:
  `toString` in class `Object`