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