protected List<Method> getInjectorMethods() { Class<?> toIntrospect = null; //Method[] methods = new Method[0]; try { //methods = super.getComponentImplementation().getMethods(); toIntrospect = super.getComponentImplementation(); } catch (AmbiguousComponentResolutionException e) { e.setComponent(getComponentImplementation()); throw e; } if (toIntrospect == null) { throw new NullPointerException("No implementation class defined for " + this); } HashMap<String, Set<Method>> allMethodsAnalyzed = new HashMap<String,Set<Method>>(); List<Method> methodz = new ArrayList<Method>(); recursiveCheckInjectorMethods(toIntrospect, toIntrospect, methodz, allMethodsAnalyzed); //Inject in JSR330 compliant order. Collections.sort(methodz, new JSR330AccessibleObjectOrderComparator()); return methodz; }
protected List<Method> getInjectorMethods() { Class<?> toIntrospect = null; //Method[] methods = new Method[0]; try { //methods = super.getComponentImplementation().getMethods(); toIntrospect = super.getComponentImplementation(); } catch (AmbiguousComponentResolutionException e) { e.setComponent(getComponentImplementation()); throw e; } if (toIntrospect == null) { throw new NullPointerException("No implementation class defined for " + this); } HashMap<String, Set<Method>> allMethodsAnalyzed = new HashMap<String,Set<Method>>(); List<Method> methodz = new ArrayList<Method>(); recursiveCheckInjectorMethods(toIntrospect, toIntrospect, methodz, allMethodsAnalyzed); //Inject in JSR330 compliant order. Collections.sort(methodz, new JSR330AccessibleObjectOrderComparator()); return methodz; }
protected Object[] getMemberArguments(final PicoContainer container, final AccessibleObject member, final Type[] parameterTypes, final Annotation[] bindings, final Type into) { boxParameters(parameterTypes); //Object[] result = new Object[parameterTypes.length]; List<Object> result = new ArrayList<Object>(parameterTypes.length); AccessibleObjectParameterSet objectParameterSet = this.getParameterToUseForObject(member, parameters); Parameter[] currentParameters = objectParameterSet.getParams(); for (int i = 0; i < currentParameters.length; i++) { try { Object parameterResult = getParameter(container, member, i, parameterTypes[i], bindings[i], currentParameters[i], null, into); if (parameterResult != Parameter.NULL_RESULT) { result.add(parameterResult); } } catch (AmbiguousComponentResolutionException e) { e.setComponent(getComponentImplementation()); e.setMember(member); e.setParameterNumber(i); throw e; } } return result.toArray(); }
private boolean matchParameter(final PicoContainer container, final List<Object> matchingParameterList, final AccessibleObjectParameterSet parameter) { for (int j = 0; j < injectionTypes.length; j++) { Object o = matchingParameterList.get(j); AccessibleObject targetInjectionMember = getTargetInjectionMember(injectionMembers, j, parameter.getParams()[0]); if (targetInjectionMember == null) { return false; } AccessibleObjectParameterSet paramToUse = getParameterToUseForObject(targetInjectionMember, parameter); if (paramToUse == null) { paramToUse = constructAccessibleObjectParameterSet(targetInjectionMember); } try { if (o == null && paramToUse.getParams()[0].resolve(container, this, null, injectionTypes[j], makeParameterNameImpl(targetInjectionMember), useNames(), bindings[j]).isResolved()) { matchingParameterList.set(j, new ParameterToAccessibleObjectPair(targetInjectionMember, paramToUse)); return true; } } catch (AmbiguousComponentResolutionException e) { e.setComponent(getComponentImplementation()); e.setMember(injectionMembers.get(j)); throw e; } } return false; }
private boolean matchParameter(final PicoContainer container, final List<Object> matchingParameterList, final AccessibleObjectParameterSet parameter) { for (int j = 0; j < injectionTypes.length; j++) { Object o = matchingParameterList.get(j); AccessibleObject targetInjectionMember = getTargetInjectionMember(injectionMembers, j, parameter.getParams()[0]); if (targetInjectionMember == null) { return false; } AccessibleObjectParameterSet paramToUse = getParameterToUseForObject(targetInjectionMember, parameter); if (paramToUse == null) { paramToUse = constructAccessibleObjectParameterSet(targetInjectionMember); } try { if (o == null && paramToUse.getParams()[0].resolve(container, this, null, injectionTypes[j], makeParameterNameImpl(targetInjectionMember), useNames(), bindings[j]).isResolved()) { matchingParameterList.set(j, new ParameterToAccessibleObjectPair(targetInjectionMember, paramToUse)); return true; } } catch (AmbiguousComponentResolutionException e) { e.setComponent(getComponentImplementation()); e.setMember(injectionMembers.get(j)); throw e; } } return false; }
protected Object[] getMemberArguments(final PicoContainer container, final AccessibleObject member, final Type[] parameterTypes, final Annotation[] bindings, final Type into) { boxParameters(parameterTypes); //Object[] result = new Object[parameterTypes.length]; List<Object> result = new ArrayList<Object>(parameterTypes.length); AccessibleObjectParameterSet objectParameterSet = this.getParameterToUseForObject(member, parameters); Parameter[] currentParameters = objectParameterSet.getParams(); for (int i = 0; i < currentParameters.length; i++) { try { Object parameterResult = getParameter(container, member, i, parameterTypes[i], bindings[i], currentParameters[i], null, into); if (parameterResult != Parameter.NULL_RESULT) { result.add(parameterResult); } } catch (AmbiguousComponentResolutionException e) { e.setComponent(getComponentImplementation()); e.setMember(member); e.setParameterNumber(i); throw e; } } return result.toArray(); }
private CtorAndAdapters<T> getGreediestSatisfiableConstructor(final PicoContainer guardedContainer, final Class<? extends T> impl) { CtorAndAdapters<T> ctor = null; try { if (chosenConstructor == null) { ctor = getGreediestSatisfiableConstructor(guardedContainer); } if (rememberChosenConstructor) { if (chosenConstructor == null) { chosenConstructor = ctor; } else { ctor = chosenConstructor; } } } catch (AmbiguousComponentResolutionException e) { e.setComponent(getComponentImplementation()); throw e; } return ctor; }
private CtorAndAdapters<T> getGreediestSatisfiableConstructor(final PicoContainer guardedContainer, final Class<? extends T> impl) { CtorAndAdapters<T> ctor = null; try { if (chosenConstructor == null) { ctor = getGreediestSatisfiableConstructor(guardedContainer); } if (rememberChosenConstructor) { if (chosenConstructor == null) { chosenConstructor = ctor; } else { ctor = chosenConstructor; } } } catch (AmbiguousComponentResolutionException e) { e.setComponent(getComponentImplementation()); throw e; } return ctor; }