@Override public void addError(Throwable t) { String message = "An exception was caught and reported. Message: " + t.getMessage(); elements.add(new Message(Collections.singletonList(getSource()), message, t)); }
@Override public void bindScope(Class<? extends Annotation> annotationType, Scope scope) { elements.add(new ScopeBinding(getSource(), annotationType, scope)); }
@Override public <T> void requestInjection(TypeLiteral<T> type, T instance) { elements.add(new InjectionRequest<>(getSource(), type, instance)); }
@Override public <T> MembersInjector<T> getMembersInjector(final TypeLiteral<T> typeLiteral) { final MembersInjectorLookup<T> element = new MembersInjectorLookup<>(getSource(), typeLiteral); elements.add(element); return element.getMembersInjector(); }
@Override public void requestStaticInjection(Class<?>... types) { for (Class<?> type : types) { elements.add(new StaticInjectionRequest(getSource(), type)); } }
@Override public void addError(Throwable t) { String message = "An exception was caught and reported. Message: " + t.getMessage(); elements.add(new Message(Collections.singletonList(getSource()), message, t)); }
@Override public void requestStaticInjection(Class<?>... types) { for (Class<?> type : types) { elements.add(new StaticInjectionRequest(getSource(), type)); } }
@Override public PrivateBinder newPrivateBinder() { PrivateElementsImpl privateElements = new PrivateElementsImpl(getSource()); elements.add(privateElements); return new RecordingBinder(this, privateElements); }
@Override public <T> MembersInjector<T> getMembersInjector(final TypeLiteral<T> typeLiteral) { final MembersInjectorLookup<T> element = new MembersInjectorLookup<>(getSource(), typeLiteral); elements.add(element); return element.getMembersInjector(); }
@Override public void addError(Throwable t) { String message = "An exception was caught and reported. Message: " + t.getMessage(); elements.add(new Message(Collections.singletonList(getSource()), message, t)); }
private <T> AnnotatedElementBuilder exposeInternal(Key<T> key) { if (privateElements == null) { addError("Cannot expose %s on a standard binder. " + "Exposed bindings are only applicable to private binders.", key); return new AnnotatedElementBuilder() { @Override public void annotatedWith(Class<? extends Annotation> annotationType) { } @Override public void annotatedWith(Annotation annotation) { } }; } ExposureBuilder<T> builder = new ExposureBuilder<>(this, getSource(), key); privateElements.addExposureBuilder(builder); return builder; }
@Override public AnnotatedConstantBindingBuilder bindConstant() { return new ConstantBindingBuilderImpl<Void>(this, elements, getSource()); }
@Override public void bindListener(Matcher<? super TypeLiteral<?>> typeMatcher, TypeListener listener) { elements.add(new TypeListenerBinding(getSource(), listener, typeMatcher)); }
@Override public void addError(String message, Object... arguments) { elements.add(new Message(getSource(), Errors.format(message, arguments))); }
@Override public void convertToTypes(Matcher<? super TypeLiteral<?>> typeMatcher, TypeConverter converter) { elements.add(new TypeConverterBinding(getSource(), typeMatcher, converter)); }
@Override public void requestStaticInjection(Class<?>... types) { for (Class<?> type : types) { elements.add(new StaticInjectionRequest(getSource(), type)); } }
@Override public <T> AnnotatedBindingBuilder<T> bind(Key<T> key) { return new BindingBuilder<>(this, elements, getSource(), key); }
@Override public <T> Provider<T> getProvider(final Key<T> key) { final ProviderLookup<T> element = new ProviderLookup<>(getSource(), key); elements.add(element); return element.getProvider(); }
@Override public PrivateBinder newPrivateBinder() { PrivateElementsImpl privateElements = new PrivateElementsImpl(getSource()); elements.add(privateElements); return new RecordingBinder(this, privateElements); }
@Override public <T> MembersInjector<T> getMembersInjector(final TypeLiteral<T> typeLiteral) { final MembersInjectorLookup<T> element = new MembersInjectorLookup<>(getSource(), typeLiteral); elements.add(element); return element.getMembersInjector(); }