package br.uff.ic.gems.peixeespadacliente.tool; import br.uff.ic.gems.peixeespadacliente.exception.RefactoringException; import br.uff.ic.gems.peixeespadacliente.model.ProjectVCS; import br.uff.ic.gems.peixeespadacliente.resolution.Resolution; import net.sf.refactorit.classmodel.BinCIType; import net.sf.refactorit.classmodel.BinField; import net.sf.refactorit.classmodel.BinMethod; import net.sf.refactorit.classmodel.BinParameter; import net.sf.refactorit.refactorings.RefactoringStatus; import net.sf.refactorit.refactorings.conflicts.ConflictResolver; import net.sf.refactorit.refactorings.pullpush.PullPush; import translation.Translate; /** * * @author Joao Felipe */ public abstract class PullPushRefactoringTool extends AbstractRefactoringTool { protected PullPush pullPush; protected BinCIType currentTarget; public PullPushRefactoringTool(ProjectVCS projectVCS) { super(projectVCS); } abstract public boolean reloadRefactoring(); public PullPush getPullPush() { return pullPush; } public ConflictResolver getResolver() { return pullPush.getResolver(); } @Override public boolean applyCheckingPreAndPosCondictions(Resolution resolution) throws RefactoringException { Translate translate = Translate.getTranslate(); refactoring = pullPush; RefactoringStatus status = checkPreconditions(); if (status.isErrorOrFatal()) { throw new RefactoringException(translate.notRefactored(status.getAllMessages())); } status.merge(checkUserInput()); status.merge(pullPush.apply()); if (!status.isOk()) { throw new RefactoringException(translate.error(status.getAllMessages())); } System.out.println(status.getAllMessages()); return !status.isErrorOrFatal(); } }