use of org.elasticsearch.common.inject.spi.Message in project elasticsearch by elastic.
the class ProviderMethodsModule method createProviderMethod.
<T> ProviderMethod<T> createProviderMethod(Binder binder, final Method method) {
binder = binder.withSource(method);
Errors errors = new Errors(method);
// prepare the parameter providers
Set<Dependency<?>> dependencies = new HashSet<>();
List<Provider<?>> parameterProviders = new ArrayList<>();
List<TypeLiteral<?>> parameterTypes = typeLiteral.getParameterTypes(method);
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
for (int i = 0; i < parameterTypes.size(); i++) {
Key<?> key = getKey(errors, parameterTypes.get(i), method, parameterAnnotations[i]);
dependencies.add(Dependency.get(key));
parameterProviders.add(binder.getProvider(key));
}
// Define T as the method's return type.
@SuppressWarnings("unchecked") TypeLiteral<T> returnType = (TypeLiteral<T>) typeLiteral.getReturnType(method);
Key<T> key = getKey(errors, returnType, method, method.getAnnotations());
Class<? extends Annotation> scopeAnnotation = Annotations.findScopeAnnotation(errors, method.getAnnotations());
for (Message message : errors.getMessages()) {
binder.addError(message);
}
return new ProviderMethod<>(key, method, delegate, unmodifiableSet(dependencies), parameterProviders, scopeAnnotation);
}
use of org.elasticsearch.common.inject.spi.Message in project crate by crate.
the class Errors method addMessage.
private Errors addMessage(Throwable cause, String messageFormat, Object... arguments) {
String message = format(messageFormat, arguments);
addMessage(new Message(getSources(), message, cause));
return this;
}
use of org.elasticsearch.common.inject.spi.Message in project crate by crate.
the class ProviderMethodsModule method createProviderMethod.
<T> ProviderMethod<T> createProviderMethod(Binder binder, final Method method) {
binder = binder.withSource(method);
Errors errors = new Errors(method);
// prepare the parameter providers
Set<Dependency<?>> dependencies = new HashSet<>();
List<Provider<?>> parameterProviders = new ArrayList<>();
List<TypeLiteral<?>> parameterTypes = typeLiteral.getParameterTypes(method);
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
for (int i = 0; i < parameterTypes.size(); i++) {
Key<?> key = getKey(errors, parameterTypes.get(i), method, parameterAnnotations[i]);
dependencies.add(Dependency.get(key));
parameterProviders.add(binder.getProvider(key));
}
// Define T as the method's return type.
@SuppressWarnings("unchecked") TypeLiteral<T> returnType = (TypeLiteral<T>) typeLiteral.getReturnType(method);
Key<T> key = getKey(errors, returnType, method, method.getAnnotations());
Class<? extends Annotation> scopeAnnotation = Annotations.findScopeAnnotation(errors, method.getAnnotations());
for (Message message : errors.getMessages()) {
binder.addError(message);
}
return new ProviderMethod<>(key, method, delegate, unmodifiableSet(dependencies), parameterProviders, scopeAnnotation);
}
use of org.elasticsearch.common.inject.spi.Message in project crate by crate.
the class RepositoryServiceTest method testConvertException.
@Test
public void testConvertException() throws Throwable {
expectedException.expect(RepositoryException.class);
expectedException.expectMessage("[foo] failed: [foo] missing location");
throw RepositoryService.convertRepositoryException(new RepositoryException("foo", "failed", new CreationException(List.of(new Message(Collections.singletonList(10), "creation error", new RepositoryException("foo", "missing location"))))));
}
use of org.elasticsearch.common.inject.spi.Message in project crate by crate.
the class RepositoryServiceTest method testConvertException.
@Test
public void testConvertException() throws Throwable {
expectedException.expect(RepositoryException.class);
expectedException.expectMessage("[foo] failed: [foo] missing location");
throw RepositoryService.convertRepositoryException(new RepositoryException("foo", "failed", new CreationException(ImmutableList.of(new Message(Collections.<Object>singletonList(10), "creation error", new RepositoryException("foo", "missing location"))))));
}
Aggregations