ParameterToAccessibleObjectPair[] getMatchingParameterListForMembers(final PicoContainer container) throws PicoCompositionException { if (initialized == false) { synchronized(this) { if (initialized == false) { initializeInjectionMembersAndTypeLists(); } } } final List<Object> matchingParameterList = new ArrayList<Object>(Collections.nCopies(injectionMembers.size(), null)); final Set<AccessibleObjectParameterSet> notMatchingParameters = matchParameters(container, matchingParameterList, parameters); final Set<Type> unsatisfiableDependencyTypes = new HashSet<Type>(); final List<AccessibleObject> unsatisfiableDependencyMembers = new ArrayList<AccessibleObject>(); for (int i = 0; i < matchingParameterList.size(); i++) { ParameterToAccessibleObjectPair param = (ParameterToAccessibleObjectPair)matchingParameterList.get(i); if (param == null || !param.isResolved()) { unsatisfiableDependencyTypes.add(injectionTypes[i]); unsatisfiableDependencyMembers.add(injectionMembers.get(i)); } } if (unsatisfiableDependencyTypes.size() > 0) { unsatisfiedDependencies(container, unsatisfiableDependencyTypes, unsatisfiableDependencyMembers); } else if (notMatchingParameters.size() > 0 && this.requireConsumptionOfAllParameters) { throw new PicoCompositionException("Following parameters do not match any of the injectionMembers for " + getComponentImplementation() + ": " + notMatchingParameters.toString()); } return matchingParameterList.toArray(new ParameterToAccessibleObjectPair[matchingParameterList.size()]); }
ParameterToAccessibleObjectPair[] getMatchingParameterListForMembers(final PicoContainer container) throws PicoCompositionException { if (initialized == false) { synchronized(this) { if (initialized == false) { initializeInjectionMembersAndTypeLists(); } } } final List<Object> matchingParameterList = new ArrayList<Object>(Collections.nCopies(injectionMembers.size(), null)); final Set<AccessibleObjectParameterSet> notMatchingParameters = matchParameters(container, matchingParameterList, parameters); final Set<Type> unsatisfiableDependencyTypes = new HashSet<Type>(); final List<AccessibleObject> unsatisfiableDependencyMembers = new ArrayList<AccessibleObject>(); for (int i = 0; i < matchingParameterList.size(); i++) { ParameterToAccessibleObjectPair param = (ParameterToAccessibleObjectPair)matchingParameterList.get(i); if (param == null || !param.isResolved()) { unsatisfiableDependencyTypes.add(injectionTypes[i]); unsatisfiableDependencyMembers.add(injectionMembers.get(i)); } } if (unsatisfiableDependencyTypes.size() > 0) { unsatisfiedDependencies(container, unsatisfiableDependencyTypes, unsatisfiableDependencyMembers); } else if (notMatchingParameters.size() > 0 && this.requireConsumptionOfAllParameters) { throw new PicoCompositionException("Following parameters do not match any of the injectionMembers for " + getComponentImplementation() + ": " + notMatchingParameters.toString()); } return matchingParameterList.toArray(new ParameterToAccessibleObjectPair[matchingParameterList.size()]); }