package jetbrains.mps.samples.SwingBuilder.sandbox; /*Generated by MPS */ import java.util.List; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.ArrayList; import jetbrains.mps.samples.LightweightDSL.plugin.transformRuntime.PipelineElement; import jetbrains.mps.internal.collections.runtime.IVisitor; import jetbrains.mps.baseLanguage.closures.runtime.Wrappers; /** * Creates a transforming pipeline and processes the integer data printing out the result. */ public class Demo { public List<Integer> getData() { return ListSequence.fromListAndArray(new ArrayList<Integer>(), 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); } public List<PipelineElement> getTransformers() { List<PipelineElement> transformers = ListSequence.fromList(new ArrayList<PipelineElement>()); ListSequence.fromList(transformers).addElement(new Square()); ListSequence.fromList(transformers).addElement(new Duplicate()); ListSequence.fromList(transformers).addElement(new BigValues()); return transformers; } private void run() { List<Integer> data = getData(); System.out.println("Initial data: \t\t" + data); final List<Integer> processedData = ListSequence.fromList(new ArrayList<Integer>()); final List<PipelineElement> transformers = getTransformers(); ListSequence.fromList(data).visitAll(new IVisitor<Integer>() { public void visit(Integer dataPiece) { final Wrappers._int piece = new Wrappers._int(dataPiece); ListSequence.fromList(transformers).visitAll(new IVisitor<PipelineElement>() { public void visit(PipelineElement transformer) { piece.value = transformer.transformValue(piece.value); if (piece.value == Integer.MIN_VALUE) { return; } } }); if (piece.value != Integer.MIN_VALUE) { ListSequence.fromList(processedData).addElement(piece.value); } } }); System.out.println("Processed data: \t" + processedData); } public static void main(String[] args) { new Demo().run(); } }