protected boolean internalResolveDependencies(Controller controller, ControllerState state) { boolean resolved = true; Set<DependencyItem> items = getUnresolvedDependencies(state); if (items.isEmpty() == false) { for (DependencyItem item : items) { if (item.resolve(controller) == false) resolved = false; } } if (tracking) { items = getSemiResolvedDependencies(state); if (items.isEmpty() == false) { for (DependencyItem item : items) { if (item.resolve(controller) == false) resolved = false; } } } return resolved; }
/** * Add dependency. * * @param controller the controller * @param context changed context * @param isInstallPhase install or uninstall phase */ protected void addDependency(Controller controller, ControllerContext context, boolean isInstallPhase) { if (owner instanceof ControllerContext) { ControllerContext co = (ControllerContext)owner; DependencyItem dependency = createDependencyItem(co); if (dependency != null && dependency.resolve(controller)) { context.getDependencyInfo().addDependsOnMe(dependency); co.getDependencyInfo().addIDependOn(dependency); } } }