public MigrationToCollections_MigrationScript()

in languages/baseLanguage/collections/source_gen/jetbrains/mps/baseLanguage/collections/scripts/MigrationToCollections_MigrationScript.java [27:870]


  public MigrationToCollections_MigrationScript() {
    super("Migration from List to Collections");
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "ListMigration";
      }
      @Override
      public String getAdditionalInfo() {
        return "ListMigration";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassifierType$bL;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForType(node, 1, ListSequence.fromListAndArray(new ArrayList<SNode>(), SNodeOperations.getNode("6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~List"), SNodeOperations.getNode("6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~ArrayList"), SNodeOperations.getNode("6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~LinkedList")));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x10c25fb076aL, "jetbrains.mps.baseLanguage.collections.structure.ListType"));
        SLinkOperations.setTarget(result, LINKS.elementType$ssn, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.parameter$oqG$)).first()));
        SNodeOperations.replaceWithAnother(node, result);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Size ";
      }
      @Override
      public String getAdditionalInfo() {
        return "Size ";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForAll(node, "size", ListSequence.fromList(new ArrayList<ParameterType>()));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNodeOperations.replaceWithAnother(node, SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x10ec4627e6fL, "jetbrains.mps.baseLanguage.collections.structure.GetSizeOperation")));
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Get";
      }
      @Override
      public String getAdditionalInfo() {
        return "Get";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "get", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode access = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11d6213c318L, "jetbrains.mps.baseLanguage.collections.structure.ListElementAccessExpression"));
        SLinkOperations.setTarget(access, LINKS.list$O9HN, SLinkOperations.getTarget(SNodeOperations.cast(SNodeOperations.getParent(node), CONCEPTS.DotExpression$yW), LINKS.operand$w6IR));
        SLinkOperations.setTarget(access, LINKS.index$8fpl, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(SNodeOperations.getParent(node), access);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Clear";
      }
      @Override
      public String getAdditionalInfo() {
        return "Clear";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "clear", ListSequence.fromList(new ArrayList<ParameterType>()));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNodeOperations.replaceWithAnother(node, SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11db03915deL, "jetbrains.mps.baseLanguage.collections.structure.ClearAllElementsOperation")));
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Add element to List";
      }
      @Override
      public String getAdditionalInfo() {
        return "Add element to List";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "add", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.ANY));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode opration = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x10e39e3ff80L, "jetbrains.mps.baseLanguage.collections.structure.AddElementOperation"));
        SLinkOperations.setTarget(opration, LINKS.argument$ZmGN, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, opration);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Add element to pos";
      }
      @Override
      public String getAdditionalInfo() {
        return "Add element to pos";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "add", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.INT, ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11d5cc25c8fL, "jetbrains.mps.baseLanguage.collections.structure.InsertElementOperation"));
        SLinkOperations.setTarget(operation, LINKS.index$UJUH, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SLinkOperations.setTarget(operation, LINKS.element$mzzc, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).last()));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "isEmpty";
      }
      @Override
      public String getAdditionalInfo() {
        return "isEmpty";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForAll(node, "isEmpty", ListSequence.fromList(new ArrayList<ParameterType>()));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNodeOperations.replaceWithAnother(node, SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x10f5f053dc7L, "jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation")));
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "set";
      }
      @Override
      public String getAdditionalInfo() {
        return "set";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "set", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.INT, ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11d5e2fc7c1L, "jetbrains.mps.baseLanguage.collections.structure.SetElementOperation"));
        SLinkOperations.setTarget(operation, LINKS.index$d0Ns, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SLinkOperations.setTarget(operation, LINKS.element$d1hu, SNodeOperations.copyNode(ListSequence.fromList(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).toList()).getElement(1)));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "remove";
      }
      @Override
      public String getAdditionalInfo() {
        return "remove";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "remove", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11db038dd8cL, "jetbrains.mps.baseLanguage.collections.structure.RemoveAtElementOperation"));
        SLinkOperations.setTarget(operation, LINKS.index$GfS7, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "removeObject";
      }
      @Override
      public String getAdditionalInfo() {
        return "removeObject";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "remove", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x10fcd477695L, "jetbrains.mps.baseLanguage.collections.structure.RemoveElementOperation"));
        SLinkOperations.setTarget(operation, LINKS.argument$ZmGN, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "removeAll";
      }
      @Override
      public String getAdditionalInfo() {
        return "removeAll";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "removeAll", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11154a8aed3L, "jetbrains.mps.baseLanguage.collections.structure.RemoveAllElementsOperation"));
        SLinkOperations.setTarget(operation, LINKS.argument$ZmGN, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "indexOf";
      }
      @Override
      public String getAdditionalInfo() {
        return "indexOf";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "indexOf", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x110bc593e18L, "jetbrains.mps.baseLanguage.collections.structure.GetIndexOfOperation"));
        SLinkOperations.setTarget(operation, LINKS.argument$ZmGN, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "contains";
      }
      @Override
      public String getAdditionalInfo() {
        return "contains";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForAll(node, "contains", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x110efd61311L, "jetbrains.mps.baseLanguage.collections.structure.ContainsOperation"));
        SLinkOperations.setTarget(operation, LINKS.argument$ZmGN, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "addAll";
      }
      @Override
      public String getAdditionalInfo() {
        return "addAll";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "addAll", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x10e3d20dbefL, "jetbrains.mps.baseLanguage.collections.structure.AddAllElementsOperation"));
        SLinkOperations.setTarget(operation, LINKS.argument$ZmGN, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Add First";
      }
      @Override
      public String getAdditionalInfo() {
        return "Add First";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "addFirst", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11db0384e32L, "jetbrains.mps.baseLanguage.collections.structure.AddFirstElementOperation"));
        SLinkOperations.setTarget(operation, LINKS.argument$ZmGN, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Add Last";
      }
      @Override
      public String getAdditionalInfo() {
        return "Add Last";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "addLast", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode operation = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11db0389d32L, "jetbrains.mps.baseLanguage.collections.structure.AddLastElementOperation"));
        SLinkOperations.setTarget(operation, LINKS.argument$ZmGN, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, operation);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Remove first";
      }
      @Override
      public String getAdditionalInfo() {
        return "Remove first";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "removeFirst", ListSequence.fromList(new ArrayList<ParameterType>()));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNodeOperations.replaceWithAnother(node, SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11db0742a49L, "jetbrains.mps.baseLanguage.collections.structure.RemoveFirstElementOperation")));
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "ArrayList";
      }
      @Override
      public String getAdditionalInfo() {
        return "ArrayList";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassCreator$ZG;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return Objects.equals(SPropertyOperations.getString(SNodeOperations.cast(SNodeOperations.getParent(SLinkOperations.getTarget(node, LINKS.baseMethodDeclaration$pyYw)), CONCEPTS.INamedConcept$Kd), PROPS.name$MnvL), "ArrayList") && ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.typeParameter$uYiw)).count() == 1 && ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).count() <= 1;
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x10e39306c2eL, "jetbrains.mps.baseLanguage.collections.structure.ListCreatorWithInit"));
        SLinkOperations.setTarget(result, LINKS.elementType$WxmV, ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.typeParameter$uYiw)).first());
        if (ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).isNotEmpty()) {
          SLinkOperations.setTarget(result, LINKS.copyFrom$DKAJ, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        }
        SNodeOperations.replaceWithAnother(node, result);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "LinkedList";
      }
      @Override
      public String getAdditionalInfo() {
        return "LinkedList";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassCreator$ZG;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return Objects.equals(SPropertyOperations.getString(SNodeOperations.cast(SNodeOperations.getParent(SLinkOperations.getTarget(node, LINKS.baseMethodDeclaration$pyYw)), CONCEPTS.INamedConcept$Kd), PROPS.name$MnvL), "LinkedList") && ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).isEmpty() && ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.typeParameter$uYiw)).count() == 1;
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11daf69a138L, "jetbrains.mps.baseLanguage.collections.structure.LinkedListCreator"));
        SLinkOperations.setTarget(result, LINKS.elementType$WxmV, ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.typeParameter$uYiw)).first());
        SNodeOperations.replaceWithAnother(node, result);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "SetMigration";
      }
      @Override
      public String getAdditionalInfo() {
        return "SetMigration";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassifierType$bL;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForType(node, 1, ListSequence.fromListAndArray(new ArrayList<SNode>(), SNodeOperations.getNode("6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~Set"), SNodeOperations.getNode("6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~HashSet"), SNodeOperations.getNode("6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~LinkedHashSet")));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11d91cbbcd0L, "jetbrains.mps.baseLanguage.collections.structure.SetType"));
        SLinkOperations.setTarget(result, LINKS.elementType$tQrQ, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.parameter$oqG$)).first()));
        SNodeOperations.replaceWithAnother(node, result);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Add element to Set";
      }
      @Override
      public String getAdditionalInfo() {
        return "Add element to Set";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForSet(node, "add", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode opration = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11d9514ebd8L, "jetbrains.mps.baseLanguage.collections.structure.AddSetElementOperation"));
        SLinkOperations.setTarget(opration, LINKS.argument$dp1k, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, opration);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "AddAll elements to Set";
      }
      @Override
      public String getAdditionalInfo() {
        return "AddAll elements to Set";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForSet(node, "addAll", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode opration = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11d969dca87L, "jetbrains.mps.baseLanguage.collections.structure.AddAllSetElementsOperation"));
        SLinkOperations.setTarget(opration, LINKS.argument$sATI, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, opration);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "RemoveAll elements to Set";
      }
      @Override
      public String getAdditionalInfo() {
        return "RemoveAll elements to Set";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForSet(node, "removeAll", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode opration = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11d96b14ae4L, "jetbrains.mps.baseLanguage.collections.structure.RemoveAllSetElementsOperation"));
        SLinkOperations.setTarget(opration, LINKS.argument$sItp, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, opration);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Remove element from Set";
      }
      @Override
      public String getAdditionalInfo() {
        return "Remove element from Set";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForSet(node, "remove", ListSequence.fromListAndArray(new ArrayList<ParameterType>(), ParameterType.NOT_INT));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode opration = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11d968cae32L, "jetbrains.mps.baseLanguage.collections.structure.RemoveSetElementOperation"));
        SLinkOperations.setTarget(opration, LINKS.argument$7Jlk, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        SNodeOperations.replaceWithAnother(node, opration);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "HashSet migration";
      }
      @Override
      public String getAdditionalInfo() {
        return "HashSet migration";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassCreator$ZG;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return Objects.equals(SPropertyOperations.getString(SNodeOperations.cast(SNodeOperations.getParent(SLinkOperations.getTarget(node, LINKS.baseMethodDeclaration$pyYw)), CONCEPTS.INamedConcept$Kd), PROPS.name$MnvL), "HashSet") && ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).count() <= 1 && ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.typeParameter$uYiw)).count() == 1;
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x11d9210de65L, "jetbrains.mps.baseLanguage.collections.structure.HashSetCreator"));
        SLinkOperations.setTarget(result, LINKS.elementType$WxmV, ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.typeParameter$uYiw)).first());
        if (ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).isNotEmpty()) {
          SLinkOperations.setTarget(result, LINKS.copyFrom$DKAJ, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        }
        SNodeOperations.replaceWithAnother(node, result);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "LinkedHashSet migration";
      }
      @Override
      public String getAdditionalInfo() {
        return "LinkedHashSet migration";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassCreator$ZG;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return Objects.equals(SPropertyOperations.getString(SNodeOperations.cast(SNodeOperations.getParent(SLinkOperations.getTarget(node, LINKS.baseMethodDeclaration$pyYw)), CONCEPTS.INamedConcept$Kd), PROPS.name$MnvL), "LinkedHashSet") && ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).count() <= 1 && ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.typeParameter$uYiw)).count() == 1;
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x120c2b5bbfdL, "jetbrains.mps.baseLanguage.collections.structure.LinkedHashSetCreator"));
        SLinkOperations.setTarget(result, LINKS.elementType$WxmV, ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.typeParameter$uYiw)).first());
        if (ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).isNotEmpty()) {
          SLinkOperations.setTarget(result, LINKS.copyFrom$DKAJ, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.actualArgument$pzdx)).first()));
        }
        SNodeOperations.replaceWithAnother(node, result);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "hasNext";
      }
      @Override
      public String getAdditionalInfo() {
        return "hasNext";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForIterator(node, "hasNext", ListSequence.fromList(new ArrayList<ParameterType>()));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode opration = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x1201f035df4L, "jetbrains.mps.baseLanguage.collections.structure.HasNextOperation"));
        SNodeOperations.replaceWithAnother(node, opration);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "next";
      }
      @Override
      public String getAdditionalInfo() {
        return "next";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForIterator(node, "next", ListSequence.fromList(new ArrayList<ParameterType>()));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode opration = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x1201f05703dL, "jetbrains.mps.baseLanguage.collections.structure.GetNextOperation"));
        SNodeOperations.replaceWithAnother(node, opration);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "getIterator";
      }
      @Override
      public String getAdditionalInfo() {
        return "getIterator";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.InstanceMethodCallOperation$uu;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForLists(node, "iterator", ListSequence.fromList(new ArrayList<ParameterType>()));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode opration = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x1201ecef58aL, "jetbrains.mps.baseLanguage.collections.structure.GetIteratorOperation"));
        SNodeOperations.replaceWithAnother(node, opration);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
    this.addRefactoring(new AbstractMigrationRefactoring() {
      @Override
      public String getName() {
        return "Iterator";
      }
      @Override
      public String getAdditionalInfo() {
        return "Iterator";
      }
      @Override
      public SAbstractConcept getApplicableConcept() {
        return CONCEPTS.ClassifierType$bL;
      }
      @Override
      public boolean isApplicableInstanceNode(SNode node) {
        return ListMigrationUtil.isApplicableForType(node, 1, ListSequence.fromListAndArray(new ArrayList<SNode>(), SNodeOperations.getNode("6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~Iterator")));
      }
      @Override
      public void doUpdateInstanceNode(SNode node) {
        SNode result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x1201ed2b158L, "jetbrains.mps.baseLanguage.collections.structure.IteratorType"));
        SLinkOperations.setTarget(result, LINKS.elementType$COam, SNodeOperations.copyNode(ListSequence.fromList(SLinkOperations.getChildren(node, LINKS.parameter$oqG$)).first()));
        SNodeOperations.replaceWithAnother(node, result);
      }
      @Override
      public boolean isShowAsIntention() {
        return false;
      }
    });
  }