package br.uff.ic.gems.peixeespadacliente.tool;
import java.util.List;
import br.uff.ic.gems.peixeespadacliente.symptom.Symptom;
import br.uff.ic.gems.peixeespadacliente.exception.RefactoringException;
import br.uff.ic.gems.peixeespadacliente.resolution.Resolution;
import static br.uff.ic.oceano.peixeespada.model.Refactoring.*;
import java.util.HashMap;
/**
*
* @author Heliomar, João Felipe
*/
public interface RefactoringTool {
// colocar native classe Refactoring a medida que implementando
public static final String ENCAPSULATE_FIELDS = REFACTORING_ENCAPSULE_FIELDS;
public static final String PUSH_DOWN_METHODS = REFACTORING_PUSH_DOWN_METHODS;
public static final String PULL_UP_METHODS = REFACTORING_PULL_UP_METHODS;
public static final String PULL_UP_FIELDS = REFACTORING_PULL_UP_FIELDS;
public static final String PUSH_DOWN_FIELDS = REFACTORING_PUSH_DOWN_FIELDS;
public static final String CLEAN_IMPORTS = REFACTORING_CLEAN_IMPORTS;
public static final String ADD_DELEGATE_METHODS = REFACTORING_ADD_DELEGATE_METHODS;
public static final String EXTRACT_INTERFACES = REFACTORING_EXTRACT_INTERFACES;
public static final String USE_SUPER_TYPES = REFACTORING_USE_SUPER_TYPES;
public static final String CREATE_FACTORY_METHODS = REFACTORING_CREATE_FACTORY_METHODS;
public static final String INLINE_METHODS = REFACTORING_INLINE_METHODS;
public static final HashMap<String, Class> classMap = new HashMap<String, Class>() {
{
put(ENCAPSULATE_FIELDS, EncapsulateFields.class);
put(PUSH_DOWN_METHODS, PushDownMethods.class);
put(PULL_UP_METHODS, PullUpMethods.class);
put(PULL_UP_FIELDS, PullUpFields.class);
put(PUSH_DOWN_FIELDS, PushDownFields.class);
put(CLEAN_IMPORTS, CleanImports.class);
put(ADD_DELEGATE_METHODS, AddDelegateMethods.class);
put(EXTRACT_INTERFACES, ExtractInterfaces.class);
put(USE_SUPER_TYPES, UseSuperTypes.class);
put(CREATE_FACTORY_METHODS, CreateFactoryMethods.class);
put(INLINE_METHODS, InlineMethods.class);
}
};
public boolean applyCheckingPreAndPosCondictions(Resolution resolution) throws RefactoringException;
public void revertMoDifications() throws RefactoringException;
public boolean isWorking() throws RefactoringException;
public boolean prepareSymptom(Symptom symptom) throws RefactoringException;
public List<Symptom> findAllSymptoms() throws RefactoringException;
public String toString();
}