package jetbrains.mps.vcs.diff.changes; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SNodeId; import org.jetbrains.annotations.NotNull; import jetbrains.mps.vcs.diff.ChangeSet; import org.jetbrains.mps.openapi.model.SModel; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SModelOperations; public class AddRootChange extends ModelChange { private SNodeId myNodeId; public AddRootChange(@NotNull ChangeSet changeSet, @NotNull SNodeId nodeId) { super(changeSet); myNodeId = nodeId; } @NotNull @Override public SNodeId getRootId() { return myNodeId; } @Override public void apply(@NotNull SModel model, @NotNull NodeCopier nodeCopier) { SNode newNode = getChangeSet().getNewModel().getNode(myNodeId); SModelOperations.addRootNode(model, nodeCopier.copyNode(newNode)); } @NotNull @Override protected ModelChange createOppositeChange() { return new DeleteRootChange(getChangeSet().getOppositeChangeSet(), myNodeId); } @NotNull @Override public ChangeType getType() { return ChangeType.ADD; } @Override public String toString() { return "Add root " + myNodeId; } @Override public String getDescription() { return "Added root #" + myNodeId; } }