package jetbrains.mps.refactoring.participant;
/*Generated by MPS */
import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
import java.util.List;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import java.util.ArrayList;
import java.util.Map;
import jetbrains.mps.internal.collections.runtime.MapSequence;
import java.util.HashMap;
import org.apache.log4j.Level;
public class RefactoringSessionImpl implements RefactoringSession {
private static final Logger LOG = LogManager.getLogger(RefactoringSessionImpl.class);
private List<Runnable> myChanges = ListSequence.fromList(new ArrayList<Runnable>());
private Map<String, Object> myObjects = MapSequence.fromMap(new HashMap<String, Object>());
public void putObject(String id, Object object) {
MapSequence.fromMap(myObjects).put(id, object);
}
public Object getObject(String id) {
return MapSequence.fromMap(myObjects).get(id);
}
public void registerChange(Runnable change) {
ListSequence.fromList(myChanges).addElement(change);
}
public void performAllRegistered() {
for (Runnable change : ListSequence.fromList(myChanges)) {
try {
change.run();
} catch (Throwable e) {
if (LOG.isEnabledFor(Level.ERROR)) {
LOG.error("Error executing change", e);
}
}
}
}
}