package husacct.define.task; import husacct.define.analyzer.AnalyzedUnitComparator; import husacct.define.domain.module.ModuleStrategy; import husacct.define.domain.services.WarningMessageService; import husacct.define.domain.services.stateservice.StateService; import husacct.define.domain.softwareunit.SoftwareUnitDefinition; import husacct.define.domain.warningmessages.WarningMessageContainer; import husacct.define.presentation.registry.AnalyzedUnitRegistry; import husacct.define.task.components.AnalyzedModuleComponent; import java.util.ArrayList; import java.util.List; public class JtreeStateEngine { private AnalyzedUnitComparator analyzerComparator = new AnalyzedUnitComparator(); private AnalyzedUnitRegistry allUnitsRegistry = new AnalyzedUnitRegistry(); public JtreeStateEngine() { } public void removeSoftwareUnit(ModuleStrategy module, SoftwareUnitDefinition unit) { AnalyzedModuleComponent analyzeModuleTobeRestored = allUnitsRegistry.getAnalyzedUnit(unit); //analyzeModuleTobeRestored.detach(); ArrayList<AnalyzedModuleComponent> data = new ArrayList<AnalyzedModuleComponent>(); if(analyzeModuleTobeRestored !=null){ data.add(analyzeModuleTobeRestored); StateService.instance().allUnitsRegistry.registerAnalyzedUnit(analyzeModuleTobeRestored); } } public void addSoftwareUnit(ModuleStrategy module, ArrayList<AnalyzedModuleComponent> unitToBeinserted) { for (AnalyzedModuleComponent analyzedModuleComponent : unitToBeinserted) { JtreeController.instance().removeTreeItem(analyzedModuleComponent); WarningMessageService.getInstance().updateWarnings(); } } public void analyze() { allUnitsRegistry.reset(); analyzerComparator.getRootModel(); DefinitionController.getInstance().notifyAnalyzedObservers(); } public void registerAnalyzedUnit(AnalyzedModuleComponent unit) { allUnitsRegistry.registerAnalyzedUnit(unit); } public AnalyzedUnitRegistry getAnalzedModuleRegistry() { return allUnitsRegistry; } public AnalyzedModuleComponent getAnalyzedSoftWareUnit(SoftwareUnitDefinition unit) { return allUnitsRegistry.getAnalyzedUnit(unit); } public WarningMessageContainer getNotMappedUnits() { return allUnitsRegistry.getNotMappedUnits(); } public AnalyzedModuleComponent getAnalyzedSoftWareUnit(String uniqueName) { return allUnitsRegistry.getAnalyzedUnit(uniqueName); } public ArrayList<AnalyzedModuleComponent> getAnalyzedSoftWareUnit( List<String> data) { return allUnitsRegistry.getAnalyzedUnit(data); } public void registerImportedUnit(SoftwareUnitDefinition unit) { allUnitsRegistry.registerImportedUnit(unit); } public void registerImportedData() { for (String unigNames : allUnitsRegistry.getimportedUnits()) { AnalyzedModuleComponent result = allUnitsRegistry.getAnalyzedUnit(unigNames); if (result!=null) { result.freeze(); } } } }