Class Annotations


  • public class Annotations
    extends java.lang.Object
    Annotation utilities.
    • Constructor Summary

      Constructors 
      Constructor Description
      Annotations()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static boolean annotationEquals​(java.lang.Class<? extends java.lang.annotation.Annotation> type, java.util.Map<java.lang.String,​java.lang.Object> members, java.lang.Object other)
      Implements Annotation.equals(java.lang.Object).
      private static int annotationHashCode​(java.lang.Class<? extends java.lang.annotation.Annotation> type, java.util.Map<java.lang.String,​java.lang.Object> members)
      Implements Annotation.hashCode().
      private static java.lang.String annotationToString​(java.lang.Class<? extends java.lang.annotation.Annotation> type, java.util.Map<java.lang.String,​java.lang.Object> members)
      Implements Annotation.toString().
      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.
      (package private) static boolean containsComponentAnnotation​(java.lang.annotation.Annotation[] annotations)  
      private static boolean determineWhetherToQuote()  
      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.
      private static <T extends java.lang.annotation.Annotation>
      T
      generateAnnotationImpl​(java.lang.Class<T> annotationType)  
      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.
      private static com.google.common.collect.ImmutableMap<java.lang.String,​java.lang.Object> resolveMembers​(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)  
      • Methods inherited from class java.lang.Object

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

      • cache

        private static final com.google.common.cache.LoadingCache<java.lang.Class<? extends java.lang.annotation.Annotation>,​java.lang.annotation.Annotation> cache
      • JOINER

        private static final com.google.common.base.Joiner.MapJoiner JOINER
      • QUOTE_MEMBER_VALUES

        private static final boolean QUOTE_MEMBER_VALUES
    • 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.
      • generateAnnotationImpl

        private static <T extends java.lang.annotation.Annotation> T generateAnnotationImpl​(java.lang.Class<T> annotationType)
      • resolveMembers

        private static com.google.common.collect.ImmutableMap<java.lang.String,​java.lang.Object> resolveMembers​(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
      • annotationEquals

        private static boolean annotationEquals​(java.lang.Class<? extends java.lang.annotation.Annotation> type,
                                                java.util.Map<java.lang.String,​java.lang.Object> members,
                                                java.lang.Object other)
                                         throws java.lang.Exception
        Implements Annotation.equals(java.lang.Object).
        Throws:
        java.lang.Exception
      • annotationHashCode

        private static int annotationHashCode​(java.lang.Class<? extends java.lang.annotation.Annotation> type,
                                              java.util.Map<java.lang.String,​java.lang.Object> members)
                                       throws java.lang.Exception
        Implements Annotation.hashCode().
        Throws:
        java.lang.Exception
      • annotationToString

        private static java.lang.String annotationToString​(java.lang.Class<? extends java.lang.annotation.Annotation> type,
                                                           java.util.Map<java.lang.String,​java.lang.Object> members)
                                                    throws java.lang.Exception
        Implements Annotation.toString().
        Throws:
        java.lang.Exception
      • 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.
      • containsComponentAnnotation

        static boolean containsComponentAnnotation​(java.lang.annotation.Annotation[] annotations)
      • 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.
      • determineWhetherToQuote

        private static boolean determineWhetherToQuote()
      • 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.