package jetbrains.mps.make; /*Generated by MPS */ import jetbrains.mps.project.Project; import jetbrains.mps.messages.IMessageHandler; import org.jetbrains.annotations.NotNull; import jetbrains.mps.util.annotation.ToRemove; import jetbrains.mps.make.script.IScript; import jetbrains.mps.make.script.ScriptBuilder; public class MakeSession { private final Project myProject; private final IMessageHandler myMessageHandler; private final boolean myIsCleanMake; private final boolean myIsSticky; /** * <code>MakeSession</code> captures global parameters for the make session to run * Note, unlike earlier versions, <code>null</code> message handler is no longer supported. * Use <code>IMessageHandler.NULL_HANDLER</code> if <code>/dev/null</code> for messages is indeed what you want. * Otherwise, use meaningful handler, e.g. <code>DefaultMakeMessageHandler</code> or * <code>DefaultMessageHandler</code>from IDE, <code>IMessageHandler.LogHandler</code> or any tailored handler for non-IDE uses. * * @param mpsProject MPS project to run make at * @param messageHandler where to pipe make messages * @param cleanMake <code>true</code> to perform complete rebuild, not make of dirty models only. */ public MakeSession(@NotNull Project mpsProject, @NotNull IMessageHandler messageHandler, boolean cleanMake) { myProject = mpsProject; this.myMessageHandler = messageHandler; this.myIsCleanMake = cleanMake; this.myIsSticky = false; } @NotNull public Project getProject() { return myProject; } @NotNull public IMessageHandler getMessageHandler() { return myMessageHandler; } public boolean isCleanMake() { return myIsCleanMake; } /** * * @deprecated according to Fedor, obsolete functionality. There are usecases when we can benefit from sticky make session and its explicit shutdown, perhaps shall resurrect. */ @Deprecated @ToRemove(version = 3.2) public boolean isSticky() { return myIsSticky; } public void doExecute(Runnable scriptRunnable) { scriptRunnable.run(); } public IScript toScript(ScriptBuilder scriptBuilder) { return scriptBuilder.toScript(); } }