protected boolean isDependencyRequirementsMet() {
    DependencyFacet deps = origin.getFacet(DependencyFacet.class);
    for (Entry<Dependency, List<Dependency>> group : getRequiredDependencyOptions().entrySet()) {
      boolean satisfied = false;
      for (Dependency dependency : group.getValue()) {
        if (deps.hasEffectiveDependency(dependency)) {
          satisfied = true;
          break;
        }
      }

      if (!satisfied) return false;
    }
    return true;
  }
 private void addRequiredDependency() {
   boolean isInstalled = false;
   DependencyFacet dependencyFacet = origin.getFacet(DependencyFacet.class);
   for (Entry<Dependency, List<Dependency>> group : getRequiredDependencyOptions().entrySet()) {
     for (Dependency dependency : group.getValue()) {
       if (dependencyFacet.hasEffectiveDependency(dependency)) {
         isInstalled = true;
         break;
       }
     }
     if (!isInstalled) {
       installer.installManaged(origin, JREBORTH_DEPENDENCY);
       installer.install(origin, group.getKey());
     }
   }
 }