package husacct.analyse.task.reconstruct.algorithms.hu.gateways; import java.util.ArrayList; import java.util.Arrays; import husacct.analyse.domain.IModelQueryService; import husacct.analyse.task.reconstruct.AnalyseReconstructConstants.RelationTypes; import husacct.analyse.task.reconstruct.algorithms.Algorithm_SuperClass; import husacct.common.dto.DependencyDTO; import husacct.common.dto.SoftwareUnitDTO; public abstract class AlgorithmHUSACCT extends Algorithm_SuperClass{ protected int threshold; public AlgorithmHUSACCT (IModelQueryService queryService) { super(queryService); } protected ArrayList<DependencyDTO> getDependencies_From_SoftwareUnit(SoftwareUnitDTO softwareUnitDTO, ArrayList<SoftwareUnitDTO> sofwareUnitDTOs, String relationType){ ArrayList<DependencyDTO> dependecyDTOs = new ArrayList<DependencyDTO>(); for (SoftwareUnitDTO possibleDependency : sofwareUnitDTOs){ DependencyDTO[] dependencies = null; switch (relationType) { case RelationTypes.umlLinks: dependencies = queryService.getUmlLinksAsDependencyDtosFromSoftwareUnitToSoftwareUnit(softwareUnitDTO.uniqueName, possibleDependency.uniqueName); break; case RelationTypes.accessCallReferenceDependencies: dependencies = queryService.getDependencies_OnlyAccessCallAndReferences_FromSoftwareUnitToSoftwareUnit(softwareUnitDTO.uniqueName, possibleDependency.uniqueName); break; default : //RelationTypes.allDependencies dependencies = queryService.getDependenciesFromSoftwareUnitToSoftwareUnit(softwareUnitDTO.uniqueName, possibleDependency.uniqueName); break; } dependecyDTOs.addAll(Arrays.asList(dependencies)); } return dependecyDTOs; } protected ArrayList<DependencyDTO> getDependencies_Towards_SoftwareUnit(SoftwareUnitDTO softwareUnitDTO, ArrayList<SoftwareUnitDTO> sofwareUnitDTOs, String relationType){ ArrayList<DependencyDTO> dependecyDTOs = new ArrayList<DependencyDTO>(); for (SoftwareUnitDTO possibleDependency : sofwareUnitDTOs){ DependencyDTO[] dependencies = null; switch (relationType) { case RelationTypes.umlLinks: dependencies = queryService.getUmlLinksAsDependencyDtosFromSoftwareUnitToSoftwareUnit(possibleDependency.uniqueName, softwareUnitDTO.uniqueName); break; case RelationTypes.accessCallReferenceDependencies: dependencies = queryService.getDependencies_OnlyAccessCallAndReferences_FromSoftwareUnitToSoftwareUnit(possibleDependency.uniqueName, softwareUnitDTO.uniqueName); break; default : //RelationTypes.allDependencies dependencies = queryService.getDependenciesFromSoftwareUnitToSoftwareUnit(possibleDependency.uniqueName, softwareUnitDTO.uniqueName); break; } dependecyDTOs.addAll(Arrays.asList(dependencies)); } return dependecyDTOs; } }