private DependencyEngine findEngine(Arguments arguments) { DependencyEngine engineMaybe = null; boolean ambiguousSituation = false; for (DependencyEngine dependencyEngine : dependencyEngines) { if (dependencyEngine == null) continue; if (dependencyEngine.getArgumentsMatchThisEngine(arguments) == DependencyEngine.ArgumentsMatch.yes) return dependencyEngine; if (dependencyEngine.getArgumentsMatchThisEngine(arguments) == DependencyEngine.ArgumentsMatch.maybe) { if (engineMaybe == null) { engineMaybe = dependencyEngine; } else { ambiguousSituation = true; } } } if (!ambiguousSituation && engineMaybe != null) { return engineMaybe; } throw new DtException("unable to determine the dependency engine to be utilized"); }