package jetbrains.mps.make.service; /*Generated by MPS */ import jetbrains.mps.make.IMakeService; import java.util.concurrent.Future; import jetbrains.mps.make.script.IResult; import jetbrains.mps.make.MakeSession; import jetbrains.mps.make.resources.IResource; import jetbrains.mps.progress.EmptyProgressMonitor; import jetbrains.mps.make.script.IScript; import jetbrains.mps.make.script.IScriptController; import jetbrains.mps.make.script.IConfigMonitor; import jetbrains.mps.internal.make.runtime.script.MessageFeedbackStrategy; import org.jetbrains.annotations.NotNull; import jetbrains.mps.make.script.IFeedback; import jetbrains.mps.make.script.IOption; import jetbrains.mps.make.script.IQuery; public abstract class AbstractMakeService implements IMakeService { public AbstractMakeService() { } @Override public Future<IResult> make(MakeSession session, Iterable<? extends IResource> resources) { return make(session, resources, null, null, new EmptyProgressMonitor()); } @Override public Future<IResult> make(MakeSession session, Iterable<? extends IResource> resources, IScript script) { return make(session, resources, script, null, new EmptyProgressMonitor()); } @Override public Future<IResult> make(MakeSession session, Iterable<? extends IResource> resources, IScript script, IScriptController controller) { return make(session, resources, script, controller, new EmptyProgressMonitor()); } /** * Reasonable defaults when no IScriptController is supplied by client * I'm not certain there's great value in this distinct subclass of IConfigMonitor.Stub, perhaph, could move everything in there. * Just don't understand why Stub.relayQuery is different, and whether we care to report feedback always. */ public static class DefaultMonitor extends IConfigMonitor.Stub { private final MessageFeedbackStrategy myFeedback; public DefaultMonitor(@NotNull MakeSession makeSession) { super(makeSession); myFeedback = new MessageFeedbackStrategy(makeSession.getMessageHandler()); } @Override public void reportFeedback(IFeedback fdbk) { myFeedback.reportFeedback(fdbk); } @Override public <T extends IOption> T relayQuery(IQuery<T> query) { return query.defaultOption(); } } }