package husacct.define.task.components; import husacct.define.domain.module.ModuleStrategy; import husacct.define.domain.module.modules.Component; import husacct.define.domain.module.modules.ExternalLibrary; import husacct.define.domain.module.modules.Facade; import husacct.define.domain.module.modules.Layer; import husacct.define.domain.module.modules.SubSystem; import org.apache.log4j.Logger; //import husacct.define.domain.module.ExternalSystem; public class DefineComponentFactory { private static ComponentComponent createComponentComponent(ModuleStrategy module) { Component component = (Component) module; ComponentComponent componentComponent = new ComponentComponent(); componentComponent.setModuleId(component.getId()); componentComponent.setName(component.getName()); return componentComponent; } private static ExternalLibraryComponent createExternalLibraryComponent(ModuleStrategy module) { ExternalLibrary externalLibrary = (ExternalLibrary) module; ExternalLibraryComponent externalLibraryComponent = new ExternalLibraryComponent(); externalLibraryComponent.setModuleId(externalLibrary.getId()); externalLibraryComponent.setName(externalLibrary.getName()); return externalLibraryComponent; } private static AbstractDefineComponent createFacade(ModuleStrategy module) { FacadeComponent facade = new FacadeComponent(); facade.setModuleId(module.getId()); facade.setName(module.getName()); return facade; } private static LayerComponent createLayerComponent(ModuleStrategy module) { Layer layer = (Layer) module; LayerComponent layerComponent = new LayerComponent(); layerComponent.setModuleId(layer.getId()); layerComponent.setHierarchicalLevel(layer.getHierarchicalLevel()); layerComponent.setName(layer.getName()); return layerComponent; } private static SubSystemComponent createModuleComponent(ModuleStrategy module) { SubSystemComponent subSystemComponent = new SubSystemComponent(); subSystemComponent.setModuleId(module.getId()); subSystemComponent.setName(module.getName()); return subSystemComponent; } public static AbstractDefineComponent getDefineComponent(ModuleStrategy module) { AbstractDefineComponent returnComponent = null; if (module instanceof Layer) { returnComponent = DefineComponentFactory .createLayerComponent(module); } else if (module instanceof ExternalLibrary) { returnComponent = DefineComponentFactory .createExternalLibraryComponent(module); } else if (module instanceof Component) { // husacct.define.domain.module.Component returnComponent = DefineComponentFactory .createComponentComponent(module); } else if (module instanceof Facade) { returnComponent = DefineComponentFactory.createFacade(module); } else if (module instanceof SubSystem) { returnComponent = DefineComponentFactory .createModuleComponent(module); } else { Logger logger = Logger.getLogger(DefineComponentFactory.class); logger.error("ModuleType not implemented"); } return returnComponent; } }