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();
}
}