Class Errors


  • public final class Errors
    extends java.lang.Object
    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.

    • 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.
      • converterReturnedNull

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

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

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

        public Errors bindingToProvider()
      • subtypeNotProvided

        public Errors subtypeNotProvided​(java.lang.Class<? extends Provider<?>> providerType,
                                         java.lang.Class<?> type)
      • 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.Object source)
      • missingScopeAnnotation

        public Errors missingScopeAnnotation()
      • 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)
      • missingConstructor

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

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

        public Errors duplicateScopes​(Scope 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)
      • 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)
      • 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()
      • bindingAlreadySet

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

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

        public Errors errorInjectingMethod​(java.lang.Throwable cause)
      • errorInjectingConstructor

        public Errors errorInjectingConstructor​(java.lang.Throwable cause)
      • errorInProvider

        public Errors errorInProvider​(java.lang.RuntimeException runtimeException)
      • errorNotifyingInjectionListener

        public Errors errorNotifyingInjectionListener​(InjectionListener<?> listener,
                                                      TypeLiteral<?> type,
                                                      java.lang.RuntimeException cause)
      • exposedButNotBound

        public void exposedButNotBound​(Key<?> key)
      • 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()
      • cannotSatisfyCircularDependency

        public Errors cannotSatisfyCircularDependency​(java.lang.Class<?> expectedType)
      • throwCreationExceptionIfErrorsExist

        public void throwCreationExceptionIfErrorsExist()
      • throwConfigurationExceptionIfErrorsExist

        public void throwConfigurationExceptionIfErrorsExist()
      • throwProvisionExceptionIfErrorsExist

        public void throwProvisionExceptionIfErrorsExist()
      • merge

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

        public java.util.List<java.lang.Object> getSources()
      • hasErrors

        public boolean hasErrors()
      • addMessage

        public Errors addMessage​(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()
      • format

        public static java.lang.String format​(java.lang.String heading,
                                              java.util.Collection<Message> errorMessages)
        Returns the formatted message for an exception with the specified messages.
      • checkForNull

        public <T> T checkForNull​(T value,
                                  java.lang.Object source,
                                  Dependency<?> dependency)
                           throws ErrorsException
        Returns value if it is non-null allowed to be null. Otherwise a message is added and an ErrorsException is thrown.
        Throws:
        ErrorsException
      • getOnlyCause

        public static java.lang.Throwable getOnlyCause​(java.util.Collection<Message> messages)
        Returns the cause throwable if there is exactly one cause in messages. If there are zero or multiple messages with causes, null is returned.
      • size

        public int size()
      • convert

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

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

        public static void formatInjectionPoint​(java.util.Formatter formatter,
                                                Dependency<?> dependency,
                                                InjectionPoint injectionPoint)