/** * Returns a set of integers that point to where in the Parameter array unmatched parameters exist. * @param container * @param matchingParameterList * @param assignedParameters {@link com.picocontainer.Parameter} for the current object being instantiated. * @return set of integers pointing to the index in the parameter array things went awry. */ private Set<AccessibleObjectParameterSet> matchParameters(final PicoContainer container, final List<Object> matchingParameterList, final AccessibleObjectParameterSet... assignedParameters) { Set<AccessibleObjectParameterSet> unmatchedParameters = new HashSet<AccessibleObjectParameterSet>(); for (AccessibleObject eachObject : injectionMembers) { AccessibleObjectParameterSet currentParameter = getParameterToUseForObject(eachObject, assignedParameters); if (currentParameter == null) { currentParameter = this.constructAccessibleObjectParameterSet(eachObject,new Parameter[] {constructDefaultComponentParameter()}); } if (!matchParameter(container, matchingParameterList, currentParameter)) { unmatchedParameters.add(currentParameter); } } return unmatchedParameters; }
/** * Returns a set of integers that point to where in the Parameter array unmatched parameters exist. * @param container * @param matchingParameterList * @param assignedParameters {@link com.picocontainer.Parameter} for the current object being instantiated. * @return set of integers pointing to the index in the parameter array things went awry. */ private Set<AccessibleObjectParameterSet> matchParameters(final PicoContainer container, final List<Object> matchingParameterList, final AccessibleObjectParameterSet... assignedParameters) { Set<AccessibleObjectParameterSet> unmatchedParameters = new HashSet<AccessibleObjectParameterSet>(); for (AccessibleObject eachObject : injectionMembers) { AccessibleObjectParameterSet currentParameter = getParameterToUseForObject(eachObject, assignedParameters); if (currentParameter == null) { currentParameter = this.constructAccessibleObjectParameterSet(eachObject,new Parameter[] {constructDefaultComponentParameter()}); } if (!matchParameter(container, matchingParameterList, currentParameter)) { unmatchedParameters.add(currentParameter); } } return unmatchedParameters; }
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; }