private static <T> void createExternalResourceDependencies(Class<?> baseCls, Class<?> cls, Map<String, ExternalResourceDependency> dependencies) throws ResourceInitializationException { if (cls.getSuperclass() != null) { createExternalResourceDependencies(baseCls, cls.getSuperclass(), dependencies); } for (Field field : cls.getDeclaredFields()) { if (!ReflectionUtil.isAnnotationPresent(field, ExternalResource.class)) { continue; } ExternalResourceDependency dep = createExternalResourceDependency(field); if (dependencies.containsKey(dep.getKey())) { throw new ResourceInitializationException(new IllegalStateException("Key [" + dep.getKey() + "] may only be used on a single field.")); } dependencies.put(dep.getKey(), dep); } }
return ExternalResourceFactory.createExternalResourceDependency(key, api, !era.mandatory(), era.description());
aDesc, (ExternalResourceDependency[]) ArrayUtils.add(deps, createExternalResourceDependency(aKey, aApi, false, null)));
createExternalResourceDependency(aKey, aImpl, false, null)));