package com.python.pydev.refactoring.changes;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ltk.core.refactoring.Change;
import org.eclipse.ltk.core.refactoring.CompositeChange;
import org.python.pydev.core.concurrency.RunnableAsJobsPoolThread;
public final class PyCompositeChange extends CompositeChange {
private boolean makeUndo;
public PyCompositeChange(String name, boolean makeUndo) {
super(name);
this.makeUndo = makeUndo;
}
@Override
public Change perform(IProgressMonitor pm) throws CoreException {
RunnableAsJobsPoolThread.getSingleton().pushStopThreads();
Change ret;
try {
ret = super.perform(pm);
} finally {
RunnableAsJobsPoolThread.getSingleton().popStopThreads();
}
if (makeUndo) {
return ret;
}
return null;
}
}