Java 类com.google.inject.spi.ProviderBinding 实例源码

项目:deguicifier    文件:Generators.java   
private static String instantiation(Binding<?> binding) {
  if (binding instanceof InstanceBinding<?>) {
    return instanceLiteral((InstanceBinding<?>) binding);
  } else if (binding instanceof ProviderKeyBinding<?>) {
    return providerCall(((ProviderKeyBinding<?>) binding).getProviderKey()) + ".get()";
  } else if (binding instanceof LinkedKeyBinding<?>) {
    return providerCall(((LinkedKeyBinding<?>) binding).getLinkedKey());
  } else if (binding instanceof ConstructorBinding<?>) {
    return constructorCall((ConstructorBinding<?>) binding);
  } else if (binding instanceof ProviderBinding<?>) {
    return provider((ProviderBinding<?>) binding);
  } else if (binding instanceof ProviderInstanceBinding<?>) {
    return instantiation((ProviderInstanceBinding<?>) binding);
  } else {
    throw new DeguicifierException();
  }
}
项目:Equella    文件:GuicePlugin.java   
@Override
public <T> Collection<T> getBeansOfType(Class<T> clazz)
{
    Injector injector = ensureInjector();
    List<T> beans = new ArrayList<T>();
    Map<Key<?>, Binding<?>> bindings = injector.getBindings();
    for( Binding<?> binding : bindings.values() )
    {
        Key<?> actualKey = null;
        if( binding instanceof UntargettedBinding || binding instanceof ConstructorBinding )
        {
            actualKey = binding.getKey();
        }
        else if( binding instanceof LinkedKeyBinding )
        {
            actualKey = ((LinkedKeyBinding<?>) binding).getLinkedKey();
        }
        else if( binding instanceof ProviderBinding )
        {
            actualKey = ((ProviderBinding<?>) binding).getProvidedKey();
        }
        if( actualKey != null && clazz.isAssignableFrom(actualKey.getTypeLiteral().getRawType()) )
        {
            beans.add(clazz.cast(binding.getProvider().get()));
        }
    }
    return beans;
}
项目:deguicifier    文件:BindingTypesTest.java   
@Test
public void binds_provider_implicitly() {
  given(module = new AbstractModule() {
    @Override
    protected void configure() {}
  });
  given(injector = Guice.createInjector(module));
  when(injector.getBinding(Key.get(new TypeLiteral<Provider<Implementation>>() {})));
  thenReturned(instanceOf(ProviderBinding.class));
}
项目:guice    文件:DefaultEdgeCreator.java   
/**
 * Visitor for {@link ProviderBinding}. These {@link Binding}s arise from an {@link
 * InjectionPoint} for the {@link Provider} interface.
 */
@Override
public Collection<Edge> visit(ProviderBinding<?> binding) {
  return ImmutableList.<Edge>of(
      new BindingEdge(
          NodeId.newTypeId(binding.getKey()),
          NodeId.newTypeId(binding.getProvidedKey()),
          BindingEdge.Type.PROVIDER));
}
项目:guice    文件:ProviderAliasCreator.java   
@Override
public Iterable<Alias> createAliases(Iterable<Binding<?>> bindings) {
  List<Alias> aliases = Lists.newArrayList();
  for (Binding<?> binding : bindings) {
    if (binding instanceof ProviderBinding) {
      aliases.add(
          new Alias(
              NodeId.newTypeId(binding.getKey()),
              NodeId.newTypeId(((ProviderBinding<?>) binding).getProvidedKey())));
    }
  }
  return aliases;
}
项目:guice    文件:Indexer.java   
@Override
public Indexer.IndexedBinding visit(ProviderBinding<? extends Object> binding) {
  return new Indexer.IndexedBinding(
      binding,
      BindingType.PROVIDED_BY,
      scope(binding),
      injector.getBinding(binding.getProvidedKey()));
}
项目:guice    文件:InjectorImpl.java   
@Override
public String toString() {
  return MoreObjects.toStringHelper(ProviderBinding.class)
      .add("key", getKey())
      .add("providedKey", getProvidedKey())
      .toString();
}
项目:guice-old    文件:ProviderAliasCreator.java   
@Override public Iterable<Alias> createAliases(Iterable<Binding<?>> bindings) {
  List<Alias> aliases = Lists.newArrayList();
  for (Binding<?> binding : bindings) {
    if (binding instanceof ProviderBinding) {
      aliases.add(new Alias(NodeId.newTypeId(binding.getKey()),
          NodeId.newTypeId(((ProviderBinding<?>) binding).getProvidedKey())));
    }
  }
  return aliases;
}
项目:google-guice    文件:ProviderAliasCreator.java   
@Override public Iterable<Alias> createAliases(Iterable<Binding<?>> bindings) {
  List<Alias> aliases = Lists.newArrayList();
  for (Binding<?> binding : bindings) {
    if (binding instanceof ProviderBinding) {
      aliases.add(new Alias(NodeId.newTypeId(binding.getKey()),
          NodeId.newTypeId(((ProviderBinding<?>) binding).getProvidedKey())));
    }
  }
  return aliases;
}
项目:ProjectAres    文件:BindingTargetTypeResolver.java   
@Override
public Optional<TypeLiteral<?>> visit(ProviderBinding<?> binding) {
    // Delegate to the binding for the provided type
    return injector.getBinding(binding.getProvidedKey()).acceptTargetVisitor(this);
}
项目:ProjectAres    文件:DependencyCollector.java   
@Override
public Object visit(ProviderBinding<? extends T> providerBinding) {
    requireKey(providerBinding.getProvidedKey());
    return super.visit(providerBinding);
}
项目:ProjectAres    文件:Scoper.java   
@Override
public Void visit(ProviderBinding<? extends T> binding) {
    // These are only created internally, not sure why we would ever see it
    scope(binding, rebind(binding).toProvider(binding.getProvider()));
    return null;
}
项目:deguicifier    文件:Generators.java   
private static String provider(ProviderBinding<?> binding) {
  Key<?> key = binding.getProvidedKey();
  TypeLiteral<?> type = key.getTypeLiteral();
  return provider(type, providerCall(key));
}
项目:guice    文件:TransitiveDependencyVisitor.java   
@Override
public Collection<Key<?>> visit(ProviderBinding<?> binding) {
  return ImmutableSet.<Key<?>>of(binding.getProvidedKey());
}
项目:guice    文件:TransitiveDependencyVisitorTest.java   
public void testVisitProviderBinding() {
  Binding<?> binding = getBinding(Key.get(new TypeLiteral<Provider<ConstructedClass>>() {}));
  Collection<Key<?>> dependencies = visitor.visit((ProviderBinding<?>) binding);

  assertDependencies(dependencies, Key.get(ConstructedClass.class));
}
项目:papaya    文件:ResolvedBinding.java   
@Override
public ResolvedBinding<T> visit(ProviderBinding<? extends T> providerBinding) {
  //noinspection unchecked
  return traverse((Key<? extends T>)providerBinding.getProvidedKey());
}
项目:guice-old    文件:TransitiveDependencyVisitor.java   
@Override public Collection<Key<?>> visit(ProviderBinding<?> binding) {
  return ImmutableSet.<Key<?>>of(binding.getProvidedKey());
}
项目:guice-old    文件:DefaultEdgeCreator.java   
/**
 * Visitor for {@link ProviderBinding}. These {@link Binding}s arise from an
 * {@link InjectionPoint} for the {@link Provider} interface.
 */
@Override public Collection<Edge> visit(ProviderBinding<?> binding) {
  return ImmutableList.<Edge>of(new BindingEdge(NodeId.newTypeId(binding.getKey()),
      NodeId.newTypeId(binding.getProvidedKey()), BindingEdge.Type.PROVIDER));
}
项目:guice-old    文件:TransitiveDependencyVisitorTest.java   
public void testVisitProviderBinding() {
  Binding<?> binding = getBinding(Key.get(new TypeLiteral<Provider<ConstructedClass>>() {}));
  Collection<Key<?>> dependencies = visitor.visit((ProviderBinding<?>) binding);

  assertDependencies(dependencies, Key.get(ConstructedClass.class));
}
项目:guice-old    文件:InjectorImpl.java   
@Override public String toString() {
  return Objects.toStringHelper(ProviderBinding.class)
      .add("key", getKey())
      .add("providedKey", getProvidedKey())
      .toString();
}
项目:google-guice    文件:TransitiveDependencyVisitor.java   
@Override public Collection<Key<?>> visit(ProviderBinding<?> binding) {
  return ImmutableSet.<Key<?>>of(binding.getProvidedKey());
}
项目:google-guice    文件:DefaultEdgeCreator.java   
/**
 * Visitor for {@link ProviderBinding}. These {@link Binding}s arise from an
 * {@link InjectionPoint} for the {@link Provider} interface.
 */
@Override public Collection<Edge> visit(ProviderBinding<?> binding) {
  return ImmutableList.<Edge>of(new BindingEdge(NodeId.newTypeId(binding.getKey()),
      NodeId.newTypeId(binding.getProvidedKey()), BindingEdge.Type.PROVIDER));
}
项目:google-guice    文件:TransitiveDependencyVisitorTest.java   
public void testVisitProviderBinding() {
  Binding<?> binding = getBinding(Key.get(new TypeLiteral<Provider<ConstructedClass>>() {}));
  Collection<Key<?>> dependencies = visitor.visit((ProviderBinding<?>) binding);

  assertDependencies(dependencies, Key.get(ConstructedClass.class));
}
项目:google-guice    文件:InjectorImpl.java   
@Override public String toString() {
  return Objects.toStringHelper(ProviderBinding.class)
      .add("key", getKey())
      .add("providedKey", getProvidedKey())
      .toString();
}