com.pmease.quickbuild.util
Class DependencyHelper

java.lang.Object
  extended by com.pmease.quickbuild.util.DependencyHelper

public class DependencyHelper
extends java.lang.Object


Constructor Summary
DependencyHelper()
           
 
Method Summary
static
<T extends Dependency>
java.util.Set<T>
getDependents(java.util.Map<java.lang.String,T> dependencyContext, T dependency)
          Get all objects directly depends on specified dependency in specified context.
static
<T extends Dependency>
boolean
hasTransitiveDependency(java.util.Map<java.lang.String,T> dependencyContext, T dependent, T dependency)
          Whether or not specified "dependent" object depends on specified "dependency" object transitively in specified "dependencyContext".
static
<T extends Dependency>
java.util.List<T>
sortDependencies(java.util.Map<java.lang.String,T> dependencyContext)
          Sort dependencies in context.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DependencyHelper

public DependencyHelper()
Method Detail

hasTransitiveDependency

public static <T extends Dependency> boolean hasTransitiveDependency(java.util.Map<java.lang.String,T> dependencyContext,
                                                                     T dependent,
                                                                     T dependency)
Whether or not specified "dependent" object depends on specified "dependency" object transitively in specified "dependencyContext".

Parameters:
dependencyContext - Map of dependency id to dependency object.
dependent - The object to check the transitive dependency against.
dependency - The object to define the transitive dependency. This should not be the same as the dependent object.
Returns:
true if "dependent" has a transitive "dependency", false otherwise.

getDependents

public static <T extends Dependency> java.util.Set<T> getDependents(java.util.Map<java.lang.String,T> dependencyContext,
                                                                    T dependency)
Get all objects directly depends on specified dependency in specified context.

Parameters:
dependencyContext - A map of dependency identifier to dependency
dependency - The dependency to look for dependents
Returns:
A set of objects who has a direct dependency to passed "dependency" param in specified "dependencyContext". An empty set will be returned if no objects depends on specified dependency.

sortDependencies

public static <T extends Dependency> java.util.List<T> sortDependencies(java.util.Map<java.lang.String,T> dependencyContext)
Sort dependencies in context. If "dependency1" depends on "dependency2", "dependency2" will appear before "dependency1" in the result list.

Parameters:
dependencyContext -
Returns:
Sorted dependency list with elements without dependencies appear before elements with dependencies.
Throws:
{@link - DependencyException} if circular dependencies are found in the context, or if some dependency object refers to non-existent dependencies in the context.


Copyright © 2005-2010 PMEase Inc. All Rights Reserved.