Class 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 of javax.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 class javax.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 on type.
      static java.lang.annotation.Annotation findBindingAnnotation​(Errors errors, java.lang.reflect.Member member, java.lang.annotation.Annotation[] annotations)
      Returns the binding annotation on member, 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 on type, or null if none is specified.
      static <T extends java.lang.annotation.Annotation>
      T
      generateAnnotation​(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)
      Returns true 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)
      Returns value, quoted if annotation implementations quote their member values.
      static java.lang.String nameOf​(Key<?> key)
      Returns the name the binding should use.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Annotations

        public Annotations()
    • Method Detail

      • isMarker

        public static boolean isMarker​(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
        Returns true 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 on type, 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)
        Returns value, quoted if annotation implementations quote their member values. In Java 9, annotations quote their string members.
      • 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 on type. 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 on member, 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 of javax.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 class javax.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.