public final class Errors
extends java.lang.Object
implements java.io.Serializable
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 and Description |
|---|
Errors() |
Errors(java.lang.Object source) |
| Modifier and Type | Method and Description |
|---|---|
Errors |
addMessage(ErrorId errorId,
java.lang.String messageFormat,
java.lang.Object... arguments) |
Errors |
addMessage(Message message) |
Errors |
addMessage(java.lang.String messageFormat,
java.lang.Object... arguments) |
Errors |
ambiguousTypeConversion(java.lang.String stringValue,
java.lang.Object source,
TypeLiteral<?> type,
TypeConverterBinding a,
TypeConverterBinding b) |
Errors |
aopDisabled(InterceptorBinding binding) |
Errors |
atInjectRequired(TypeLiteral<?> type) |
Errors |
atTargetIsMissingParameter(java.lang.annotation.Annotation bindingAnnotation,
java.lang.String parameterName,
java.lang.Class<?> clazz) |
Errors |
bindingAlreadySet(Key<?> key,
java.lang.Object source) |
Errors |
bindingToProvider() |
Errors |
cannotBindToGuiceType(java.lang.String simpleName) |
Errors |
cannotInjectAbstractMethod(java.lang.reflect.Method method) |
Errors |
cannotInjectFinalField(java.lang.reflect.Field field) |
Errors |
cannotInjectInnerClass(java.lang.Class<?> type) |
Errors |
cannotInjectMethodWithTypeParameters(java.lang.reflect.Method method) |
Errors |
cannotInjectRawMembersInjector() |
Errors |
cannotInjectRawProvider() |
Errors |
cannotInjectRawTypeLiteral() |
Errors |
cannotInjectTypeLiteralOf(java.lang.reflect.Type unsupportedType) |
Errors |
childBindingAlreadySet(Key<?> key,
java.util.Set<java.lang.Object> sources) |
Errors |
constructorNotDefinedByType(java.lang.reflect.Constructor<?> constructor,
TypeLiteral<?> type) |
Errors |
conversionError(java.lang.String stringValue,
java.lang.Object source,
TypeLiteral<?> type,
TypeConverterBinding typeConverterBinding,
java.lang.RuntimeException cause) |
Errors |
conversionTypeError(java.lang.String stringValue,
java.lang.Object source,
TypeLiteral<?> type,
TypeConverterBinding typeConverterBinding,
java.lang.Object converted) |
static java.lang.Object |
convert(java.lang.Object o) |
static java.lang.Object |
convert(java.lang.Object o,
ElementSource source) |
Errors |
converterReturnedNull(java.lang.String stringValue,
java.lang.Object source,
TypeLiteral<?> type,
TypeConverterBinding typeConverterBinding) |
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) |
<K,V> Errors |
duplicateMapKey(Key<java.util.Map<K,V>> mapKey,
<any> duplicates) |
Errors |
duplicateScopeAnnotations(java.lang.Class<? extends java.lang.annotation.Annotation> a,
java.lang.Class<? extends java.lang.annotation.Annotation> b) |
Errors |
duplicateScopes(ScopeBinding existing,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
Scope scope) |
Errors |
errorCheckingDuplicateBinding(Key<?> key,
java.lang.Object source,
java.lang.Throwable t) |
Errors |
errorEnhancingClass(java.lang.Class<?> clazz,
java.lang.Throwable cause) |
Errors |
errorInUserCode(java.lang.Throwable cause,
java.lang.String messageFormat,
java.lang.Object... arguments) |
Errors |
errorNotifyingTypeListener(TypeListenerBinding listener,
TypeLiteral<?> type,
java.lang.Throwable cause) |
Errors |
exposedButNotBound(Key<?> key) |
static java.lang.String |
format(java.lang.String messageFormat,
java.lang.Object... arguments) |
static void |
formatSource(java.util.Formatter formatter,
java.lang.Object source) |
java.util.List<Message> |
getMessages() |
static java.util.Collection<Message> |
getMessagesFromThrowable(java.lang.Throwable throwable) |
boolean |
hasErrors() |
Errors |
jitBindingAlreadySet(Key<?> key) |
Errors |
jitDisabled(Key<?> key) |
Errors |
jitDisabledInParent(Key<?> key) |
Errors |
keyNotFullySpecified(TypeLiteral<?> typeLiteral) |
Errors |
merge(java.util.Collection<Message> messages) |
Errors |
merge(Errors moreErrors) |
Errors |
merge(InternalProvisionException ipe) |
Errors |
misplacedBindingAnnotation(java.lang.reflect.Member member,
java.lang.annotation.Annotation bindingAnnotation) |
Errors |
missingConstantValues() |
Errors |
missingConstructor(TypeLiteral<?> type) |
Errors |
missingImplementation(Key<?> key)
We use a fairly generic error message here.
|
Errors |
missingRuntimeRetention(java.lang.Class<? extends java.lang.annotation.Annotation> annotation) |
Errors |
missingScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> annotation) |
Errors |
notASubtype(java.lang.Class<?> implementationType,
java.lang.Class<?> type) |
Errors |
optionalConstructor(java.lang.reflect.Constructor<?> constructor) |
Errors |
recursiveBinding(Key<?> key,
Key<?> linkedKey) |
Errors |
recursiveImplementationType() |
Errors |
recursiveProviderType() |
Errors |
scopeAnnotationOnAbstractType(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation,
java.lang.Class<?> type,
java.lang.Object source) |
Errors |
scopeNotFound(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation) |
int |
size() |
Errors |
staticInjectionOnInterface(java.lang.Class<?> clazz) |
void |
throwConfigurationExceptionIfErrorsExist() |
void |
throwCreationExceptionIfErrorsExist() |
void |
throwIfNewErrors(int expectedSize) |
void |
throwProvisionExceptionIfErrorsExist() |
ErrorsException |
toException() |
Errors |
tooManyConstructors(java.lang.Class<?> implementation) |
Errors |
voidProviderMethod() |
Errors |
withSource(java.lang.Object source)
Returns an instance that uses
source as a reference point for newly added errors. |
public Errors withSource(java.lang.Object source)
source as a reference point for newly added errors.public Errors aopDisabled(InterceptorBinding binding)
public Errors missingImplementation(Key<?> key)
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.public Errors atInjectRequired(TypeLiteral<?> type)
public Errors converterReturnedNull(java.lang.String stringValue, java.lang.Object source, TypeLiteral<?> type, TypeConverterBinding typeConverterBinding)
public Errors conversionTypeError(java.lang.String stringValue, java.lang.Object source, TypeLiteral<?> type, TypeConverterBinding typeConverterBinding, java.lang.Object converted)
public Errors conversionError(java.lang.String stringValue, java.lang.Object source, TypeLiteral<?> type, TypeConverterBinding typeConverterBinding, java.lang.RuntimeException cause)
public Errors ambiguousTypeConversion(java.lang.String stringValue, java.lang.Object source, TypeLiteral<?> type, TypeConverterBinding a, TypeConverterBinding b)
public Errors bindingToProvider()
public Errors notASubtype(java.lang.Class<?> implementationType, java.lang.Class<?> type)
public Errors recursiveImplementationType()
public Errors recursiveProviderType()
public Errors missingRuntimeRetention(java.lang.Class<? extends java.lang.annotation.Annotation> annotation)
public Errors missingScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> annotation)
public Errors optionalConstructor(java.lang.reflect.Constructor<?> constructor)
public Errors cannotBindToGuiceType(java.lang.String simpleName)
public Errors scopeNotFound(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation)
public Errors scopeAnnotationOnAbstractType(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation, java.lang.Class<?> type, java.lang.Object source)
public Errors misplacedBindingAnnotation(java.lang.reflect.Member member, java.lang.annotation.Annotation bindingAnnotation)
public Errors missingConstructor(TypeLiteral<?> type)
public Errors tooManyConstructors(java.lang.Class<?> implementation)
public Errors constructorNotDefinedByType(java.lang.reflect.Constructor<?> constructor, TypeLiteral<?> type)
public <K,V> Errors duplicateMapKey(Key<java.util.Map<K,V>> mapKey, <any> duplicates)
public Errors duplicateScopes(ScopeBinding existing, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, Scope scope)
public Errors voidProviderMethod()
public Errors missingConstantValues()
public Errors cannotInjectInnerClass(java.lang.Class<?> type)
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)
public Errors staticInjectionOnInterface(java.lang.Class<?> clazz)
public Errors cannotInjectFinalField(java.lang.reflect.Field field)
public Errors atTargetIsMissingParameter(java.lang.annotation.Annotation bindingAnnotation, java.lang.String parameterName, java.lang.Class<?> clazz)
public Errors cannotInjectAbstractMethod(java.lang.reflect.Method method)
public Errors cannotInjectMethodWithTypeParameters(java.lang.reflect.Method method)
public Errors duplicateScopeAnnotations(java.lang.Class<? extends java.lang.annotation.Annotation> a, java.lang.Class<? extends java.lang.annotation.Annotation> b)
public Errors childBindingAlreadySet(Key<?> key, java.util.Set<java.lang.Object> sources)
public Errors errorCheckingDuplicateBinding(Key<?> key, java.lang.Object source, java.lang.Throwable t)
public Errors errorNotifyingTypeListener(TypeListenerBinding listener, TypeLiteral<?> type, java.lang.Throwable cause)
public Errors keyNotFullySpecified(TypeLiteral<?> typeLiteral)
public Errors errorEnhancingClass(java.lang.Class<?> clazz, java.lang.Throwable cause)
public static java.util.Collection<Message> getMessagesFromThrowable(java.lang.Throwable throwable)
public Errors errorInUserCode(java.lang.Throwable cause, java.lang.String messageFormat, java.lang.Object... arguments)
public Errors cannotInjectRawProvider()
public Errors cannotInjectRawMembersInjector()
public Errors cannotInjectTypeLiteralOf(java.lang.reflect.Type unsupportedType)
public Errors cannotInjectRawTypeLiteral()
public void throwCreationExceptionIfErrorsExist()
public void throwConfigurationExceptionIfErrorsExist()
public void throwProvisionExceptionIfErrorsExist()
public Errors merge(InternalProvisionException ipe)
public void throwIfNewErrors(int expectedSize)
throws ErrorsException
ErrorsExceptionpublic ErrorsException toException()
public boolean hasErrors()
public Errors addMessage(java.lang.String messageFormat, java.lang.Object... arguments)
public Errors addMessage(ErrorId errorId, java.lang.String messageFormat, java.lang.Object... arguments)
public static java.lang.String format(java.lang.String messageFormat,
java.lang.Object... arguments)
public java.util.List<Message> getMessages()
public int size()
public static java.lang.Object convert(java.lang.Object o)
public static java.lang.Object convert(java.lang.Object o,
ElementSource source)
public static void formatSource(java.util.Formatter formatter,
java.lang.Object source)