本文整理汇总了Java中com.google.inject.binder.ScopedBindingBuilder类的典型用法代码示例。如果您正苦于以下问题:Java ScopedBindingBuilder类的具体用法?Java ScopedBindingBuilder怎么用?Java ScopedBindingBuilder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ScopedBindingBuilder类属于com.google.inject.binder包,在下文中一共展示了ScopedBindingBuilder类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: bindingModule
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
public Module bindingModule() {
return new KeyedManifest.Impl(method) {
@Override
public void configure() {
final Binder binder = binder().withSource(method);
if(!hasReturnValue()) {
binder.addError("Cannot bind this method as a provider because it does not return a value");
return;
}
install(InjectableMethod.this);
final ScopedBindingBuilder builder = binder.bind(providedKey).toProvider(asProvider());
if(scope != null) builder.in(scope);
}
};
}
示例2: toProvider
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
@Override
public ScopedBindingBuilder toProvider(Provider<? extends T> provider) {
return new ScopedBindingBuilderImpl(
delegate.toProvider(new Supplier<T>() {
@Override
public T get() {
return provider.get();
}
@Inject
public void init(Injector injector) {
injector.injectMembers(provider);
}
}));
}
示例3: bindFutureProvider
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
void bindFutureProvider(PrivateBinder binder) {
binder = binder.withSource(source);
ScopedBindingBuilder scoper = binder.bind(bindingKey).toProvider(this);
if (isVoid(method)) {
scoper.asEagerSingleton();
} else {
if (scopeAnnotation != null) {
scoper.in(scopeAnnotation);
}
if (exposedBinding) {
binder.expose(bindingKey);
}
}
}
示例4: applyScoping
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
protected void applyScoping(Binding<?> binding, final ScopedBindingBuilder scopedBindingBuilder) {
binding.acceptScopingVisitor(new BindingScopingVisitor<Void>() {
public Void visitEagerSingleton() {
if (scopedBindingBuilder != null) {
scopedBindingBuilder.asEagerSingleton();
}
return null;
}
public Void visitScope(Scope scope) {
scopedBindingBuilder.in(scope);
return null;
}
public Void visitScopeAnnotation(Class<? extends Annotation> scopeAnnotation) {
scopedBindingBuilder.in(scopeAnnotation);
return null;
}
public Void visitNoScoping() {
// do nothing
return null;
}
});
}
示例5: configure
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
void configure(Binder binder) {
binder = binder.withSource(method);
SecondaryBinder<?, ?> sbinder =
ThrowingProviderBinder.create(binder).bind(checkedProvider, key.getTypeLiteral());
if (key.getAnnotation() != null) {
sbinder = sbinder.annotatedWith(key.getAnnotation());
} else if (key.getAnnotationType() != null) {
sbinder = sbinder.annotatedWith(key.getAnnotationType());
}
sbinder.scopeExceptions(scopeExceptions);
ScopedBindingBuilder sbbuilder = sbinder.toProviderMethod(this);
if (scopeAnnotation != null) {
sbbuilder.in(scopeAnnotation);
}
if (exposed) {
// the cast is safe 'cause the only binder we have implements PrivateBinder. If there's a
// misplaced @Exposed, calling this will add an error to the binder's error queue
((PrivateBinder) binder).expose(sbinder.getKey());
}
CheckedProvideUtils.validateExceptions(
binder, exceptionTypes, sbinder.getExceptionTypes(), checkedProvider);
}
示例6: configure
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
void configure(Binder binder) {
binder = binder.withSource(method);
SecondaryBinder<?, ?> sbinder =
ThrowingProviderBinder.create(binder)
.bind(checkedProvider, key.getTypeLiteral());
if(key.getAnnotation() != null) {
sbinder = sbinder.annotatedWith(key.getAnnotation());
} else if(key.getAnnotationType() != null) {
sbinder = sbinder.annotatedWith(key.getAnnotationType());
}
ScopedBindingBuilder sbbuilder = sbinder.toProviderMethod(this);
if(scopeAnnotation != null) {
sbbuilder.in(scopeAnnotation);
}
if (exposed) {
// the cast is safe 'cause the only binder we have implements PrivateBinder. If there's a
// misplaced @Exposed, calling this will add an error to the binder's error queue
((PrivateBinder) binder).expose(sbinder.getKey());
}
CheckedProvideUtils.validateExceptions(
binder, exceptionTypes, sbinder.getExceptionTypes(), checkedProvider);
}
示例7: forAnnotation
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
public static Scoping forAnnotation(final Class<? extends Annotation> scopingAnnotation) {
if (scopingAnnotation == Singleton.class
|| scopingAnnotation == javax.inject.Singleton.class) {
return SINGLETON_ANNOTATION;
}
return new Scoping() {
@Override public <V> V acceptVisitor(BindingScopingVisitor<V> visitor) {
return visitor.visitScopeAnnotation(scopingAnnotation);
}
@Override public Class<? extends Annotation> getScopeAnnotation() {
return scopingAnnotation;
}
@Override public String toString() {
return scopingAnnotation.getName();
}
@Override public void applyTo(ScopedBindingBuilder scopedBindingBuilder) {
scopedBindingBuilder.in(scopingAnnotation);
}
};
}
示例8: forInstance
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
public static Scoping forInstance(final Scope scope) {
if (scope == Scopes.SINGLETON) {
return SINGLETON_INSTANCE;
}
return new Scoping() {
@Override public <V> V acceptVisitor(BindingScopingVisitor<V> visitor) {
return visitor.visitScope(scope);
}
@Override public Scope getScopeInstance() {
return scope;
}
@Override public String toString() {
return scope.toString();
}
@Override public void applyTo(ScopedBindingBuilder scopedBindingBuilder) {
scopedBindingBuilder.in(scope);
}
};
}
示例9: configure
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
@Override public void configure(final Env env, final Config conf, final Binder binder)
throws Exception {
boolean dev = env.name().equals("dev");
ScopedBindingBuilder provider = binder.bind(M)
.toProvider(APIProvider.class);
if (!dev) {
provider.asEagerSingleton();
}
Path dir = Optional.ofNullable(basedir).orElse(Paths.get(conf.getString("user.dir")));
ApiParser parser = new ApiParser(dir, filter);
customizer.forEach(parser::modify);
binder.bind(ApiParser.class).toInstance(parser);
String contextPath = conf.getString("application.path");
if (swaggerOptions != null) {
swagger(contextPath, env.router(), swaggerOptions, swagger);
}
if (ramlOptions != null) {
raml(contextPath, env.router(), ramlOptions, raml);
}
}
示例10: forAnnotation
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
public static Scoping forAnnotation(final Class<? extends Annotation> scopingAnnotation) {
if (scopingAnnotation == Singleton.class
|| scopingAnnotation == javax.inject.Singleton.class) {
return SINGLETON_ANNOTATION;
}
return new Scoping() {
public <V> V acceptVisitor(BindingScopingVisitor<V> visitor) {
return visitor.visitScopeAnnotation(scopingAnnotation);
}
@Override public Class<? extends Annotation> getScopeAnnotation() {
return scopingAnnotation;
}
@Override public String toString() {
return scopingAnnotation.getName();
}
public void applyTo(ScopedBindingBuilder scopedBindingBuilder) {
scopedBindingBuilder.in(scopingAnnotation);
}
};
}
示例11: forInstance
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
public static Scoping forInstance(final Scope scope) {
if (scope == Scopes.SINGLETON) {
return SINGLETON_INSTANCE;
}
return new Scoping() {
public <V> V acceptVisitor(BindingScopingVisitor<V> visitor) {
return visitor.visitScope(scope);
}
@Override public Scope getScopeInstance() {
return scope;
}
@Override public String toString() {
return scope.toString();
}
public void applyTo(ScopedBindingBuilder scopedBindingBuilder) {
scopedBindingBuilder.in(scope);
}
};
}
示例12: bindProvidersInScope
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
private void bindProvidersInScope(PrivateBinder privateBinder) {
ScopedBindingBuilder scoper = privateBinder.bind(providersClass);
if (scopeAnnotation != null) {
scoper.in(scopeAnnotation);
}
for (EventualProvider<?> p : providers) {
p.bindFutureProvider(privateBinder);
}
}
示例13: visit
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
@Override
public <T> Void visit(Binding<T> binding) {
final Key<T> key = binding.getKey();
if (!keysToIntercept.contains(key)) {
return super.visit(binding);
}
binding.acceptTargetVisitor(new DefaultBindingTargetVisitor<T, Void>() {
@Override
public Void visit(UntargettedBinding<? extends T> untargettedBinding) {
binder.addError("Cannot intercept bare binding of %s. " +
"You may only intercept bindings that bind a class to something.", key);
return null;
}
});
Key<T> anonymousKey = Key.get(key.getTypeLiteral(), UniqueAnnotations.create());
binder.bind(key).toProvider(new InterceptingProvider<T>(key, binder.getProvider(anonymousKey)));
ScopedBindingBuilder scopedBindingBuilder = bindKeyToTarget(binding, binder, anonymousKey);
// we scope the user's provider, not the interceptor. This is dangerous,
// but convenient. It means that although the user's provider will live
// in its proper scope, the intereptor gets invoked without a scope
applyScoping(binding, scopedBindingBuilder);
keysIntercepted.add(key);
return null;
}
示例14: visit
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
@Override
public <T> Void visit(Binding<T> binding) {
final Key<T> key = binding.getKey();
if (!keysToIntercept.contains(key)) {
return super.visit(binding);
}
binding.acceptTargetVisitor(new DefaultBindingTargetVisitor<T, Void>() {
@Override
public Void visit(UntargettedBinding<? extends T> untargettedBinding) {
binder.addError("Cannot intercept bare binding of %s. " +
"You may only intercept bindings that bind a class to something.", key);
return null;
}
});
Key<T> anonymousKey = Key.get(key.getTypeLiteral(), UniqueAnnotations.create());
binder.bind(key).toProvider(new InterceptingProvider<T>(key, binder.getProvider(anonymousKey)));
ScopedBindingBuilder scopedBindingBuilder = bindKeyToTarget(binding, binder, anonymousKey);
// we scope the user's provider, not the interceptor. This is dangerous,
// but convenient. It means that although the user's provider will live
// in its proper scope, the interceptor gets invoked without a scope
applyScoping(binding, scopedBindingBuilder);
keysIntercepted.add(key);
return null;
}
示例15: bindModelClass
import com.google.inject.binder.ScopedBindingBuilder; //导入依赖的package包/类
/**
* Bind also the concrete model class, this binding is necesary to add the scope also to the concrete class.
* @param description
*/
private void bindModelClass(StatisticDescriptor description) {
Class<?> statisticModelClass = description.getModelClass();
ScopedBindingBuilder binderBuilder = bind(statisticModelClass);
applyScope(description, binderBuilder);
}