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

项目: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();
  }
}
项目:google-gin    文件:GuiceBindingVisitor.java   
public Void visit(ProviderKeyBinding<? extends T> providerKeyBinding) {
  Context context = Context.forElement(providerKeyBinding);
  bindingsCollection.addBinding(
      targetKey,
      bindingFactory.getBindProviderBinding(
          providerKeyBinding.getProviderKey(), providerKeyBinding.getKey(), context));

  return null;
}
项目:deguicifier    文件:BindingTypesTest.java   
@Test
public void binds_provider_key() {
  given(module = new AbstractModule() {
    @Override
    protected void configure() {
      bind(Interface.class).toProvider(InterfaceProvider.class);
    }
  });
  given(injector = Guice.createInjector(module));
  when(injector.getBinding(Interface.class));
  thenReturned(instanceOf(ProviderKeyBinding.class));
}
项目:guice    文件:DefaultEdgeCreator.java   
/**
 * Same as {@link #visit(LinkedKeyBinding)}, but the binding edge is {@link
 * BindingEdge.Type#PROVIDER}.
 */
@Override
public Collection<Edge> visit(ProviderKeyBinding<?> binding) {
  return ImmutableList.<Edge>of(
      new BindingEdge(
          NodeId.newTypeId(binding.getKey()),
          NodeId.newTypeId(binding.getProviderKey()),
          BindingEdge.Type.PROVIDER));
}
项目:guice    文件:TransitiveDependencyVisitorTest.java   
public void testVisitProviderKey() {
  Binding<?> binding = getBinding(Key.get(ConstructedClass.class), new ProviderKeyModule());
  Collection<Key<?>> dependencies = visitor.visit((ProviderKeyBinding<?>) binding);

  // Dependency should be to the class that provides this one.
  assertDependencies(dependencies, Key.get(ConstructedClassProvider.class));
}
项目:guice    文件:LinkedProviderBindingImpl.java   
@Override
public String toString() {
  return MoreObjects.toStringHelper(ProviderKeyBinding.class)
      .add("key", getKey())
      .add("source", getSource())
      .add("scope", getScoping())
      .add("provider", providerKey)
      .toString();
}
项目:guice    文件:SpiUtils.java   
private static boolean matches(Binding<?> item, BindResult<?> result) {
  switch (result.type) {
    case INSTANCE:
      if (item instanceof InstanceBinding
          && ((InstanceBinding) item).getInstance().equals(result.instance)) {
        return true;
      }
      break;
    case LINKED:
      if (item instanceof LinkedKeyBinding
          && ((LinkedKeyBinding) item).getLinkedKey().equals(result.key)) {
        return true;
      }
      break;
    case PROVIDER_INSTANCE:
      if (item instanceof ProviderInstanceBinding
          && Objects.equal(
              ((ProviderInstanceBinding) item).getUserSuppliedProvider().get(),
              result.instance)) {
        return true;
      }
      break;
    case PROVIDER_KEY:
      if (item instanceof ProviderKeyBinding
          && ((ProviderKeyBinding) item).getProviderKey().equals(result.key)) {
        return true;
      }
      break;
  }
  return false;
}
项目:guice-old    文件:TransitiveDependencyVisitorTest.java   
public void testVisitProviderKey() {
  Binding<?> binding = getBinding(Key.get(ConstructedClass.class), new ProviderKeyModule());
  Collection<Key<?>> dependencies = visitor.visit((ProviderKeyBinding<?>) binding);

  // Dependency should be to the class that provides this one.
  assertDependencies(dependencies, Key.get(ConstructedClassProvider.class));
}
项目:guice-old    文件:SpiUtils.java   
private static boolean matches(Binding<?> item, BindResult<?> result) {
  switch (result.type) {
  case INSTANCE:
    if (item instanceof InstanceBinding
        && ((InstanceBinding) item).getInstance().equals(result.instance)) {
      return true;
    }
    break;
  case LINKED:
    if (item instanceof LinkedKeyBinding
        && ((LinkedKeyBinding) item).getLinkedKey().equals(result.key)) {
      return true;
    }
    break;
  case PROVIDER_INSTANCE:
    if (item instanceof ProviderInstanceBinding
        && Objects.equal(((ProviderInstanceBinding) item).getUserSuppliedProvider().get(),
                         result.instance)) {
      return true;
    }
    break;
  case PROVIDER_KEY:
    if (item instanceof ProviderKeyBinding
        && ((ProviderKeyBinding) item).getProviderKey().equals(result.key)) {
      return true;
    }
    break;
  }
  return false;
}
项目:guice-old    文件:LinkedProviderBindingImpl.java   
@Override public String toString() {
  return Objects.toStringHelper(ProviderKeyBinding.class)
      .add("key", getKey())
      .add("source", getSource())
      .add("scope", getScoping())
      .add("provider", providerKey)
      .toString();
}
项目:google-guice    文件:TransitiveDependencyVisitorTest.java   
public void testVisitProviderKey() {
  Binding<?> binding = getBinding(Key.get(ConstructedClass.class), new ProviderKeyModule());
  Collection<Key<?>> dependencies = visitor.visit((ProviderKeyBinding<?>) binding);

  // Dependency should be to the class that provides this one.
  assertDependencies(dependencies, Key.get(ConstructedClassProvider.class));
}
项目:google-guice    文件:LinkedProviderBindingImpl.java   
@Override public String toString() {
  return Objects.toStringHelper(ProviderKeyBinding.class)
      .add("key", getKey())
      .add("source", getSource())
      .add("scope", getScoping())
      .add("provider", providerKey)
      .toString();
}
项目:ProjectAres    文件:BindingTargetTypeResolver.java   
@Override
public Optional<TypeLiteral<?>> visit(ProviderKeyBinding<?> binding) {
    // We don't know what the provider will return
    return empty();
}
项目:ProjectAres    文件:DependencyCollector.java   
@Override
public Object visit(ProviderKeyBinding<? extends T> providerKeyBinding) {
    requireKey(providerKeyBinding.getProviderKey());
    return super.visit(providerKeyBinding);
}
项目:ProjectAres    文件:Scoper.java   
@Override
public Void visit(ProviderKeyBinding<? extends T> binding) {
    scope(binding, rebind(binding).toProvider(binding.getProviderKey()));
    return null;
}
项目:guice    文件:TransitiveDependencyVisitor.java   
@Override
public Collection<Key<?>> visit(ProviderKeyBinding<?> binding) {
  return ImmutableSet.<Key<?>>of(binding.getProviderKey());
}
项目:guice    文件:Indexer.java   
@Override
public Indexer.IndexedBinding visit(ProviderKeyBinding<? extends Object> binding) {
  return new Indexer.IndexedBinding(
      binding, BindingType.PROVIDER_KEY, scope(binding), binding.getProviderKey());
}
项目:papaya    文件:ResolvedBinding.java   
@Override
public ResolvedBinding<T> visit(ProviderKeyBinding<? extends T> providerKeyBinding) {
  //noinspection unchecked
  return injector.getBinding(((Key<? extends T>)providerKeyBinding.getProviderKey())).acceptTargetVisitor(this);
}
项目:guice-old    文件:TransitiveDependencyVisitor.java   
@Override public Collection<Key<?>> visit(ProviderKeyBinding<?> binding) {
  return ImmutableSet.<Key<?>>of(binding.getProviderKey());
}
项目:guice-old    文件:DefaultEdgeCreator.java   
/**
 * Same as {@link #visit(LinkedKeyBinding)}, but the binding edge is
 * {@link BindingEdge.Type#PROVIDER}.
 */
@Override public Collection<Edge> visit(ProviderKeyBinding<?> binding) {
  return ImmutableList.<Edge>of(new BindingEdge(NodeId.newTypeId(binding.getKey()),
      NodeId.newTypeId(binding.getProviderKey()), BindingEdge.Type.PROVIDER));
}
项目:google-guice    文件:TransitiveDependencyVisitor.java   
@Override public Collection<Key<?>> visit(ProviderKeyBinding<?> binding) {
  return ImmutableSet.<Key<?>>of(binding.getProviderKey());
}
项目:google-guice    文件:DefaultEdgeCreator.java   
/**
 * Same as {@link #visit(LinkedKeyBinding)}, but the binding edge is
 * {@link BindingEdge.Type#PROVIDER}.
 */
@Override public Collection<Edge> visit(ProviderKeyBinding<?> binding) {
  return ImmutableList.<Edge>of(new BindingEdge(NodeId.newTypeId(binding.getKey()),
      NodeId.newTypeId(binding.getProviderKey()), BindingEdge.Type.PROVIDER));
}