org.jboss.modules.ref
Class References

java.lang.Object
  extended by org.jboss.modules.ref.References

public final class References
extends Object

A set of utility methods for reference types.


Method Summary
static
<T,A> Reference<T,A>
create(Reference.Type type, T value, A attachment)
          Create a reference of a given type with the provided value and attachment.
static
<T,A> Reference<T,A>
create(Reference.Type type, T value, A attachment, Reaper<T,A> reaper)
          Create a reference of a given type with the provided value and attachment.
static
<T,A> Reference<T,A>
create(Reference.Type type, T value, A attachment, ReferenceQueue<? super T> referenceQueue)
          Create a reference of a given type with the provided value and attachment.
static
<T,A> Reference<T,A>
getNullReference()
          Get a null reference.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

create

public static <T,A> Reference<T,A> create(Reference.Type type,
                                          T value,
                                          A attachment,
                                          Reaper<T,A> reaper)
Create a reference of a given type with the provided value and attachment. If the reference type is Reference.Type.STRONG or Reference.Type.NULL then the reaper argument is ignored. If the reference type is Reference.Type.NULL then the value and attachment arguments are ignored.

Type Parameters:
T - the reference value type
A - the reference attachment type
Parameters:
type - the reference type
value - the reference value
attachment - the attachment value
reaper - the reaper to use, if any
Returns:
the reference

create

public static <T,A> Reference<T,A> create(Reference.Type type,
                                          T value,
                                          A attachment,
                                          ReferenceQueue<? super T> referenceQueue)
Create a reference of a given type with the provided value and attachment. If the reference type is Reference.Type.STRONG or Reference.Type.NULL then the reference queue argument is ignored. If the reference type is Reference.Type.NULL then the value and attachment arguments are ignored.

Type Parameters:
T - the reference value type
A - the reference attachment type
Parameters:
type - the reference type
value - the reference value
attachment - the attachment value
referenceQueue - the reference queue to use, if any
Returns:
the reference

create

public static <T,A> Reference<T,A> create(Reference.Type type,
                                          T value,
                                          A attachment)
                             throws IllegalArgumentException
Create a reference of a given type with the provided value and attachment. If the reference type is Reference.Type.PHANTOM then this method will throw an IllegalArgumentException because such references are not constructable without a queue or reaper. If the reference type is Reference.Type.NULL then the value and attachment arguments are ignored.

Type Parameters:
T - the reference value type
A - the reference attachment type
Parameters:
type - the reference type
value - the reference value
attachment - the attachment value
Returns:
the reference
Throws:
IllegalArgumentException - if the reference type is Reference.Type.PHANTOM

getNullReference

public static <T,A> Reference<T,A> getNullReference()
Get a null reference. This reference type is always cleared and does not retain an attachment; as such there is only one single instance of it.

Type Parameters:
T - the reference value type
A - the attachment value type
Returns:
the null reference


Copyright © 2011. All Rights Reserved.