org.apache.cayenne.di.Key.get()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(7.4k)|赞(0)|评价(0)|浏览(74)

本文整理了Java中org.apache.cayenne.di.Key.get()方法的一些代码示例,展示了Key.get()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Key.get()方法的具体详情如下:
包路径:org.apache.cayenne.di.Key
类名称:Key
方法名:get

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();
    }
  }
}

相关文章

微信公众号

最新文章

更多