package jetbrains.mps.make;
/*Generated by MPS */
import java.util.concurrent.Future;
import jetbrains.mps.make.script.IResult;
import jetbrains.mps.make.resources.IResource;
import jetbrains.mps.make.script.IScript;
import jetbrains.mps.make.script.IScriptController;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.mps.openapi.util.ProgressMonitor;
public interface IMakeService {
boolean openNewSession(MakeSession session);
void closeSession(MakeSession session);
boolean isSessionActive();
Future<IResult> make(MakeSession session, Iterable<? extends IResource> resources);
Future<IResult> make(MakeSession session, Iterable<? extends IResource> resources, IScript script);
Future<IResult> make(MakeSession session, Iterable<? extends IResource> resources, IScript script, IScriptController controller);
Future<IResult> make(MakeSession session, Iterable<? extends IResource> resources, IScript script, IScriptController controller, @NotNull ProgressMonitor monitor);
void addListener(IMakeNotificationListener listener);
void removeListener(IMakeNotificationListener listener);
class INSTANCE {
private static IMakeService Component;
private INSTANCE() {
}
public static IMakeService get() {
if (Component == null) {
throw new IllegalStateException("no make service component");
}
return Component;
}
public static void set(IMakeService service) {
Component = service;
}
public static boolean isSessionActive() {
return IMakeService.INSTANCE.hasMakeService() && Component.isSessionActive();
}
public static boolean hasMakeService() {
return Component != null;
}
}
}