GVKun编程网logo

emacs keybinding编译C文件(emacs如何编译)

16

这篇文章主要围绕emacskeybinding编译C文件和emacs如何编译展开,旨在为您提供一份详细的参考资料。我们将全面介绍emacskeybinding编译C文件的优缺点,解答emacs如何编译

这篇文章主要围绕emacs keybinding编译C文件emacs如何编译展开,旨在为您提供一份详细的参考资料。我们将全面介绍emacs keybinding编译C文件的优缺点,解答emacs如何编译的相关问题,同时也会为您带来c# – KeyBinding – RelayCommand位于xaml.cs中、com.google.inject.multibindings.MapBinderBinding的实例源码、com.google.inject.spi.LinkedKeyBinding的实例源码、com.google.inject.spi.ProviderKeyBinding的实例源码的实用方法。

本文目录一览:

emacs keybinding编译C文件(emacs如何编译)

emacs keybinding编译C文件(emacs如何编译)

这就是我想要做的事情:当按下C-c C-l时,如果没有终端窗口,则启动一个新的终端窗口,然后,在该终端中,使用一些标志和当前缓冲区的文件调用 gcc.我该怎么办?

解决方法

试试内置:
M-x compile gcc ...

默认情况下,compile不会绑定到任何键,但您可以执行以下操作:

(add-hook 'c-mode-common-hook 
          (lambda () (define-key c-mode-base-map (kbd "C-c C-l") 'compile))))

人们在Emacs Wiki上编写了很多软件包.查看SmartCompile,CompileCommand和类别Programmer Utils.

使用M-x编译…而不仅仅是在“终端”中运行它的好处是你得到C-x`(又名下一个错误),它将跳转到导致错误命令的文件和行.还有命令M-x重新编译,它可以满足你的期望.当然,与所有Emacs命令一样,compile命令保留编译调用的历史记录,您可以使用M-p和M-n查看历史记录.

c# – KeyBinding – RelayCommand位于xaml.cs中

c# – KeyBinding – RelayCommand位于xaml.cs中

我将我的文本框绑定到viewmodel类.但是,按钮命令(它是一个RelayCommand,从ICommand扩展)我绑定到UsersView.xaml.cs.在UsersView.xaml.cs构造函数中,我有:

DataContext = UserVM;
btnAdd.DataContext = this;

这是我绑定按钮的方式 – 它的工作原理.

<Button Command="{Binding Add}" Content="Add user" />

现在,我想为该按钮添加KeyGesture,但我无法为InputBindings设置DataContext,并且编译器无法在UsersVM类中找到此Add命令.

<UsersView.InputBindings>
    <KeyBinding Key="F10" Command="{Binding Add}" />
</UsersView.InputBindings>

解决方法

我在一个窗口上有这个,这是我用过的代码……

<Window
   x:xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:myviewmodels="clr-namespace:MVVMExample"
   Title="MainWindow"
   x:Name="MyMainWindow"
   Height="350"
   Width="525">

请注意,我设置了Window的x.Name.然后在我的KeyBinding中,我这样做了……

<Window.InputBindings>

    <KeyBinding
        Key="F10"
        Command="{Binding ElementName=MyMainWindow,Path=DataContext.AddPersonCommand}" />

</Window.InputBindings>

AddPersonCommand是我的viewmodel的ICommand.

com.google.inject.multibindings.MapBinderBinding的实例源码

com.google.inject.multibindings.MapBinderBinding的实例源码

项目:fabricator    文件:OutputStreamConfigDocumenter.java   
@Override
        public MapBinderBinding<?> visit(
                MapBinderBinding<? extends Object> mapBinder) {
            if (mapBinder.getValueTypeLiteral().getRawType().isAssignableFrom(ComponentFactory.class)) {
                System.out.println(mapBinder.getValueTypeLiteral());

                for (Entry<?,Binding<?>> entry : mapBinder.getEntries()) {
                    ComponentFactory<?> factory = (ComponentFactory<?>) entry.getValue().getProvider().get();
                    System.out.println(String.format("  for type='%s' use class '%s' with properties: ",entry.getKey(),factory.getRawType().getSimpleName()));

                    for (Entry<String,PropertyInfo> propEntry : factory.getProperties().entrySet()) {
                        PropertyInfo prop = propEntry.getValue();
                        String   name = propEntry.getKey();

//                        System.out.println(String.format("    %-20s %-10s %-10s",name,prop.getType().getSimpleName(),prop.isDynamic() ? "(dynamic)" : ""));
                    }
                }
            }
            return mapBinder;        
        }
项目:guice    文件:MapBinderTest.java   
@SuppressWarnings("rawtypes")
public void testGetEntries() {
  List<com.google.inject.spi.Element> elements =
      Elements.getElements(new MapBinderWithTwoentriesModule());

  // Get the MapBinderBinding
  MapBinderBinding<?> mapBinderBinding = getMapBinderBinding(elements);

  // Execute the call to getEntries
  List<Map.Entry<?,Binding<?>>> mapEntries = mapBinderBinding.getEntries(elements);

  // Assert on the results
  Map.Entry<?,Binding<?>> firstEntry = mapEntries.get(0);
  assertEquals("keyOne",firstEntry.getKey());
  Binding<?> firstBinding = firstEntry.getValue();
  assertEquals("valueOne",((InstanceBinding) firstBinding).getInstance());

  Map.Entry<?,Binding<?>> secondEntry = mapEntries.get(1);
  assertEquals("keyTwo",secondEntry.getKey());
  Binding<?> secondBinding = secondEntry.getValue();
  assertEquals("valueTwo",((InstanceBinding) secondBinding).getInstance());
}
项目:guice    文件:MapBinderTest.java   
/**
 * Given an {@link Iterable} of elements,return the one that is a {@link MapBinderBinding},or
 * {@code null} if it cannot be found.
 */
private static MapBinderBinding<?> getMapBinderBinding(
    Iterable<com.google.inject.spi.Element> elements) {
  final Collector collector = new Collector();
  for (com.google.inject.spi.Element element : elements) {
    element.acceptVisitor(
        new DefaultElementVisitor<Void>() {
          @Override
          public <T> Void visit(Binding<T> binding) {
            binding.acceptTargetVisitor(collector);
            return null;
          }
        });
  }
  return collector.mapbinding;
}
项目:guice    文件:MapBinderTest.java   
public void testTwoMapBindersAredistinct() {
  Injector injector =
      Guice.createInjector(
          new AbstractModule() {
            @Override
            protected void configure() {
              MapBinder.newMapBinder(binder(),String.class,String.class)
                  .addBinding("A")
                  .toInstance("a");

              MapBinder.newMapBinder(binder(),Integer.class,String.class)
                  .addBinding(1)
                  .toInstance("b");
            }
          });
  Collector collector = new Collector();
  Binding<Map<String,String>> map1 = injector.getBinding(Key.get(mapOfString));
  map1.acceptTargetVisitor(collector);
  assertNotNull(collector.mapbinding);
  MapBinderBinding<?> map1Binding = collector.mapbinding;

  Binding<Map<Integer,String>> map2 = injector.getBinding(Key.get(mapOfIntString));
  map2.acceptTargetVisitor(collector);
  assertNotNull(collector.mapbinding);
  MapBinderBinding<?> map2Binding = collector.mapbinding;

  List<Binding<String>> bindings = injector.findBindingsByType(stringType);
  assertEquals("should have two elements: " + bindings,2,bindings.size());
  Binding<String> a = bindings.get(0);
  Binding<String> b = bindings.get(1);
  assertEquals("a",((InstanceBinding<String>) a).getInstance());
  assertEquals("b",((InstanceBinding<String>) b).getInstance());

  // Make sure the correct elements belong to their own sets.
  assertTrue(map1Binding.containsElement(a));
  assertFalse(map1Binding.containsElement(b));

  assertFalse(map2Binding.containsElement(a));
  assertTrue(map2Binding.containsElement(b));
}
项目:guice    文件:MapBinderTest.java   
@SuppressWarnings("rawtypes")
public void testGetEntriesWithDuplicateKeys() {
  // Set up the module
  Module module =
      new AbstractModule() {
        @Override
        protected void configure() {
          MapBinder<String,String> mapBinder =
              MapBinder.newMapBinder(binder(),String.class);
          mapBinder.addBinding("A").toInstance("a1");
          mapBinder.addBinding("A").toInstance("a2");
          mapBinder.permitDuplicates();
        }
      };

  // Get the MapBinderBinding
  List<com.google.inject.spi.Element> elements = Elements.getElements(module);
  MapBinderBinding<?> mapBinderBinding = getMapBinderBinding(elements);

  // Execute the call to getEntries
  List<Map.Entry<?,Binding<?>> firstEntry = mapEntries.get(0);
  assertEquals("A",firstEntry.getKey());
  Binding<?> firstBinding = firstEntry.getValue();
  assertEquals("a1",Binding<?>> secondEntry = mapEntries.get(1);
  assertEquals("A",secondEntry.getKey());
  Binding<?> secondBinding = secondEntry.getValue();
  assertEquals("a2",((InstanceBinding) secondBinding).getInstance());
}
项目:guice    文件:MapBinderTest.java   
@SuppressWarnings("rawtypes")
public void testGetEntriesWithDuplicateValues() {
  // Set up the module
  Module module =
      new AbstractModule() {
        @Override
        protected void configure() {
          MapBinder<String,String.class);
          mapBinder.addBinding("A").toInstance("a");
          mapBinder.addBinding("A").toInstance("a");
        }
      };

  // Get the MapBinderBinding
  List<com.google.inject.spi.Element> elements = Elements.getElements(module);
  MapBinderBinding<?> mapBinderBinding = getMapBinderBinding(elements);

  // Execute the call to getEntries
  List<Map.Entry<?,firstEntry.getKey());
  Binding<?> firstBinding = firstEntry.getValue();
  assertEquals("a",secondEntry.getKey());
  Binding<?> secondBinding = secondEntry.getValue();
  assertEquals("a",((InstanceBinding) secondBinding).getInstance());
}
项目:guice    文件:MapBinderTest.java   
@SuppressWarnings("rawtypes")
public void testGetEntriesMissingProviderMapEntry() {
  List<com.google.inject.spi.Element> elements =
      Lists.newArrayList(Elements.getElements(new MapBinderWithTwoentriesModule()));

  // Get the MapBinderBinding
  MapBinderBinding<?> mapBinderBinding = getMapBinderBinding(elements);

  // Remove the ProviderMapEntry for "a" from the elements
  com.google.inject.spi.Element providerMapEntryForA = getProviderMapEntry("keyOne",elements);
  boolean removeSuccessful = elements.remove(providerMapEntryForA);
  assertTrue(removeSuccessful);

  // Execute the call to getEntries,we expect it to fail
  try {
    mapBinderBinding.getEntries(elements);
    fail();
  } catch (IllegalArgumentException expected) {
    assertContains(
        expected.getMessage(),"Expected a 1:1 mapping from map keys to values.","Found these Bindings that were missing an associated entry:","java.lang.String","bound at:","MapBinderWithTwoentriesModule");
  }
}
项目:guice    文件:MapBinderTest.java   
@SuppressWarnings("rawtypes")
public void testGetEntriesMissingBindingForValue() {
  List<com.google.inject.spi.Element> elements =
      Lists.newArrayList(Elements.getElements(new MapBinderWithTwoentriesModule()));

  // Get the MapBinderBinding
  MapBinderBinding<?> mapBinderBinding = getMapBinderBinding(elements);

  // Remove the ProviderMapEntry for "a" from the elements
  com.google.inject.spi.Element bindingForA = getInstanceBindingForValue("valueOne",elements);
  boolean removeSuccessful = elements.remove(bindingForA);
  assertTrue(removeSuccessful);

  // Execute the call to getEntries,"Found these map keys without a corresponding value:","keyOne","MapBinderWithTwoentriesModule");
  }
}
项目:fabricator    文件:OutputStreamConfigDocumenter.java   
@Override
public MapBinderBinding<?> visit(
        MultibinderBinding<? extends Object> multibinding) {
    // Todo Auto-generated method stub
    return null;
}
项目:fabricator    文件:OutputStreamConfigDocumenter.java   
@Override
public MapBinderBinding<?> visit(
        OptionalBinderBinding<? extends Object> optionalbinding) {
    // Todo Auto-generated method stub
    return null;
}
项目:guice    文件:Collector.java   
@Override
public Object visit(MapBinderBinding<? extends Object> mapbinding) {
  this.mapbinding = mapbinding;
  return null;
}
项目:guice    文件:SpiUtils.java   
@Override
public Object visit(MapBinderBinding<? extends T> mapbinding) {
  return mapbinding;
}
项目:papaya    文件:ResolvedBinding.java   
@Override
public Set<ResolvedBinding<?>> visit(MapBinderBinding<?> mapbinding) {
  return resolveMultiDependencies(Functional.funPairs(mapbinding.getEntries()).values());
}

com.google.inject.spi.LinkedKeyBinding的实例源码

com.google.inject.spi.LinkedKeyBinding的实例源码

项目: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();
  }
}
项目:ProjectAres    文件:Bindings.java   
public static <T> Optional<TypeLiteral<? extends T>> targettype(Injector injector,Binding<T> binding) {
    if(binding instanceof UntargettedBinding) {
        return Optional.of(binding.getKey().getTypeLiteral());
    } else if(binding instanceof ConstructorBinding) {
        return Optional.of((TypeLiteral<? extends T>) ((ConstructorBinding) binding).getConstructor().getDeclaringType());
    } else if(binding instanceof InstanceBinding) {
        return Optional.of(TypeLiteral.get((Class<T>) ((InstanceBinding) binding).getInstance().getClass()));
    } else if(binding instanceof LinkedKeyBinding) {
        return targettype(injector,injector.getBinding(((LinkedKeyBinding) binding).getLinkedKey()));
    } else if(binding instanceof ExposedBinding) {
        return targettype(((ExposedBinding) binding).getPrivateElements().getInjector(),binding.getKey());
    }
    return Optional.empty();
}
项目: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_linked_key() {
  given(module = new AbstractModule() {
    @Override
    protected void configure() {
      bind(Interface.class).to(Implementation.class);
    }
  });
  given(injector = Guice.createInjector(module));
  when(injector.getBinding(Interface.class));
  thenReturned(instanceOf(LinkedKeyBinding.class));
}
项目:guice    文件:DefaultEdgeCreator.java   
/**
 * Visitor for {@link LinkedKeyBinding}. This is the standard {@link Binding} you get from
 * binding an interface class to an implementation class. We draw a {@link BindingEdge} from the
 * interface node to the node of the implementing class.
 */
@Override
public Collection<Edge> visit(LinkedKeyBinding<?> binding) {
  return ImmutableList.<Edge>of(
      new BindingEdge(
          NodeId.newTypeId(binding.getKey()),NodeId.newTypeId(binding.getLinkedKey()),BindingEdge.Type.norMAL));
}
项目:guice    文件:TransitiveDependencyVisitorTest.java   
public void testVisitLinkedKey() {
  Binding<?> binding = getBinding(Key.get(Interface.class),new LinkedKeyModule());
  Collection<Key<?>> dependencies = visitor.visit((LinkedKeyBinding<?>) binding);

  // Dependency should be to the class this interface is bound to.
  assertDependencies(dependencies,Key.get(ConstructedClass.class));
}
项目:guice    文件:LinkedBindingImpl.java   
@Override
public String toString() {
  return MoreObjects.toStringHelper(LinkedKeyBinding.class)
      .add("key",getKey())
      .add("source",getSource())
      .add("scope",getscoping())
      .add("target",targetKey)
      .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 testVisitLinkedKey() {
  Binding<?> binding = getBinding(Key.get(Interface.class),Key.get(ConstructedClass.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    文件:LinkedBindingImpl.java   
@Override public String toString() {
  return Objects.toStringHelper(LinkedKeyBinding.class)
      .add("key",targetKey)
      .toString();
}
项目:google-guice    文件:TransitiveDependencyVisitorTest.java   
public void testVisitLinkedKey() {
  Binding<?> binding = getBinding(Key.get(Interface.class),Key.get(ConstructedClass.class));
}
项目:google-guice    文件:LinkedBindingImpl.java   
@Override public String toString() {
  return Objects.toStringHelper(LinkedKeyBinding.class)
      .add("key",targetKey)
      .toString();
}
项目:ProjectAres    文件:BindingtargettypeResolver.java   
@Override
public Optional<TypeLiteral<?>> visit(LinkedKeyBinding<?> binding) {
    // Delegate to the binding for the target type
    return injector.getBinding(binding.getLinkedKey()).acceptTargetVisitor(this);
}
项目:ProjectAres    文件:DependencyCollector.java   
@Override
public Object visit(LinkedKeyBinding<? extends T> linkedKeyBinding) {
    requireKey(linkedKeyBinding.getLinkedKey());
    return super.visit(linkedKeyBinding);
}
项目:ProjectAres    文件:Scoper.java   
@Override
public Void visit(LinkedKeyBinding<? extends T> binding) {
    scope(binding,rebind(binding).to(binding.getLinkedKey()));
    return null;
}
项目:Equella    文件:DependencyAnalyzer.java   
@Override
public Void visit(LinkedKeyBinding<? extends Object> linkedKeyBinding)
{
    analyzeImplementation(linkedKeyBinding.getLinkedKey().getTypeLiteral(),false);
    return null;
}
项目:google-gin    文件:GuiceBindingVisitor.java   
public Void visit(LinkedKeyBinding<? extends T> linkedKeyBinding) {
  Context context = Context.forElement(linkedKeyBinding);
  bindingsCollection.addBinding(targetKey,bindingFactory.getBindClassBinding(linkedKeyBinding.getLinkedKey(),targetKey,context));
  return null;
}
项目:guice    文件:TransitiveDependencyVisitor.java   
@Override
public Collection<Key<?>> visit(LinkedKeyBinding<?> binding) {
  return ImmutableSet.<Key<?>>of(binding.getLinkedKey());
}
项目:guice    文件:Indexer.java   
@Override
public Indexer.IndexedBinding visit(LinkedKeyBinding<? extends Object> binding) {
  return new Indexer.IndexedBinding(
      binding,BindingType.LINKED_KEY,scope(binding),binding.getLinkedKey());
}
项目:papaya    文件:ResolvedBinding.java   
@Override
public ResolvedBinding<T> visit(LinkedKeyBinding<? extends T> linkedKeyBinding) {
  return traverse(linkedKeyBinding.getLinkedKey());
}
项目:guice-old    文件:TransitiveDependencyVisitor.java   
@Override public Collection<Key<?>> visit(LinkedKeyBinding<?> binding) {
  return ImmutableSet.<Key<?>>of(binding.getLinkedKey());
}
项目:guice-old    文件:DefaultEdgeCreator.java   
/**
 * Visitor for {@link LinkedKeyBinding}. This is the standard {@link Binding} you get from
 * binding an interface class to an implementation class. We  draw a {@link BindingEdge} from
 * the interface node to the node of the implementing class.
 */
@Override public Collection<Edge> visit(LinkedKeyBinding<?> binding) {
  return ImmutableList.<Edge>of(new BindingEdge(NodeId.newTypeId(binding.getKey()),BindingEdge.Type.norMAL));
}
项目:google-guice    文件:TransitiveDependencyVisitor.java   
@Override public Collection<Key<?>> visit(LinkedKeyBinding<?> binding) {
  return ImmutableSet.<Key<?>>of(binding.getLinkedKey());
}
项目:google-guice    文件:DefaultEdgeCreator.java   
/**
 * Visitor for {@link LinkedKeyBinding}. This is the standard {@link Binding} you get from
 * binding an interface class to an implementation class. We  draw a {@link BindingEdge} from
 * the interface node to the node of the implementing class.
 */
@Override public Collection<Edge> visit(LinkedKeyBinding<?> binding) {
  return ImmutableList.<Edge>of(new BindingEdge(NodeId.newTypeId(binding.getKey()),BindingEdge.Type.norMAL));
}
项目:google-guice    文件:SpiUtils.java   
@SuppressWarnings("unchecked")
private static <T> void setInjectorTest(Key<T> setKey,TypeLiteral<?> elementType,Iterable<? extends Module> modules,boolean allowDuplicates,int otherMultibindings,BindResult... results) {
  Injector injector = Guice.createInjector(modules);
  Visitor<T> visitor = new Visitor<T>();
  Binding<T> binding = injector.getBinding(setKey);
  MultibinderBinding<T> multibinder = (MultibinderBinding<T>)binding.acceptTargetVisitor(visitor);
  assertNotNull(multibinder);
  assertEquals(elementType,multibinder.getElementTypeLiteral());
  assertEquals(allowDuplicates,multibinder.permitsDuplicates());
  List<Binding<?>> elements = Lists.newArrayList(multibinder.getElements());
  List<BindResult> bindResults = Lists.newArrayList(results);
  assertEquals("wrong bind elements,expected: " + bindResults + ",but was: " + multibinder.getElements(),bindResults.size(),elements.size());

  for(BindResult result : bindResults) {
    Binding found = null;
    for(Binding item : elements) {
      switch (result.type) {
      case INSTANCE:
        if (item instanceof InstanceBinding
            && ((InstanceBinding) item).getInstance().equals(result.instance)) {
          found = item;
        }
        break;
      case LINKED:
        if (item instanceof LinkedKeyBinding
            && ((LinkedKeyBinding) item).getKey().equals(result.key)) {
          found = item;
        }
        break;
      case PROVIDER_INSTANCE:
        if (item instanceof ProviderInstanceBinding
            && ((ProviderInstanceBinding) item).getProviderInstance().get().equals(
                result.instance)) {
          found = item;
        }
        break;
      }
    }
    if(found == null) {
      fail("Could not find element: " + result + " in remaining elements: " + elements);
    } else {
      elements.remove(found);
    }
  }

  if(!elements.isEmpty()) {
    fail("Found all elements of: " + bindResults + ",but more were left over: " + elements);
  }

  Set<Binding> setofElements = new HashSet<Binding>(multibinder.getElements()); 

  List<Object> otherMultibinders = Lists.newArrayList();
  List<Binding> otherContains = Lists.newArrayList();
  for(Binding b : injector.getAllBindings().values()) {
    boolean contains = multibinder.containsElement(b);
    Object visited = b.acceptTargetVisitor(visitor);
    if(visited != null) {
      if(visited.equals(multibinder)) {
        assertTrue(contains);
      } else {
        otherMultibinders.add(visited);
      }
    } else if(setofElements.contains(b)) {
      assertTrue(contains);
    } else if(contains) {
      otherContains.add(b);
    }
  }

  if(allowDuplicates) {
    assertEquals("contained more than it should: " + otherContains,1,otherContains.size());
  } else {
    assertTrue("contained more than it should: " + otherContains,otherContains.isEmpty());
  }
  assertEquals("other multibindings found: " + otherMultibinders,otherMultibindings,otherMultibinders.size());

}

com.google.inject.spi.ProviderKeyBinding的实例源码

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),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",providerKey)
      .toString();
}
项目:google-guice    文件:TransitiveDependencyVisitorTest.java   
public void testVisitProviderKey() {
  Binding<?> binding = getBinding(Key.get(ConstructedClass.class),Key.get(ConstructedClassprovider.class));
}
项目:google-guice    文件:LinkedProviderBindingImpl.java   
@Override public String toString() {
  return Objects.toStringHelper(ProviderKeyBinding.class)
      .add("key",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()),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)},BindingEdge.Type.PROVIDER));
}

今天的关于emacs keybinding编译C文件emacs如何编译的分享已经结束,谢谢您的关注,如果想了解更多关于c# – KeyBinding – RelayCommand位于xaml.cs中、com.google.inject.multibindings.MapBinderBinding的实例源码、com.google.inject.spi.LinkedKeyBinding的实例源码、com.google.inject.spi.ProviderKeyBinding的实例源码的相关知识,请在本站进行查询。

本文标签: