Class Errors

  • All Implemented Interfaces:
    java.io.Serializable

    public final class Errors
    extends java.lang.Object
    implements java.io.Serializable
    A collection of error messages. If this type is passed as a method parameter, the method is considered to have executed successfully only if new errors were not added to this collection.

    Errors can be chained to provide additional context. To add context, call withSource(java.lang.Object) to create a new Errors instance that contains additional context. All messages added to the returned instance will contain full context.

    To avoid messages with redundant context, withSource(java.lang.Object) should be added sparingly. A good rule of thumb is to assume a method's caller has already specified enough context to identify that method. When calling a method that's defined in a different context, call that method with an errors object that includes its context.

    Author:
    jessewilson@google.com (Jesse Wilson)
    See Also:
    Serialized Form
    • Constructor Detail

      • Errors

        public Errors()
      • Errors

        public Errors​(java.lang.Object source)
    • Method Detail

      • withSource

        public Errors withSource​(java.lang.Object source)
        Returns an instance that uses source as a reference point for newly added errors.
      • missingImplementation

        public Errors missingImplementation​(Key<?> key)
        We use a fairly generic error message here. The motivation is to share the same message for both bind time errors:
        Guice.createInjector(new AbstractModule() {
           public void configure() {
             bind(Runnable.class);
           }
         }
        ...and at provide-time errors:
        Guice.createInjector().getInstance(Runnable.class);
        Otherwise we need to know who's calling when resolving a just-in-time binding, which makes things unnecessarily complex.
      • jitDisabled

        public Errors jitDisabled​(Key<?> key)
      • jitDisabledInParent

        public Errors jitDisabledInParent​(Key<?> key)
      • converterReturnedNull

        public Errors converterReturnedNull​(java.lang.String stringValue,
                                            java.lang.Object source,
                                            TypeLiteral<?> type,
                                            TypeConverterBinding typeConverterBinding)
      • conversionTypeError

        public Errors conversionTypeError​(java.lang.String stringValue,
                                          java.lang.Object source,
                                          TypeLiteral<?> type,
                                          TypeConverterBinding typeConverterBinding,
                                          java.lang.Object converted)
      • conversionError

        public Errors conversionError​(java.lang.String stringValue,
                                      java.lang.Object source,
                                      TypeLiteral<?> type,
                                      TypeConverterBinding typeConverterBinding,
                                      java.lang.RuntimeException cause)
      • bindingToProvider

        public Errors bindingToProvider()
      • notASubtype

        public Errors notASubtype​(java.lang.Class<?> implementationType,
                                  java.lang.Class<?> type)
      • recursiveImplementationType

        public Errors recursiveImplementationType()
      • recursiveProviderType

        public Errors recursiveProviderType()
      • missingRuntimeRetention

        public Errors missingRuntimeRetention​(java.lang.Class<? extends java.lang.annotation.Annotation> annotation)
      • missingScopeAnnotation

        public Errors missingScopeAnnotation​(java.lang.Class<? extends java.lang.annotation.Annotation> annotation)
      • optionalConstructor

        public Errors optionalConstructor​(java.lang.reflect.Constructor<?> constructor)
      • cannotBindToGuiceType

        public Errors cannotBindToGuiceType​(java.lang.String simpleName)
      • scopeNotFound

        public Errors scopeNotFound​(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation)
      • scopeAnnotationOnAbstractType

        public Errors scopeAnnotationOnAbstractType​(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation,
                                                    java.lang.Class<?> type,
                                                    java.lang.Object source)
      • misplacedBindingAnnotation

        public Errors misplacedBindingAnnotation​(java.lang.reflect.Member member,
                                                 java.lang.annotation.Annotation bindingAnnotation)
      • tooManyConstructors

        public Errors tooManyConstructors​(java.lang.Class<?> implementation)
      • constructorNotDefinedByType

        public Errors constructorNotDefinedByType​(java.lang.reflect.Constructor<?> constructor,
                                                  TypeLiteral<?> type)
      • duplicateMapKey

        public <K,​V> Errors duplicateMapKey​(Key<java.util.Map<K,​V>> mapKey,
                                                  com.google.common.collect.Multimap<K,​Binding<V>> duplicates)
      • duplicateScopes

        public Errors duplicateScopes​(ScopeBinding existing,
                                      java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
                                      Scope scope)
      • voidProviderMethod

        public Errors voidProviderMethod()
      • missingConstantValues

        public Errors missingConstantValues()
      • cannotInjectInnerClass

        public Errors cannotInjectInnerClass​(java.lang.Class<?> type)
      • cannotInjectLocalClass

        public Errors cannotInjectLocalClass​(java.lang.Class<?> type)
      • duplicateBindingAnnotations

        public Errors duplicateBindingAnnotations​(java.lang.reflect.Member member,
                                                  java.lang.Class<? extends java.lang.annotation.Annotation> a,
                                                  java.lang.Class<? extends java.lang.annotation.Annotation> b)
      • staticInjectionOnInterface

        public Errors staticInjectionOnInterface​(java.lang.Class<?> clazz)
      • cannotInjectFinalField

        public Errors cannotInjectFinalField​(java.lang.reflect.Field field)
      • atTargetIsMissingParameter

        public Errors atTargetIsMissingParameter​(java.lang.annotation.Annotation bindingAnnotation,
                                                 java.lang.String parameterName,
                                                 java.lang.Class<?> clazz)
      • cannotInjectAbstractMethod

        public Errors cannotInjectAbstractMethod​(java.lang.reflect.Method method)
      • cannotInjectMethodWithTypeParameters

        public Errors cannotInjectMethodWithTypeParameters​(java.lang.reflect.Method method)
      • duplicateScopeAnnotations

        public Errors duplicateScopeAnnotations​(java.lang.Class<? extends java.lang.annotation.Annotation> a,
                                                java.lang.Class<? extends java.lang.annotation.Annotation> b)
      • recursiveBinding

        public Errors recursiveBinding​(Key<?> key,
                                       Key<?> linkedKey)
      • bindingAlreadySet

        public Errors bindingAlreadySet​(Key<?> key,
                                        java.lang.Object source)
      • jitBindingAlreadySet

        public Errors jitBindingAlreadySet​(Key<?> key)
      • childBindingAlreadySet

        public Errors childBindingAlreadySet​(Key<?> key,
                                             java.util.Set<java.lang.Object> sources)
      • errorCheckingDuplicateBinding

        public Errors errorCheckingDuplicateBinding​(Key<?> key,
                                                    java.lang.Object source,
                                                    java.lang.Throwable t)
      • exposedButNotBound

        public Errors exposedButNotBound​(Key<?> key)
      • keyNotFullySpecified

        public Errors keyNotFullySpecified​(TypeLiteral<?> typeLiteral)
      • errorEnhancingClass

        public Errors errorEnhancingClass​(java.lang.Class<?> clazz,
                                          java.lang.Throwable cause)
      • getMessagesFromThrowable

        public static java.util.Collection<Message> getMessagesFromThrowable​(java.lang.Throwable throwable)
      • errorInUserCode

        public Errors errorInUserCode​(java.lang.Throwable cause,
                                      java.lang.String messageFormat,
                                      java.lang.Object... arguments)
      • cannotInjectRawProvider

        public Errors cannotInjectRawProvider()
      • cannotInjectRawMembersInjector

        public Errors cannotInjectRawMembersInjector()
      • cannotInjectTypeLiteralOf

        public Errors cannotInjectTypeLiteralOf​(java.lang.reflect.Type unsupportedType)
      • cannotInjectRawTypeLiteral

        public Errors cannotInjectRawTypeLiteral()
      • throwCreationExceptionIfErrorsExist

        public void throwCreationExceptionIfErrorsExist()
      • throwConfigurationExceptionIfErrorsExist

        public void throwConfigurationExceptionIfErrorsExist()
      • throwProvisionExceptionIfErrorsExist

        public void throwProvisionExceptionIfErrorsExist()
      • merge

        public Errors merge​(java.util.Collection<Message> messages)
      • hasErrors

        public boolean hasErrors()
      • addMessage

        public Errors addMessage​(java.lang.String messageFormat,
                                 java.lang.Object... arguments)
      • addMessage

        public Errors addMessage​(ErrorId errorId,
                                 java.lang.String messageFormat,
                                 java.lang.Object... arguments)
      • format

        public static java.lang.String format​(java.lang.String messageFormat,
                                              java.lang.Object... arguments)
      • getMessages

        public java.util.List<Message> getMessages()
      • size

        public int size()
      • convert

        public static java.lang.Object convert​(java.lang.Object o)
      • convert

        public static java.lang.Object convert​(java.lang.Object o,
                                               ElementSource source)
      • formatSource

        public static void formatSource​(java.util.Formatter formatter,
                                        java.lang.Object source)