public static List<ProjectModule> getFlatListOfAllModules(List<ProjectModule> modules) {
   List<ProjectModule> ret = new ArrayList<ProjectModule>();
   for (ProjectModule module : modules) {
     ret.add(module);
     ret.addAll(getFlatListOfAllModules(module.getModules()));
   }
   return ret;
 }
 public ProjectModule getModuleForDependency(Dependency dependency) {
   final List<ProjectModule> allModules = getFlatListOfAllModules(config.getModules());
   for (ProjectModule module : allModules) {
     if (dependency.getGroupId().equals(module.getGroupId())
         && dependency.getArtifactId().equals(module.getArtifactId())) {
       return module;
     }
   }
   return null;
 }
 public List<ProjectModule> getDirectChildrenOfParent() {
   List<ProjectModule> ret = new ArrayList<ProjectModule>();
   final List<ProjectModule> modules = getFlatListOfAllModules(config.getModules());
   for (ProjectModule module : modules) {
     if (module.getParent() == null) {
       ret.add(module);
     }
   }
   return ret;
 }
 public ProjectModule getReleasableModule(ProjectModule dependency) {
   List<ProjectModule> dependenciesSorted = config.getModules();
   for (ProjectModule sortedDependency : dependenciesSorted) {
     if (sortedDependency.getGroupId().equals(dependency.getGroupId())
         && sortedDependency.getArtifactId().equals(dependency.getArtifactId())) {
       return sortedDependency;
     }
   }
   return null;
 }
 public ProjectModule getModuleForIdentifier(Identifier identifier) {
   final List<ProjectModule> allModules = getFlatListOfAllModules(config.getModules());
   for (ProjectModule module : allModules) {
     if (identifier.getGroupId().equals(module.getGroupId())
         && identifier.getArtifactId().equals(module.getArtifactId())) {
       return module;
     }
   }
   return null;
 }
 public static String createProjectIdentifier(ProjectModule module) {
   return createProjectIdentifier(module.getGroupId(), module.getArtifactId());
 }
 public String getFullPathFromBase(ProjectModule module, File baseDir) {
   String parent = module.getRelatedMavenProject().getFile().getParent();
   String replace = parent.toLowerCase().replace(baseDir.getPath().toLowerCase(), "");
   return replace;
 }