org.apache.commons.lang3
Class AnnotationUtils

java.lang.Object
  extended by org.apache.commons.lang3.AnnotationUtils

public class AnnotationUtils
extends Object

Helper methods for working with Annotation instances.

This class contains various utility methods that make working with annotations simpler.

Annotation instances are always proxy objects; unfortunately dynamic proxies cannot be depended upon to know how to implement certain methods in the same manner as would be done by "natural" Annotations. The methods presented in this class can be used to avoid that possibility. It is of course also possible for dynamic proxies to actually delegate their e.g. Annotation.equals(Object)/Annotation.hashCode()/ Annotation.toString() implementations to AnnotationUtils.

#ThreadSafe#

Since:
3.0
Version:
$Id: AnnotationUtils.java 1083850 2011-03-21 15:59:10Z mbenson $

Constructor Summary
AnnotationUtils()
          AnnotationUtils instances should NOT be constructed in standard programming.
 
Method Summary
static boolean equals(Annotation a1, Annotation a2)
          Checks if two annotations are equal using the criteria for equality presented in the Annotation.equals(Object) API docs.
static int hashCode(Annotation a)
          Generate a hash code for the given annotation using the algorithm presented in the Annotation.hashCode() API docs.
static boolean isValidAnnotationMemberType(Class<?> type)
          Checks if the specified type is permitted as an annotation member.
static String toString(Annotation a)
          Generate a string representation of an Annotation, as suggested by Annotation.toString().
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AnnotationUtils

public AnnotationUtils()

AnnotationUtils instances should NOT be constructed in standard programming. Instead, the class should be used statically.

This constructor is public to permit tools that require a JavaBean instance to operate.

Method Detail

equals

public static boolean equals(Annotation a1,
                             Annotation a2)

Checks if two annotations are equal using the criteria for equality presented in the Annotation.equals(Object) API docs.

Parameters:
a1 - the first Annotation to compare, null returns false unless both are null
a2 - the second Annotation to compare, null returns false unless both are null
Returns:
true if the two annotations are equal or both null

hashCode

public static int hashCode(Annotation a)

Generate a hash code for the given annotation using the algorithm presented in the Annotation.hashCode() API docs.

Parameters:
a - the Annotation for a hash code calculation is desired, not null
Returns:
the calculated hash code
Throws:
RuntimeException - if an Exception is encountered during annotation member access
IllegalStateException - if an annotation method invocation returns null

toString

public static String toString(Annotation a)

Generate a string representation of an Annotation, as suggested by Annotation.toString().

Parameters:
a - the annotation of which a string representation is desired
Returns:
the standard string representation of an annotation, not null

isValidAnnotationMemberType

public static boolean isValidAnnotationMemberType(Class<?> type)

Checks if the specified type is permitted as an annotation member.

The Java language specification only permits certain types to be used in annotations. These include String, Class, primitive types, Annotation, Enum, and single-dimensional arrays of these types.

Parameters:
type - the type to check, null
Returns:
true if the type is a valid type to use in an annotation


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.