//Entry point for TypeAbstractBinding to ask for a class.... //This method does so without trying to resolve the class first, which is important if we are called from within a resolution public object buildClass(TypeDefinition typeDefinition) { object instance; if (typeDefinition.builtIn) { instance = typeDefinition.constructorApply(null); } else { var constructorPoints = typeDefinition.getConstructorParameters(); instance = buildFromInjectionInfo(typeDefinition, constructorPoints); var fieldPoints = typeDefinition.getInjectionFields(); injectMemberPropertiesFromInjectionInfo(instance, fieldPoints); var methodPoints = typeDefinition.getInjectionMethods(); injectMembersMethodsFromInjectionInfo(instance, methodPoints); } return instance; }
object buildFromInjectionInfo(TypeDefinition dependencyTypeDefinition, JsArray<InjectionPoint> constructorPoints) { var args = new JsArray<object>(); for (int i = 0; i < constructorPoints.length; i++) { args[i] = resolveDependency(classResolver.resolveClassName(constructorPoints[i].t)); } object obj = dependencyTypeDefinition.constructorApply(args); return obj; }