package org.erlide.wrangler.refactoring.core.internal; import org.erlide.engine.ErlangEngine; import org.erlide.engine.model.ErlModelException; import org.erlide.engine.model.root.IErlProject; import org.erlide.runtime.rpc.RpcResult; import org.erlide.wrangler.refactoring.backend.internal.WranglerBackendManager; /** * Class for common functionalities of adhoc refactorings ad hoc specific * methods should delegate to if * * @author Aleksandra Lipiec <aleksandra.lipiec@erlang-solutions.com> * @version %I%, %G% */ public class UserAdhocRefactoring { private final UserRefactoring refac; // base refactoring public UserAdhocRefactoring(final UserRefactoring refac) { this.refac = refac; } /** * Loading user's callback module * * @return */ public boolean load() { String callbackPath; try { if (ErlangEngine.getInstance().getModel() .findModule(refac.getCallbackModule()) == null) { return false; } final IErlProject project = ErlangEngine.getInstance().getModelUtilService() .getProject(ErlangEngine.getInstance().getModel() .findModule(refac.getCallbackModule())); callbackPath = project.getWorkspaceProject().getLocation() .append(project.getProperties().getOutputDir()).toString(); } catch (final ErlModelException e) { return false; } final RpcResult res = WranglerBackendManager.getRefactoringBackend() .callWithoutParser("load_callback_mod_eclipse", "ss", refac.getCallbackModule(), callbackPath); if (!res.isOk()) { return false; } return true; } }