@Override public AnalysedModuleDTO getParentModuleForModule(String child) { generateModule(); if (analysed.get(child) == null) { return new AnalysedModuleDTO("", "", "", ""); } if (child.indexOf(".") == -1) { return new AnalysedModuleDTO("", "", "", ""); } String[] pathSplitted = child.split("\\."); String parentPath = pathSplitted[0]; for (int iterator = 1; iterator < pathSplitted.length - 1; iterator++) { if (iterator != pathSplitted.length - 1) { parentPath += "." + pathSplitted[iterator]; } } AnalysedModuleDTO parentModule = (AnalysedModuleDTO) analysed.get(parentPath).get(0); for (AnalysedModuleDTO m : parentModule.subModules) { m.subModules = new ArrayList<AnalysedModuleDTO>(); } return parentModule; }
@Override public AnalysedModuleDTO[] getChildModulesInModule(String from, int depth) { generateModule(); int currentDepth = 0; if (depth == 0) { AnalysedModuleDTO[] modules = this.getChildModulesInModule(from); return modules; } if (depth == 1) { AnalysedModuleDTO[] modules = this.getChildModulesInModule(from); for (AnalysedModuleDTO module : modules) { module.subModules = new ArrayList<AnalysedModuleDTO>(); } return modules; } if (analysed.get(from) == null) { return new AnalysedModuleDTO[0]; } AnalysedModuleDTO getElement = (AnalysedModuleDTO) analysed.get(from).get(0); if (getElement.subModules == null) { return new AnalysedModuleDTO[0]; } AnalysedModuleDTO[] modules = new AnalysedModuleDTO[getElement.subModules.size()]; int iterator = 0; for (AnalysedModuleDTO module : getElement.subModules) { modules[iterator] = module; iterator++; } currentDepth = 1; AnalysedModuleDTO[] rightDepthModules = modules; while (currentDepth <= depth) { rightDepthModules = NextDepth(rightDepthModules); currentDepth++; } for (AnalysedModuleDTO m : rightDepthModules) { m.subModules = new ArrayList<AnalysedModuleDTO>(); } return modules; }
@Override public AnalysedModuleDTO[] getRootModules() { AnalysedModuleDTO rootElement = (AnalysedModuleDTO) analysed.get("").get(0); AnalysedModuleDTO[] returnModules = new AnalysedModuleDTO[rootElement.subModules.size()]; int iterator = 0; for (AnalysedModuleDTO module : rootElement.subModules) { returnModules[iterator] = module; module.subModules = new ArrayList<AnalysedModuleDTO>(); iterator++; } return returnModules; }