package jetbrains.mps.ide.platform.refactoring;
/*Generated by MPS */
import jetbrains.mps.extapi.model.SNodeBatchChangeListener;
import jetbrains.mps.smodel.event.RepositoryChangeTracker;
import org.jetbrains.mps.openapi.module.SRepository;
import jetbrains.mps.smodel.RepoListenerRegistrar;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import org.jetbrains.mps.openapi.event.AbstractModelChangeEvent;
public class UsagesModelTracker implements SNodeBatchChangeListener {
private final RepositoryChangeTracker myChangeTracker = new RepositoryChangeTracker();
private boolean changed = false;
private SRepository myRepository;
public UsagesModelTracker(SRepository repository) {
myRepository = repository;
myChangeTracker.addListener(this);
new RepoListenerRegistrar(repository, myChangeTracker).attach();
}
public void dispose() {
myChangeTracker.removeListener(this);
new RepoListenerRegistrar(myRepository, myChangeTracker).detach();
}
public void processEvents(@NotNull Collection<AbstractModelChangeEvent> events) {
changed = true;
}
public boolean reset() {
return changed = false;
}
public boolean isChanged() {
return changed;
}
}