package br.uff.ic.gems.peixeespadacliente.tool.factory; import br.uff.ic.gems.peixeespadacliente.model.ProjectVCS; import br.uff.ic.gems.peixeespadacliente.tool.RefactoringTool; import java.lang.reflect.Constructor; /** * * @author Heliomar */ public class FactoryRefactoringTool { private FactoryRefactoringTool(){ } // private static final Map<String, Class<? extends RefactoringTool>> mapa = new HashMap<String, Class<? extends RefactoringTool>>(); // static { // mapa.put(RefactoringTool.ENCAPSULE_FIELDS, EncapsuleFields.class); // mapa.put(RefactoringTool.CLEAN_IMPORTS, CleanImports.class); // mapa.put(RefactoringTool.PULL_UP_METHODS, PullUpMethods.class); // mapa.put(RefactoringTool.PULL_UP_FIELDS, PullUpFields.class); // mapa.put(RefactoringTool.PUSH_DOWN_METHODS, PushDownMethods.class); // } public static synchronized <T> T getRefactoringTool(Class<? extends RefactoringTool> refactorinfToolClass, ProjectVCS projectVCS){ Constructor constructor = null; T rt = null; try { constructor = refactorinfToolClass.getDeclaredConstructor(ProjectVCS.class); rt = (T) constructor.newInstance(projectVCS); } catch (Exception ex) { throw new RuntimeException(ex); } return rt; } }