private void processProducerAndDisposerMethodsDependencies(final DependencyGraphBuilder builder, final Collection<MetaMethod> disposesMethods, final MetaMethod method, final Injectable producedInjectable) { final MetaParameter[] params = method.getParameters(); for (int i = 0; i < params.length; i++) { final MetaParameter param = params[i]; builder.addProducerParamDependency(producedInjectable, param.getType(), qualFactory.forSink(param), i, param); } final Collection<MetaMethod> matchingDisposes = getMatchingMethods(method, disposesMethods); if (matchingDisposes.size() > 1) { // TODO descriptive message with names of disposers found. throw new RuntimeException(); } else if (!matchingDisposes.isEmpty()) { addDisposerDependencies(producedInjectable, matchingDisposes.iterator().next(), builder); } }