Package com.google.inject.internal
Class Annotations
- java.lang.Object
-
- com.google.inject.internal.Annotations
-
public class Annotations extends java.lang.Object
Annotation utilities.- Author:
- crazybob@google.com (Bob Lee)
-
-
Constructor Summary
Constructors Constructor Description Annotations()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.annotation.Annotation
canonicalizeIfNamed(java.lang.annotation.Annotation annotation)
If the annotation is an instance ofjavax.inject.Named
, canonicalizes to com.google.guice.name.Named.static java.lang.Class<? extends java.lang.annotation.Annotation>
canonicalizeIfNamed(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
If the annotation is the classjavax.inject.Named
, canonicalizes to com.google.guice.name.Named.static void
checkForMisplacedScopeAnnotations(java.lang.Class<?> type, java.lang.Object source, Errors errors)
Adds an error if there is a misplaced annotations ontype
.static java.lang.annotation.Annotation
findBindingAnnotation(Errors errors, java.lang.reflect.Member member, java.lang.annotation.Annotation[] annotations)
Returns the binding annotation onmember
, or null if there isn't one.static java.lang.Class<? extends java.lang.annotation.Annotation>
findScopeAnnotation(Errors errors, java.lang.annotation.Annotation[] annotations)
Returns the scoping annotation, or null if there isn't one.static java.lang.Class<? extends java.lang.annotation.Annotation>
findScopeAnnotation(Errors errors, java.lang.Class<?> implementation)
Returns the scope annotation ontype
, or null if none is specified.static <T extends java.lang.annotation.Annotation>
TgenerateAnnotation(java.lang.Class<T> annotationType)
Generates an Annotation for the annotation class.static Key<?>
getKey(TypeLiteral<?> type, java.lang.reflect.Member member, java.lang.annotation.Annotation[] annotations, Errors errors)
Gets a key for the given type, member and annotations.static boolean
isAllDefaultMethods(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
static boolean
isBindingAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Returns true if annotations of the specified type are binding annotations.static boolean
isMarker(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Returnstrue
if the given annotation type has no attributes.static boolean
isRetainedAtRuntime(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Returns true if the given annotation is retained at runtime.static boolean
isScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
static java.lang.String
memberValueString(java.lang.String value)
Returnsvalue
, quoted if annotation implementations quote their member values.static java.lang.String
memberValueString(java.lang.String memberName, java.lang.Object value)
Returns string representation of the annotation memeber.static java.lang.String
nameOf(Key<?> key)
Returns the name the binding should use.
-
-
-
Method Detail
-
isMarker
public static boolean isMarker(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Returnstrue
if the given annotation type has no attributes.
-
isAllDefaultMethods
public static boolean isAllDefaultMethods(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
-
generateAnnotation
public static <T extends java.lang.annotation.Annotation> T generateAnnotation(java.lang.Class<T> annotationType)
Generates an Annotation for the annotation class. Requires that the annotation is all optionals.
-
isRetainedAtRuntime
public static boolean isRetainedAtRuntime(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Returns true if the given annotation is retained at runtime.
-
findScopeAnnotation
public static java.lang.Class<? extends java.lang.annotation.Annotation> findScopeAnnotation(Errors errors, java.lang.Class<?> implementation)
Returns the scope annotation ontype
, or null if none is specified.
-
findScopeAnnotation
public static java.lang.Class<? extends java.lang.annotation.Annotation> findScopeAnnotation(Errors errors, java.lang.annotation.Annotation[] annotations)
Returns the scoping annotation, or null if there isn't one.
-
memberValueString
public static java.lang.String memberValueString(java.lang.String value)
Returnsvalue
, quoted if annotation implementations quote their member values. In Java 9, annotations quote their string members.
-
memberValueString
public static java.lang.String memberValueString(java.lang.String memberName, java.lang.Object value)
Returns string representation of the annotation memeber.The value of the member is prefixed with `memberName=` unless the runtime omits the member name. The value of the member is quoted if annotation implementations quote their member values and the value type is String.
In Java 9, annotations quote their string members and in Java 15, the member name is omitted.
-
isScopeAnnotation
public static boolean isScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
-
checkForMisplacedScopeAnnotations
public static void checkForMisplacedScopeAnnotations(java.lang.Class<?> type, java.lang.Object source, Errors errors)
Adds an error if there is a misplaced annotations ontype
. Scoping annotations are not allowed on abstract classes or interfaces.
-
getKey
public static Key<?> getKey(TypeLiteral<?> type, java.lang.reflect.Member member, java.lang.annotation.Annotation[] annotations, Errors errors) throws ErrorsException
Gets a key for the given type, member and annotations.- Throws:
ErrorsException
-
findBindingAnnotation
public static java.lang.annotation.Annotation findBindingAnnotation(Errors errors, java.lang.reflect.Member member, java.lang.annotation.Annotation[] annotations)
Returns the binding annotation onmember
, or null if there isn't one.
-
isBindingAnnotation
public static boolean isBindingAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Returns true if annotations of the specified type are binding annotations.
-
canonicalizeIfNamed
public static java.lang.annotation.Annotation canonicalizeIfNamed(java.lang.annotation.Annotation annotation)
If the annotation is an instance ofjavax.inject.Named
, canonicalizes to com.google.guice.name.Named. Returns the given annotation otherwise.
-
canonicalizeIfNamed
public static java.lang.Class<? extends java.lang.annotation.Annotation> canonicalizeIfNamed(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
If the annotation is the classjavax.inject.Named
, canonicalizes to com.google.guice.name.Named. Returns the given annotation class otherwise.
-
nameOf
public static java.lang.String nameOf(Key<?> key)
Returns the name the binding should use. This is based on the annotation. If the annotation has an instance and is not a marker annotation, we ask the annotation for its toString. If it was a marker annotation or just an annotation type, we use the annotation's name. Otherwise, the name is the empty string.
-
-