package husacct.define.presentation.registry; import husacct.define.domain.softwareunit.SoftwareUnitDefinition; import husacct.define.domain.warningmessages.CustomWarningMessage; import husacct.define.domain.warningmessages.NotmappedWarningMessage; import husacct.define.domain.warningmessages.WarningMessageContainer; import husacct.define.task.components.AnalyzedModuleComponent; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class AnalyzedUnitRegistry { private Map<String,AnalyzedModuleComponent> allAnalyzedUnits = new LinkedHashMap<String,AnalyzedModuleComponent>(); private Map<String,String> importedUniqnames = new LinkedHashMap<String, String>(); public AnalyzedUnitRegistry() { } public void registerAnalyzedUnit(AnalyzedModuleComponent unit) { allAnalyzedUnits.put(unit.getUniqueName(),unit); } public int getUnitsCount() { return 0; } public void reset() { allAnalyzedUnits = new LinkedHashMap<String,AnalyzedModuleComponent>(); importedUniqnames = new LinkedHashMap<String, String>(); } public AnalyzedModuleComponent getAnalyzedUnit(SoftwareUnitDefinition unit) { return allAnalyzedUnits.get(unit.getName()); } public AnalyzedModuleComponent findSoftUnit(String uniqname, List<AnalyzedModuleComponent> list) { for (AnalyzedModuleComponent unit : list) { if (uniqname.equals(unit.getUniqueName())) { return unit; } } return new AnalyzedModuleComponent(); } public WarningMessageContainer getNotMappedUnits() { WarningMessageContainer classesroot = new WarningMessageContainer(new CustomWarningMessage("Class")); WarningMessageContainer packagesroot = new WarningMessageContainer(new CustomWarningMessage("Package")); WarningMessageContainer interfaceroot = new WarningMessageContainer(new CustomWarningMessage("Interface")); WarningMessageContainer enumroot = new WarningMessageContainer(new CustomWarningMessage("Enum")); for (AnalyzedModuleComponent unit : allAnalyzedUnits.values()) { if((!unit.isMapped()&& !unit.isAncestorsMapped())){ String type = unit.getType().toLowerCase(); switch (type) { case "class": classesroot.addChild(new WarningMessageContainer( new NotmappedWarningMessage(unit))); break; case "package": packagesroot.addChild(new WarningMessageContainer( new NotmappedWarningMessage(unit))); break; case "interface": interfaceroot.addChild(new WarningMessageContainer( new NotmappedWarningMessage(unit))); break; case "enum": enumroot.addChild(new WarningMessageContainer( new NotmappedWarningMessage(unit))); break; default: break; } } } WarningMessageContainer notMapped = new WarningMessageContainer(new CustomWarningMessage("NotMapped")); ((CustomWarningMessage)packagesroot.getvalue()).setDecription(packagesroot.getchildren().size()); ((CustomWarningMessage)classesroot.getvalue()).setDecription(classesroot.getchildren().size()); ((CustomWarningMessage)interfaceroot.getvalue()).setDecription(interfaceroot.getchildren().size()); ((CustomWarningMessage)enumroot.getvalue()).setDecription(enumroot.getchildren().size()); notMapped.addChild(packagesroot); notMapped.addChild(classesroot); notMapped.addChild(interfaceroot); notMapped.addChild(enumroot); ((CustomWarningMessage)notMapped.getvalue()).setDecription( notMapped.getAllWarningsCount()); return notMapped; } public AnalyzedModuleComponent getAnalyzedUnit(String uniqueName) { return allAnalyzedUnits.get(uniqueName); } public ArrayList<AnalyzedModuleComponent> getAnalyzedUnit(List<String> data) { ArrayList<AnalyzedModuleComponent> units = new ArrayList<AnalyzedModuleComponent>(); for (String uniqNames : data) { units.add(allAnalyzedUnits.get(uniqNames)); } return units; } public void registerImportedUnit(SoftwareUnitDefinition unit) { importedUniqnames.put(unit.getName(), unit.getName()); } public List<String> getimportedUnits() { List<String> unignames= new ArrayList<String>(); for (String name : importedUniqnames.values()) { unignames.add(name); } importedUniqnames= new LinkedHashMap<String, String>(); return unignames; } }