Top Description Fields Constructors Methods
javax.enterprise.util

public abstract Class AnnotationLiteral<T extends java.lang.annotation.Annotation>

extends Object
implements Annotation, Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable, java.lang.annotation.Annotation
Known Direct Subclasses
javax.enterprise.util.Nonbinding.Literal, javax.faces.component.UIData.FacesDataModelAnnotationLiteral, javax.enterprise.context.ApplicationScoped.Literal, javax.enterprise.context.BeforeDestroyed.Literal, javax.enterprise.context.ConversationScoped.Literal, javax.enterprise.context.Dependent.Literal, javax.enterprise.context.Destroyed.Literal, javax.enterprise.context.Initialized.Literal, javax.enterprise.context.RequestScoped.Literal, javax.enterprise.context.SessionScoped.Literal, javax.enterprise.inject.Alternative.Literal, javax.enterprise.inject.Any.Literal, javax.enterprise.inject.Default.Literal, javax.enterprise.inject.New.Literal, javax.enterprise.inject.Specializes.Literal, javax.enterprise.inject.TransientReference.Literal, javax.enterprise.inject.Typed.Literal, javax.enterprise.inject.Vetoed.Literal, javax.enterprise.inject.literal.InjectLiteral, javax.enterprise.inject.literal.NamedLiteral, javax.enterprise.inject.literal.QualifierLiteral, javax.enterprise.inject.literal.SingletonLiteral
Type Parameters
<T>
the annotation type
Imports
java.io.Serializable, java.lang.annotation.Annotation, java.lang.reflect.InvocationTargetException, .Method, .ParameterizedType, .Type, java.util.Arrays

Supports inline instantiation of annotation type instances.

An instance of an annotation type may be obtained by subclassing AnnotationLiteral.

public abstract class PayByQualifier extends AnnotationLiteral<PayBy> implements PayBy {
}
PayBy payByCheque = new PayByQualifier() {
    public PaymentMethod value() {
        return CHEQUE;
    }
};
Authors
Pete Muir, Gavin King, Marko Luksa
See Also
javax.enterprise.inject.Instance#select(Annotation...), javax.enterprise.event.Event#select(Annotation...)

Field Summary

Modifier and TypeField and Description
private transient Class<T>
private transient Integer
private transient Method[]
private static final long

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public Class<? extends Annotation>
annotationType()

Implements java.lang.annotation.Annotation.annotationType.

Returns the annotation interface of this annotation.
private void
public boolean
equals(Object
the reference object with which to compare.
other
)

Overrides java.lang.Object.equals.

Implements java.lang.annotation.Annotation.equals.

Returns true if the specified object represents an annotation that is logically equivalent to this one.
private static Class<?>
private Method[]
private static Object
getMemberValue(Method member, Annotation instance)

private static <T> Class<T>
getTypeParameter(Class<?> annotationLiteralSuperclass)

public int
hashCode()

Overrides java.lang.Object.hashCode.

Implements java.lang.annotation.Annotation.hashCode.

Returns the hash code of this annotation.
private static Object
invoke(Method method, Object instance)

public String
toString()

Overrides java.lang.Object.toString.

Implements java.lang.annotation.Annotation.toString.

Returns a string representation of this annotation.
Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

annotationTypeback to summary
private transient Class<T> annotationType
cachedHashCodeback to summary
private transient Integer cachedHashCode
membersback to summary
private transient Method[] members
serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

AnnotationLiteralback to summary
protected AnnotationLiteral()

Method Detail

annotationTypeback to summary
public Class<? extends Annotation> annotationType()

Implements java.lang.annotation.Annotation.annotationType.

Doc from java.lang.annotation.Annotation.annotationType.

Returns the annotation interface of this annotation.

Returns:Class<? extends Annotation>

the annotation interface of this annotation

appendInBracesback to summary
private void appendInBraces(StringBuilder buf, String s)
equalsback to summary
public boolean equals(Object other)

Overrides java.lang.Object.equals.

Implements java.lang.annotation.Annotation.equals.

Doc from java.lang.annotation.Annotation.equals.

Returns true if the specified object represents an annotation that is logically equivalent to this one. In other words, returns true if the specified object is an instance of the same annotation interface as this instance, all of whose members are equal to the corresponding member of this annotation, as defined below:

  • Two corresponding primitive typed members whose values are x and y are considered equal if x == y, unless their type is float or double.
  • Two corresponding float members whose values are x and y are considered equal if Float.valueOf(x).equals(Float.valueOf(y)). (Unlike the == operator, NaN is considered equal to itself, and 0.0f unequal to -0.0f.)
  • Two corresponding double members whose values are x and y are considered equal if Double.valueOf(x).equals(Double.valueOf(y)). (Unlike the == operator, NaN is considered equal to itself, and 0.0 unequal to -0.0.)
  • Two corresponding String, Class, enum, or annotation typed members whose values are x and y are considered equal if x.equals(y). (Note that this definition is recursive for annotation typed members.)
  • Two corresponding array typed members x and y are considered equal if Arrays.equals(x, y), for the appropriate overloading of Arrays.equals.
Parameters
other:Object

Doc from java.lang.Object.equals.

the reference object with which to compare.

Returns:boolean

true if the specified object represents an annotation that is logically equivalent to this one, otherwise false

Annotations
@Override
getAnnotationLiteralSubclassback to summary
private static Class<?> getAnnotationLiteralSubclass(Class<?> clazz)
getMembersback to summary
private Method[] getMembers()
getMemberValueback to summary
private static Object getMemberValue(Method member, Annotation instance)
getTypeParameterback to summary
private static <T> Class<T> getTypeParameter(Class<?> annotationLiteralSuperclass)
Annotations
@SuppressWarnings:unchecked
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Implements java.lang.annotation.Annotation.hashCode.

Doc from java.lang.annotation.Annotation.hashCode.

Returns the hash code of this annotation.

The hash code of an annotation is the sum of the hash codes of its members (including those with default values). The hash code of an annotation member is (127 times the hash code of the member-name as computed by String#hashCode()) XOR the hash code of the member-value. The hash code of a member-value depends on its type as defined below:

  • The hash code of a primitive value v is equal to WrapperType.valueOf(v).hashCode(), where WrapperType is the wrapper type corresponding to the primitive type of v (Byte, Character, Double, Float, Integer, Long, Short, or Boolean).
  • The hash code of a string, enum, class, or annotation member-value v is computed as by calling v.hashCode(). (In the case of annotation member values, this is a recursive definition.)
  • The hash code of an array member-value is computed by calling the appropriate overloading of Arrays.hashCode on the value. (There is one overloading for each primitive type, and one for object reference types.)
Returns:int

the hash code of this annotation

Annotations
@Override
invokeback to summary
private static Object invoke(Method method, Object instance)
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Implements java.lang.annotation.Annotation.toString.

Doc from java.lang.annotation.Annotation.toString.

Returns a string representation of this annotation. The details of the representation are implementation-dependent, but the following may be regarded as typical:

  @com.example.Name(first="Duke", middle="of", last="Java")
Returns:String

a string representation of this annotation

Annotations
@Override