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