package husacct.define.domain.services; import husacct.ServiceProvider; import husacct.define.domain.SoftwareArchitecture; import husacct.define.domain.module.ModuleStrategy; import husacct.define.domain.services.stateservice.StateService; import husacct.define.domain.softwareunit.SoftwareUnitDefinition; import husacct.define.domain.softwareunit.SoftwareUnitDefinition.Type; import husacct.define.task.DefinitionController; import husacct.define.task.JtreeController; import husacct.define.task.components.AnalyzedModuleComponent; import java.util.ArrayList; import org.apache.log4j.Logger; public class SoftwareUnitDefinitionDomainService { public void addSoftwareUnitsToModule(long moduleId, ArrayList<AnalyzedModuleComponent> units) { ModuleStrategy module = SoftwareArchitecture.getInstance().getModuleById(moduleId); if (module != null) { try { for (AnalyzedModuleComponent softwareunit : units) { Type type = Type.valueOf(softwareunit.getType()); SoftwareUnitDefinition unit = new SoftwareUnitDefinition(softwareunit.getUniqueName(), type); module.addSUDefinition(unit); JtreeController.instance().removeTreeItem(softwareunit); } WarningMessageService.getInstance().processModule(module); } catch (Exception e) { Logger.getLogger(SoftwareUnitDefinitionDomainService.class).error(e.getMessage()); // System.out.println(e.getStackTrace()); } ServiceProvider.getInstance().getDefineService().notifyServiceListeners(); } } public ArrayList<SoftwareUnitDefinition> getSoftwareUnit(long moduleId) { ArrayList<SoftwareUnitDefinition> softwareUnits = null; ModuleStrategy module = SoftwareArchitecture.getInstance().getModuleById(moduleId); if (module != null) { softwareUnits = module.getUnits(); } return softwareUnits; } // Returns null, if no SoftwareUnit with softwareUnitName is mapped to a ModuleStrategy public SoftwareUnitDefinition getSoftwareUnitByName(String softwareUnitName) { ModuleStrategy module = SoftwareArchitecture.getInstance().getModuleBySoftwareUnit(softwareUnitName); SoftwareUnitDefinition softwareUnit = null; if (module != null){ softwareUnit = module.getSoftwareUnitByName(softwareUnitName); } return softwareUnit; } public ArrayList<String> getSoftwareUnitNames(long moduleId) { ArrayList<String> softwareUnitNames = new ArrayList<String>(); try { ModuleStrategy module = SoftwareArchitecture.getInstance().getModuleById(moduleId); if (module != null) { ArrayList<SoftwareUnitDefinition> softwareUnits = module.getUnits(); for (SoftwareUnitDefinition unit : softwareUnits) { softwareUnitNames.add(unit.getName()); } } } catch (Exception e) { Logger.getLogger(SoftwareUnitDefinitionDomainService.class).error(e.getMessage()); } return softwareUnitNames; } // Returns "", if no SoftwareUnit with softwareUnitName is mapped to a ModuleStrategy public String getSoftwareUnitType(String softwareUnitName) { SoftwareUnitDefinition unit = getSoftwareUnitByName(softwareUnitName); String softwareUnitType = ""; if (unit != null){ softwareUnitType = unit.getType().toString(); } return softwareUnitType; } public void removeSoftwareUnit(long moduleId, String softwareUnit) { ModuleStrategy module = SoftwareArchitecture.getInstance().getModuleById(moduleId); if (module != null){ SoftwareUnitDefinition unit = getSoftwareUnitByName(softwareUnit); if (unit != null){ module.removeSUDefintion(unit); StateService.instance().removeSoftwareUnit(module, unit); ServiceProvider.getInstance().getDefineService().notifyServiceListeners(); } } } public void removeSoftwareUnit(long moduleId, ArrayList<AnalyzedModuleComponent> data) { ModuleStrategy module = SoftwareArchitecture.getInstance().getModuleById(moduleId); if (module != null){ for (AnalyzedModuleComponent units : data) { SoftwareUnitDefinition unit = getSoftwareUnitByName(units.getUniqueName()); if(unit != null){ module.removeSUDefintion(unit); WarningMessageService.getInstance().processModule(module); StateService.instance().removeSoftwareUnit(module, unit); ServiceProvider.getInstance().getDefineService().notifyServiceListeners(); } } } } public void changeSoftwareUnit(long from, long to, ArrayList<String> names) { SoftwareArchitecture.getInstance().changeSoftwareUnit(from,to,names); } }