package jetbrains.mps.ide.migration;
/*Generated by MPS */
import com.intellij.openapi.components.AbstractProjectComponent;
import jetbrains.mps.make.IMakeService;
import jetbrains.mps.make.IMakeNotificationListener;
import jetbrains.mps.make.MakeNotification;
import com.intellij.openapi.project.Project;
public class MigrationMakeBlocker extends AbstractProjectComponent {
private final IMakeService myMake;
private final MigrationTrigger myMigrationTrigger;
private IMakeNotificationListener.Stub myListener = new IMakeNotificationListener.Stub() {
@Override
public void sessionOpened(MakeNotification notification) {
myMigrationTrigger.blockMigrationsCheck();
}
@Override
public void sessionClosed(MakeNotification notification) {
myMigrationTrigger.unblockMigrationsCheck();
}
};
public MigrationMakeBlocker(IMakeService ms, Project ideaProject, IStartupMigrationExecutor migationTrigger) {
super(ideaProject);
myMake = ms;
if (migationTrigger instanceof MigrationTrigger) {
myMigrationTrigger = ((MigrationTrigger) migationTrigger);
} else {
myMigrationTrigger = null;
}
}
@Override
public void projectOpened() {
if (myMigrationTrigger == null) {
return;
}
myMake.addListener(this.myListener);
}
@Override
public void projectClosed() {
if (myMigrationTrigger == null) {
return;
}
myMake.removeListener(myListener);
}
}