public static void processDependencies(final DependencyControl control,
final MetaClass metaClass,
final InjectionContext context) {
final GraphBuilder graphBuilder = context.getGraphBuilder();
MetaClass mc = metaClass;
do {
for (MetaField field : mc.getDeclaredFields()) {
if (context.isElementType(WiringElementType.InjectionPoint, field)) {
control.notifyDependency(field.getType());
for (MetaClass cls : fillInInterface(field.getType())) {
graphBuilder.addDependency(field.getType(), Dependency.on(cls));
}
}
}
for (MetaMethod method : mc.getDeclaredMethods()) {
if (context.isElementType(WiringElementType.InjectionPoint, method)) {
for (MetaParameter parm : method.getParameters()) {
control.notifyDependency(parm.getType());
for (MetaClass cls : fillInInterface(parm.getType())) {
graphBuilder.addDependency(parm.getType(), Dependency.on(cls));
}
}
}
}
for (MetaConstructor constructor : mc.getConstructors()) {
if (context.isElementType(WiringElementType.InjectionPoint, constructor)) {
for (MetaParameter parm : constructor.getParameters()) {
control.notifyDependency(parm.getType());
for (MetaClass cls : fillInInterface(parm.getType())) {
graphBuilder.addDependency(parm.getType(), Dependency.on(cls));
}
}
}
}
}