package jetbrains.mps.vcs.diff.changes;
/*Generated by MPS */
import org.jetbrains.mps.openapi.model.SModelReference;
import org.jetbrains.annotations.NotNull;
import jetbrains.mps.vcs.diff.ChangeSet;
import org.jetbrains.mps.openapi.model.SModel;
import jetbrains.mps.extapi.model.SModelBase;
public class ImportedModelChange extends DependencyChange {
private SModelReference myModelReference;
public ImportedModelChange(@NotNull ChangeSet changeSet, @NotNull SModelReference modelReference, boolean delete) {
super(changeSet, delete);
myModelReference = modelReference;
}
public SModelReference getModelReference() {
return myModelReference;
}
@Override
public String toString() {
return ((isDelete() ? "Delete" : "Add")) + " imported model " + myModelReference;
}
@NotNull
@Override
protected ModelChange createOppositeChange() {
return new ImportedModelChange(getChangeSet().getOppositeChangeSet(), myModelReference, !(isDelete()));
}
@Override
public void apply(@NotNull SModel model, @NotNull NodeCopier nodeCopier) {
if (isDelete()) {
((SModelBase) model).deleteModelImport(myModelReference);
} else {
((SModelBase) model).addModelImport(myModelReference, false);
}
}
}