示例#1
0
 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");
 }