package jetbrains.mps.vcs.diff.changes; /*Generated by MPS */ import org.jetbrains.mps.openapi.language.SLanguage; 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 UsedLanguageChange extends DependencyChange { private final SLanguage myLanguage; public UsedLanguageChange(@NotNull ChangeSet changeSet, boolean delete, @NotNull SLanguage language) { super(changeSet, delete); myLanguage = language; } @NotNull protected ModelChange createOppositeChange() { return new UsedLanguageChange(getChangeSet().getOppositeChangeSet(), !(isDelete()), myLanguage); } public void apply(@NotNull SModel model, @NotNull NodeCopier nodeCopier) { if (isDelete()) { ((SModelBase) model).deleteLanguageId(myLanguage); } else { ((SModelBase) model).addLanguage(myLanguage); } } public SLanguage getLanguage() { return myLanguage; } @Override public String getDescription() { String fmt = (isDelete() ? "Remove language %s" : "Add language %s"); return String.format(fmt, myLanguage.getQualifiedName()); } @Override public String toString() { return myLanguage.toString(); } }