package jetbrains.mps.lang.migration.runtime.base; /*Generated by MPS */ import jetbrains.mps.refactoring.participant.RefactoringParticipant; import java.util.List; import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.refactoring.participant.RefactoringSession; import jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes; import jetbrains.mps.refactoring.participant.RefactoringUI; import java.util.Map; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.internal.collections.runtime.ISelector; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations; import jetbrains.mps.internal.collections.runtime.MapSequence; import java.util.HashMap; public class RefactoringPartImpl { private RefactoringParticipant.PersistentRefactoringParticipant<?, ?, ?, ?> myParticipant; private List<SNode> myParts; private SNode mySelectedOptionsSerialized; public RefactoringPartImpl(SNode selectedOptionsSerialized, List<SNode> parts, RefactoringParticipant.PersistentRefactoringParticipant<?, ?, ?, ?> participant) { myParticipant = participant; mySelectedOptionsSerialized = selectedOptionsSerialized; myParts = parts; } public void execute(SModule module, RefactoringSession refactoringSession, _FunctionTypes._void_P1_E0<? super Runnable> runner, _FunctionTypes._void_P4_E0<? super RefactoringUI, ? super RefactoringParticipant.PersistentRefactoringParticipant, ? super Iterable<SNode>, ? super Map<SNode, SNode>> refactoringProcessor) { performDeserializingRefactoring(module, myParticipant, refactoringSession, runner, refactoringProcessor); } public <IP, FP> void performDeserializingRefactoring(final SModule module, RefactoringParticipant.PersistentRefactoringParticipant<?, ?, IP, FP> participant, RefactoringSession refactoringSession, _FunctionTypes._void_P1_E0<? super Runnable> runner, _FunctionTypes._void_P4_E0<? super RefactoringUI, ? super RefactoringParticipant.PersistentRefactoringParticipant, ? super Iterable<SNode>, ? super Map<SNode, SNode>> refactoringProcessor) { RefactoringUI ui = new EmptyRefactoringUI((mySelectedOptionsSerialized == null ? null : ListSequence.fromList(SLinkOperations.getChildren(mySelectedOptionsSerialized, MetaAdapterFactory.getContainmentLink(0x9074634404fd4286L, 0x97d5b46ae6a81709L, 0x31ee543051f23340L, 0x31ee543051f23346L, "options"))).select(new ISelector<SNode, RefactoringParticipant.Option>() { public RefactoringParticipant.Option select(SNode it) { return new RefactoringParticipant.Option(SPropertyOperations.getString(it, MetaAdapterFactory.getProperty(0x9074634404fd4286L, 0x97d5b46ae6a81709L, 0x31ee543051f23343L, 0x31ee543051f23344L, "optionId")), SPropertyOperations.getString(it, MetaAdapterFactory.getProperty(0x9074634404fd4286L, 0x97d5b46ae6a81709L, 0x31ee543051f23343L, 0x31ee543051f30774L, "description"))); } }).toListSequence()), runner); Map<SNode, SNode> initialToFinal = MapSequence.fromMap(new HashMap<SNode, SNode>()); for (SNode part : ListSequence.fromList(myParts)) { MapSequence.fromMap(initialToFinal).put(SLinkOperations.getTarget(part, MetaAdapterFactory.getContainmentLink(0x9074634404fd4286L, 0x97d5b46ae6a81709L, 0x2b3f57492c163158L, 0x325b97b223b9e3acL, "initialState")), SLinkOperations.getTarget(part, MetaAdapterFactory.getContainmentLink(0x9074634404fd4286L, 0x97d5b46ae6a81709L, 0x2b3f57492c163158L, 0x325b97b223b9e3aeL, "finalState"))); } refactoringProcessor.invoke(ui, participant, SLinkOperations.collect(myParts, MetaAdapterFactory.getContainmentLink(0x9074634404fd4286L, 0x97d5b46ae6a81709L, 0x2b3f57492c163158L, 0x325b97b223b9e3acL, "initialState")), initialToFinal); } }