package jetbrains.mps.lang.migration.pluginSolution.plugin; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.smodel.Language; import org.jetbrains.mps.openapi.model.SModel; import jetbrains.mps.smodel.LanguageAspect; import jetbrains.mps.smodel.action.SNodeFactoryOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations; import jetbrains.mps.smodel.SModelInternal; import jetbrains.mps.lang.migration.behavior.MigrationScript__BehaviorDescriptor; public class MigrationScriptBuilder { private SNode myScript; private MigrationScriptBuilder(Language language) { SModel migrationModel = LanguageAspect.MIGRATION.getOrCreate(language); myScript = SNodeFactoryOperations.createNewRootNode(migrationModel, SNodeFactoryOperations.asInstanceConcept(MetaAdapterFactory.getConcept(0x9074634404fd4286L, 0x97d5b46ae6a81709L, 0x73e8a2c68b62c6a3L, "jetbrains.mps.lang.migration.structure.MigrationScript")), null); } public static MigrationScriptBuilder createMigrationScript(Language language) { return new MigrationScriptBuilder(language); } public MigrationScriptBuilder setName(String name) { SPropertyOperations.set(myScript, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"), name); return this; } public MigrationScriptBuilder setExecuteMethod(SNode method) { SNodeOperations.replaceWithAnother(getExecuteMethod(), method); return this; } public MigrationScriptBuilder appendExecuteStatements(SNode... statements) { return appendExecuteStatements(Sequence.fromArray(statements)); } public MigrationScriptBuilder appendExecuteStatements(Iterable<SNode> statements) { ListSequence.fromList(SLinkOperations.getChildren(SLinkOperations.getTarget(getExecuteMethod(), MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b1fcL, 0xf8cc56b1ffL, "body")), MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b200L, 0xf8cc6bf961L, "statement"))).addSequence(Sequence.fromIterable(statements)); return this; } public MigrationScriptBuilder addDependency(SModel m) { ((SModelInternal) SNodeOperations.getModel(myScript)).addModelImport(m.getReference(), true); return this; } public SNode getExecuteMethod() { return MigrationScript__BehaviorDescriptor.getMethod_id6d7r2Fq2j7f.invoke(myScript, SNodeOperations.getNode("90746344-04fd-4286-97d5-b46ae6a81709/r:52a3d974-bd4f-4651-ba6e-a2de5e336d95(jetbrains.mps.lang.migration/jetbrains.mps.lang.migration.methods)", "5155329496662709030")); } public SNode getExecuteMethodModuleParameter() { return ListSequence.fromList(SLinkOperations.getChildren(getExecuteMethod(), MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b1fcL, 0xf8cc56b1feL, "parameter"))).first(); } public SNode getScript() { return myScript; } }