本文整理了Java中org.apache.cayenne.di.Key.get()
方法的一些代码示例,展示了Key.get()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Key.get()
方法的具体详情如下:
包路径:org.apache.cayenne.di.Key
类名称:Key
方法名:get
[英]Creates a key for a nameless binding of a given type.
[中]为给定类型的无名绑定创建键。
代码示例来源:origin: org.apache.cayenne/cayenne-di
@Override
public <T> Provider<T> getProvider(Class<T> type) throws DIRuntimeException {
return getProvider(Key.get(type));
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
static Key<?> getKeyForTypeAndGenericType(Class<?> type, Type genericType, String bindingName) {
if(List.class.isAssignableFrom(type)) {
Class<?> objectClass = parameterClass(genericType);
if(objectClass == null) {
objectClass = Object.class;
}
return Key.getListOf(objectClass, bindingName);
} else if(Map.class.isAssignableFrom(type)) {
Class<?>[] classes = DIUtil.allParametersClass(genericType);
if(classes == null) {
classes = new Class[]{Object.class, Object.class};
}
return Key.getMapOf(classes[0], classes[1], bindingName);
}
return Key.get(type, bindingName);
}
代码示例来源:origin: org.apache.cayenne.unpublished/cayenne-di-unpublished
public <T> ListBuilder<T> bindList(String bindingName) {
Class<?> listClass = List.class;
return new DefaultListBuilder<T>(
Key.get((Class<List<?>>) listClass, bindingName),
injector);
}
代码示例来源:origin: org.apache.cayenne.unpublished/cayenne-di-unpublished
public <T> MapBuilder<T> bindMap(String bindingName) {
Class<?> mapClass = Map.class;
return new DefaultMapBuilder<T>(Key.get(
(Class<Map<String, ?>>) mapClass,
bindingName), injector);
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
private Map<Key<? extends T>, Provider<? extends T>> createProviderMap(Collection<T> objects) {
Map<Key<? extends T>, Provider<? extends T>> keyProviderMap = new LinkedHashMap<>();
for (T object : objects) {
@SuppressWarnings("unchecked")
Class<? extends T> objectType = (Class<? extends T>) object.getClass();
keyProviderMap.put(
Key.get(objectType, String.valueOf(incrementer.getAndIncrement())),
createInstanceProvider(object));
}
return keyProviderMap;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@Override
public <T> BindingBuilder<T> bind(Class<T> interfaceType) {
return new DefaultBindingBuilder<>(Key.get(interfaceType), injector);
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@Override
public <T> DecoratorBuilder<T> decorate(Class<T> interfaceType) {
return new DefaultDecoratorBuilder<>(Key.get(interfaceType), injector);
}
代码示例来源:origin: org.apache.cayenne.unpublished/cayenne-di-unpublished
public <T> BindingBuilder<T> bind(Class<T> interfaceType) {
return new DefaultBindingBuilder<T>(Key.get(interfaceType), injector);
}
代码示例来源:origin: org.apache.cayenne.unpublished/cayenne-di-unpublished
public <T> Provider<T> getProvider(Class<T> type) throws ConfigurationException {
return getProvider(Key.get(type));
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@SuppressWarnings("unchecked")
@Override
public ListBuilder<T> addAfter(T value, Class<? extends T> afterType) {
Key<? extends T> key = Key.get((Class<? extends T>) value.getClass(),
String.valueOf(incrementer.getAndIncrement()));
findOrCreateListProvider().addAfter(key, createInstanceProvider(value), Key.get(afterType));
return this;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@SuppressWarnings("unchecked")
@Override
public ListBuilder<T> insertBefore(T value, Class<? extends T> beforeType) {
Key<? extends T> key = Key.get((Class<? extends T>) value.getClass(),
String.valueOf(incrementer.getAndIncrement()));
findOrCreateListProvider().insertBefore(key, createInstanceProvider(value), Key.get(beforeType));
return this;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@Override
public ListBuilder<T> addAfter(Class<? extends T> interfaceType, Class<? extends T> afterType) {
Provider<? extends T> provider = createTypeProvider(interfaceType);
findOrCreateListProvider().addAfter(Key.get(interfaceType), provider, Key.get(afterType));
return this;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@Override
public ListBuilder<T> insertBefore(Class<? extends T> interfaceType, Class<? extends T> beforeType) {
Provider<? extends T> provider = createTypeProvider(interfaceType);
findOrCreateListProvider().insertBefore(Key.get(interfaceType), provider, Key.get(beforeType));
return this;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@SuppressWarnings("unchecked")
@Override
public ListBuilder<T> add(T value) {
Key<? extends T> key = Key.get((Class<? extends T>) value.getClass(),
String.valueOf(incrementer.getAndIncrement()));
findOrCreateListProvider().add(key, createInstanceProvider(value));
return this;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@Override
public ListBuilder<T> add(Class<? extends T> interfaceType) {
Provider<? extends T> provider = createTypeProvider(interfaceType);
findOrCreateListProvider().add(Key.get(interfaceType), provider);
return this;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@Override
public ListBuilder<T> addAllAfter(Collection<T> values, Class<? extends T> afterType) {
findOrCreateListProvider().addAllAfter(createProviderMap(values), Key.get(afterType));
return this;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
@Override
public ListBuilder<T> insertAllBefore(Collection<T> values, Class<? extends T> beforeType) {
findOrCreateListProvider().insertAllBefore(createProviderMap(values), Key.get(beforeType));
return this;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
/**
* @since 4.0
*/
protected Object value(Field field, String bindingName) {
Class<?> fieldType = field.getType();
InjectionStack stack = injector.getInjectionStack();
if (Provider.class.equals(fieldType)) {
Class<?> objectClass = DIUtil.parameterClass(field.getGenericType());
if (objectClass == null) {
throw new DIRuntimeException("Provider field %s.%s of type %s must be "
+ "parameterized to be usable for injection", field.getDeclaringClass().getName(),
field.getName(), fieldType.getName());
}
return injector.getProvider(Key.get(objectClass, bindingName));
} else {
Key<?> key = DIUtil.getKeyForTypeAndGenericType(fieldType, field.getGenericType(), bindingName);
stack.push(key);
try {
return injector.getInstance(key);
} finally {
stack.pop();
}
}
}
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
protected <SubT extends E> Binding<SubT> findOrCreateBinding(Class<SubT> interfaceType) {
Key<SubT> key = Key.get(interfaceType);
Binding<SubT> binding = injector.getBinding(key);
if (binding == null) {
Provider<SubT> provider0 = new ConstructorInjectingProvider<>(interfaceType, injector);
Provider<SubT> provider1 = new FieldInjectingProvider<>(provider0, injector);
injector.putBinding(key, provider1);
binding = injector.getBinding(key);
}
return binding;
}
代码示例来源:origin: org.apache.cayenne/cayenne-di
protected Object value(Class<?> parameter, Type genericType, String bindingName, InjectionStack stack) {
if (Provider.class.equals(parameter)) {
Class<?> objectClass = DIUtil.parameterClass(genericType);
if (objectClass == null) {
throw new DIRuntimeException("Constructor provider parameter %s must be "
+ "parameterized to be usable for injection", parameter.getName());
}
return injector.getProvider(Key.get(objectClass, bindingName));
} else {
Key<?> key = DIUtil.getKeyForTypeAndGenericType(parameter, genericType, bindingName);
stack.push(key);
try {
return injector.getInstance(key);
} finally {
stack.pop();
}
}
}
内容来源于网络,如有侵权,请联系作者删除!