public UpdateClosuresRuntime_MigrationScript()

in languages/baseLanguage/closures/source_gen/jetbrains/mps/baseLanguage/closures/scripts/UpdateClosuresRuntime_MigrationScript.java [30:356]


  public UpdateClosuresRuntime_MigrationScript() {
    super("Create runtime classes in the closures runtime");
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "_FunctionTypes";
      }
      @Override
      public String getAdditionalInfo() {
        return "_FunctionTypes";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassConcept$bK;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return "jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes".equals(NameUtil.nodeFQName(node)) && !(Sequence.fromIterable(Classifier__BehaviorDescriptor.nestedClassifiers_id4_LVZ3pBjGQ.invoke(node)).any((it) -> SPropertyOperations.getString(it, PROPS.name$MnvL).startsWith("_void")));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        List<SNode> paramTypeVars = new ArrayList<SNode>();
        for (int params = 0; params <= Constants.MAX_CLOSURE_PARAMETERS; params++) {
          List<SNode> excepTypeVars = new ArrayList<SNode>();
          for (int exceps = 0; exceps <= Constants.MAX_CLOSURE_EXCEPTIONS; exceps++) {
            List<SNode> tvds = new ArrayList<SNode>();
            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(paramTypeVars).select((it) -> SNodeOperations.copyNode(it)));

            List<SNode> pdecls = new ArrayList<SNode>();
            ListSequence.fromList(pdecls).addSequence(ListSequence.fromList(tvds).select((it) -> {
              SNode tr = _quotation_createNode_awiph7_a0a0a0a0a4a1a1a0a(it);
              return _quotation_createNode_awiph7_a1a0a0a0e0b0b0a0(tr, SPropertyOperations.getString(it, PROPS.name$MnvL).toLowerCase());
            }));

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(excepTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> exdecls = new ArrayList<SNode>();
            ListSequence.fromList(exdecls).addSequence(ListSequence.fromList(tvds).skip(ListSequence.fromList(paramTypeVars).count()).select((it) -> _quotation_createNode_awiph7_a0a0a0a0i0b0b0a0(it)));

            String name = "_void" + "_P" + params + "_E" + exceps;
            ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.member$L_2d)).addElement(_quotation_createNode_awiph7_a0a11a1a1a0a(tvds, name, pdecls, exdecls));

            ListSequence.fromList(excepTypeVars).addElement(_quotation_createNode_awiph7_a0a31a1a1a0a("E" + (exceps + 1)));
          }
          ListSequence.fromList(paramTypeVars).addElement(_quotation_createNode_awiph7_a0a2a1a0a("P" + (params + 1)));
        }
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "_FunctionTypes";
      }
      @Override
      public String getAdditionalInfo() {
        return "_FunctionTypes";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassConcept$bK;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return "jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes".equals(NameUtil.nodeFQName(node)) && !(Sequence.fromIterable(Classifier__BehaviorDescriptor.nestedClassifiers_id4_LVZ3pBjGQ.invoke(node)).any((it) -> SPropertyOperations.getString(it, PROPS.name$MnvL).startsWith("_return")));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        List<SNode> paramTypeVars = new ArrayList<SNode>();
        for (int params = 0; params <= Constants.MAX_CLOSURE_PARAMETERS; params++) {
          List<SNode> excepTypeVars = new ArrayList<SNode>();
          for (int exceps = 0; exceps <= Constants.MAX_CLOSURE_EXCEPTIONS; exceps++) {
            List<SNode> tvds = new ArrayList<SNode>();
            ListSequence.fromList(tvds).addElement(_quotation_createNode_awiph7_a0a1a1a1a0b());
            SNode retVal = _quotation_createNode_awiph7_a0c0b0b0a1(ListSequence.fromList(tvds).first());

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(paramTypeVars).select((it) -> SNodeOperations.copyNode(it)));

            List<SNode> pdecls = new ArrayList<SNode>();
            ListSequence.fromList(pdecls).addSequence(ListSequence.fromList(tvds).skip(1).select((it) -> {
              SNode tr = _quotation_createNode_awiph7_a0a0a0a0a7a1a1a0b(it);
              return _quotation_createNode_awiph7_a1a0a0a0h0b0b0a1(tr, SPropertyOperations.getString(it, PROPS.name$MnvL).toLowerCase());
            }));

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(excepTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> exdecls = new ArrayList<SNode>();
            ListSequence.fromList(exdecls).addSequence(ListSequence.fromList(tvds).skip(ListSequence.fromList(paramTypeVars).count() + 1).select((it) -> _quotation_createNode_awiph7_a0a0a0a0l0b0b0a1(it)));

            String name = "_return" + "_P" + params + "_E" + exceps;
            ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.member$L_2d)).addElement(_quotation_createNode_awiph7_a0a41a1a1a0b(tvds, name, pdecls, retVal, exdecls));

            ListSequence.fromList(excepTypeVars).addElement(_quotation_createNode_awiph7_a0a61a1a1a0b("E" + (exceps + 1)));
          }
          ListSequence.fromList(paramTypeVars).addElement(_quotation_createNode_awiph7_a0a2a1a0b("P" + (params + 1)));
        }
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "_UnrestrictedFunctionTypes";
      }
      @Override
      public String getAdditionalInfo() {
        return "_UnrestrictedFunctionTypes";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassConcept$bK;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return "jetbrains.mps.baseLanguage.closures.runtime._UnrestrictedFunctionTypes".equals(NameUtil.nodeFQName(node)) && !(Sequence.fromIterable(Classifier__BehaviorDescriptor.nestedClassifiers_id4_LVZ3pBjGQ.invoke(node)).any((it) -> SPropertyOperations.getString(it, PROPS.name$MnvL).startsWith("_return_terminate")));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        List<SNode> paramTypeVars = new ArrayList<SNode>();
        for (int params = 0; params <= Constants.MAX_CLOSURE_PARAMETERS; params++) {
          List<SNode> excepTypeVars = new ArrayList<SNode>();
          for (int exceps = 0; exceps <= Constants.MAX_CLOSURE_EXCEPTIONS; exceps++) {
            List<SNode> tvds = new ArrayList<SNode>();
            ListSequence.fromList(tvds).addElement(_quotation_createNode_awiph7_a0a1a1a1a0c());
            SNode t = _quotation_createNode_awiph7_a0c0b0b0a2(ListSequence.fromList(tvds).first());
            ListSequence.fromList(tvds).addElement(_quotation_createNode_awiph7_a0a3a1a1a0c());
            SNode r = _quotation_createNode_awiph7_a0e0b0b0a2(ListSequence.fromList(tvds).last());
            SNode retVal = _quotation_createNode_awiph7_a0f0b0b0a2(t, r);

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(paramTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> pdecls = new ArrayList<SNode>();
            ListSequence.fromList(pdecls).addSequence(ListSequence.fromList(tvds).skip(2).select((it) -> {
              SNode tr = _quotation_createNode_awiph7_a0a0a0a0a9a1a1a0c(it);
              return _quotation_createNode_awiph7_a1a0a0a0j0b0b0a2(tr, SPropertyOperations.getString(it, PROPS.name$MnvL).toLowerCase());
            }));

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(excepTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> exdecls = new ArrayList<SNode>();
            ListSequence.fromList(exdecls).addSequence(ListSequence.fromList(tvds).skip(ListSequence.fromList(paramTypeVars).count() + 2).select((it) -> _quotation_createNode_awiph7_a0a0a0a0n0b0b0a2(it)));

            String name = "_return_terminate" + "_P" + params + "_E" + exceps;
            ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.member$L_2d)).addElement(_quotation_createNode_awiph7_a0a61a1a1a0c(tvds, name, pdecls, retVal, exdecls));

            ListSequence.fromList(excepTypeVars).addElement(_quotation_createNode_awiph7_a0a81a1a1a0c("E" + (exceps + 1)));
          }
          ListSequence.fromList(paramTypeVars).addElement(_quotation_createNode_awiph7_a0a2a1a0c("P" + (params + 1)));
        }
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "_UnrestrictedFunctionTypes";
      }
      @Override
      public String getAdditionalInfo() {
        return "_UnrestrictedFunctionTypes";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassConcept$bK;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return "jetbrains.mps.baseLanguage.closures.runtime._UnrestrictedFunctionTypes".equals(NameUtil.nodeFQName(node)) && !(Sequence.fromIterable(Classifier__BehaviorDescriptor.nestedClassifiers_id4_LVZ3pBjGQ.invoke(node)).any((it) -> SPropertyOperations.getString(it, PROPS.name$MnvL).startsWith("_void_terminate")));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        List<SNode> paramTypeVars = new ArrayList<SNode>();
        for (int params = 0; params <= Constants.MAX_CLOSURE_PARAMETERS; params++) {
          List<SNode> excepTypeVars = new ArrayList<SNode>();
          for (int exceps = 0; exceps <= Constants.MAX_CLOSURE_EXCEPTIONS; exceps++) {
            List<SNode> tvds = new ArrayList<SNode>();
            ListSequence.fromList(tvds).addElement(_quotation_createNode_awiph7_a0a1a1a1a0d());
            SNode t = _quotation_createNode_awiph7_a0c0b0b0a3(ListSequence.fromList(tvds).first());
            SNode retVal = _quotation_createNode_awiph7_a0d0b0b0a3(t);

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(paramTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> pdecls = new ArrayList<SNode>();
            ListSequence.fromList(pdecls).addSequence(ListSequence.fromList(tvds).skip(1).select((it) -> {
              SNode tr = _quotation_createNode_awiph7_a0a0a0a0a7a1a1a0d(it);
              return _quotation_createNode_awiph7_a1a0a0a0h0b0b0a3(tr, SPropertyOperations.getString(it, PROPS.name$MnvL).toLowerCase());
            }));

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(excepTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> exdecls = new ArrayList<SNode>();
            ListSequence.fromList(exdecls).addSequence(ListSequence.fromList(tvds).skip(ListSequence.fromList(paramTypeVars).count() + 1).select((it) -> _quotation_createNode_awiph7_a0a0a0a0l0b0b0a3(it)));

            final String ename = "_return_terminate" + "_P" + params + "_E" + exceps;
            SNode eifc = SNodeOperations.cast(Sequence.fromIterable(Classifier__BehaviorDescriptor.nestedClassifiers_id4_LVZ3pBjGQ.invoke(node)).findFirst((it) -> ename.equals(SPropertyOperations.getString(it, PROPS.name$MnvL))), CONCEPTS.Interface$db);
            List<SNode> eifcParams = new ArrayList<SNode>();
            ListSequence.fromList(eifcParams).addSequence(ListSequence.fromList(tvds).skip(1).select((it) -> _quotation_createNode_awiph7_a0a0a0a0q0b0b0a3(it)));

            String name = "_void_terminate" + "_P" + params + "_E" + exceps;
            ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.member$L_2d)).addElement(_quotation_createNode_awiph7_a0a91a1a1a0d(t, eifcParams, eifc, tvds, name, pdecls, retVal, exdecls));

            ListSequence.fromList(excepTypeVars).addElement(_quotation_createNode_awiph7_a0a12a1a1a0d("E" + (exceps + 1)));
          }
          ListSequence.fromList(paramTypeVars).addElement(_quotation_createNode_awiph7_a0a2a1a0d("P" + (params + 1)));
        }
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "_UnrestrictedFunctionTypes";
      }
      @Override
      public String getAdditionalInfo() {
        return "_UnrestrictedFunctionTypes";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassConcept$bK;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return "jetbrains.mps.baseLanguage.closures.runtime._UnrestrictedFunctionTypes".equals(NameUtil.nodeFQName(node)) && !(Sequence.fromIterable(Classifier__BehaviorDescriptor.nestedClassifiers_id4_LVZ3pBjGQ.invoke(node)).any((it) -> SPropertyOperations.getString(it, PROPS.name$MnvL).startsWith("_return_void")));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        List<SNode> paramTypeVars = new ArrayList<SNode>();
        for (int params = 0; params <= Constants.MAX_CLOSURE_PARAMETERS; params++) {
          List<SNode> excepTypeVars = new ArrayList<SNode>();
          for (int exceps = 0; exceps <= Constants.MAX_CLOSURE_EXCEPTIONS; exceps++) {
            List<SNode> tvds = new ArrayList<SNode>();
            ListSequence.fromList(tvds).addElement(_quotation_createNode_awiph7_a0a1a1a1a0e());
            SNode r = _quotation_createNode_awiph7_a0c0b0b0a4(ListSequence.fromList(tvds).first());
            SNode retVal = _quotation_createNode_awiph7_a0d0b0b0a4(r);

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(paramTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> pdecls = new ArrayList<SNode>();
            ListSequence.fromList(pdecls).addSequence(ListSequence.fromList(tvds).skip(1).select((it) -> {
              SNode tr = _quotation_createNode_awiph7_a0a0a0a0a7a1a1a0e(it);
              return _quotation_createNode_awiph7_a1a0a0a0h0b0b0a4(tr, SPropertyOperations.getString(it, PROPS.name$MnvL).toLowerCase());
            }));

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(excepTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> exdecls = new ArrayList<SNode>();
            ListSequence.fromList(exdecls).addSequence(ListSequence.fromList(tvds).skip(ListSequence.fromList(paramTypeVars).count() + 1).select((it) -> _quotation_createNode_awiph7_a0a0a0a0l0b0b0a4(it)));

            final String ename = "_return_terminate" + "_P" + params + "_E" + exceps;
            SNode eifc = SNodeOperations.cast(Sequence.fromIterable(Classifier__BehaviorDescriptor.nestedClassifiers_id4_LVZ3pBjGQ.invoke(node)).findFirst((it) -> ename.equals(SPropertyOperations.getString(it, PROPS.name$MnvL))), CONCEPTS.Interface$db);
            List<SNode> eifcParams = new ArrayList<SNode>();
            ListSequence.fromList(eifcParams).addSequence(ListSequence.fromList(tvds).skip(1).select((it) -> _quotation_createNode_awiph7_a0a0a0a0q0b0b0a4(it)));

            String name = "_return_void" + "_P" + params + "_E" + exceps;
            ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.member$L_2d)).addElement(_quotation_createNode_awiph7_a0a91a1a1a0e(r, eifcParams, eifc, tvds, name, pdecls, retVal, exdecls));

            ListSequence.fromList(excepTypeVars).addElement(_quotation_createNode_awiph7_a0a12a1a1a0e("E" + (exceps + 1)));
          }
          ListSequence.fromList(paramTypeVars).addElement(_quotation_createNode_awiph7_a0a2a1a0e("P" + (params + 1)));
        }
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "_UnrestrictedFunctionTypes";
      }
      @Override
      public String getAdditionalInfo() {
        return "_UnrestrictedFunctionTypes";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassConcept$bK;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return "jetbrains.mps.baseLanguage.closures.runtime._UnrestrictedFunctionTypes".equals(NameUtil.nodeFQName(node)) && !(Sequence.fromIterable(Classifier__BehaviorDescriptor.nestedClassifiers_id4_LVZ3pBjGQ.invoke(node)).any((it) -> SPropertyOperations.getString(it, PROPS.name$MnvL).startsWith("_void_void")));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        List<SNode> paramTypeVars = new ArrayList<SNode>();
        for (int params = 0; params <= Constants.MAX_CLOSURE_PARAMETERS; params++) {
          List<SNode> excepTypeVars = new ArrayList<SNode>();
          for (int exceps = 0; exceps <= Constants.MAX_CLOSURE_EXCEPTIONS; exceps++) {
            List<SNode> tvds = new ArrayList<SNode>();
            SNode retVal = _quotation_createNode_awiph7_a0b0b0b0a5();

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(paramTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> pdecls = new ArrayList<SNode>();
            ListSequence.fromList(pdecls).addSequence(ListSequence.fromList(tvds).select((it) -> {
              SNode tr = _quotation_createNode_awiph7_a0a0a0a0a5a1a1a0f(it);
              return _quotation_createNode_awiph7_a1a0a0a0f0b0b0a5(tr, SPropertyOperations.getString(it, PROPS.name$MnvL).toLowerCase());
            }));

            ListSequence.fromList(tvds).addSequence(ListSequence.fromList(excepTypeVars).select((it) -> SNodeOperations.copyNode(it)));
            List<SNode> exdecls = new ArrayList<SNode>();
            ListSequence.fromList(exdecls).addSequence(ListSequence.fromList(tvds).skip(ListSequence.fromList(paramTypeVars).count()).select((it) -> _quotation_createNode_awiph7_a0a0a0a0j0b0b0a5(it)));

            final String ename = "_return_terminate" + "_P" + params + "_E" + exceps;
            SNode eifc = SNodeOperations.cast(Sequence.fromIterable(Classifier__BehaviorDescriptor.nestedClassifiers_id4_LVZ3pBjGQ.invoke(node)).findFirst((it) -> ename.equals(SPropertyOperations.getString(it, PROPS.name$MnvL))), CONCEPTS.Interface$db);
            List<SNode> eifcParams = new ArrayList<SNode>();
            ListSequence.fromList(eifcParams).addSequence(ListSequence.fromList(tvds).select((it) -> _quotation_createNode_awiph7_a0a0a0a0o0b0b0a5(it)));

            String name = "_void_void" + "_P" + params + "_E" + exceps;
            ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.member$L_2d)).addElement(_quotation_createNode_awiph7_a0a71a1a1a0f(eifcParams, eifc, tvds, name, pdecls, retVal, exdecls));

            ListSequence.fromList(excepTypeVars).addElement(_quotation_createNode_awiph7_a0a91a1a1a0f("E" + (exceps + 1)));
          }
          ListSequence.fromList(paramTypeVars).addElement(_quotation_createNode_awiph7_a0a2a1a0f("P" + (params + 1)));
        }
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
  }