in core/container/src/main/java/org/wildfly/swarm/container/runtime/ConfigurableManager.java [640:688]
protected Method getKeyedFactoryMethod(Object instance, Field field) {
SubresourceInfo anno = field.getAnnotation(SubresourceInfo.class);
if (anno != null) {
String name = anno.value();
Method[] methods = getSortedMethods(instance.getClass());
for (Method method : methods) {
if (!method.getName().equals(name)) {
continue;
}
if (!Modifier.isPublic(method.getModifiers())) {
continue;
}
if (Modifier.isStatic(method.getModifiers())) {
continue;
}
if (method.getParameterCount() != 2) {
continue;
}
if (method.getParameterTypes()[0] != String.class) {
continue;
}
if (method.getParameterTypes()[1].getAnnotation(FunctionalInterface.class) == null) {
continue;
}
boolean acceptMethodFound = false;
for (Method paramMethod : method.getParameterTypes()[1].getMethods()) {
if (paramMethod.getName().equals(ACCEPT)) {
acceptMethodFound = true;
break;
}
}
if (!acceptMethodFound) {
continue;
}
return method;
}
}
return null;
}