From 0dd9f2032c48385c0d5236638bf9b211b70bacea Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de> Date: Tue, 21 Apr 2015 13:54:14 +0200 Subject: [PATCH] #112 removed IterableProducer --- .../teetime/framework/test/StageTester.java | 4 +- .../teetime/stage/InitialElementProducer.java | 42 ++++++++--- .../java/teetime/stage/IterableProducer.java | 70 ------------------- 3 files changed, 36 insertions(+), 80 deletions(-) delete mode 100644 src/main/java/teetime/stage/IterableProducer.java diff --git a/src/main/java/teetime/framework/test/StageTester.java b/src/main/java/teetime/framework/test/StageTester.java index d9f97853..4ece7704 100644 --- a/src/main/java/teetime/framework/test/StageTester.java +++ b/src/main/java/teetime/framework/test/StageTester.java @@ -25,7 +25,7 @@ import teetime.framework.AnalysisException; import teetime.framework.Stage; import teetime.framework.StageState; import teetime.stage.CollectorSink; -import teetime.stage.IterableProducer; +import teetime.stage.InitialElementProducer; /** * This class can be used to test single stages in JUnit test cases. @@ -87,7 +87,7 @@ public final class StageTester { public Configuration(final List<InputHolder<?>> inputHolders, final Stage stage, final List<OutputHolder<?>> outputHolders) { for (InputHolder<?> inputHolder : inputHolders) { - final IterableProducer<Object> producer = new IterableProducer<Object>(inputHolder.getInput()); + final InitialElementProducer<Object> producer = new InitialElementProducer<Object>(inputHolder.getInput()); connectBoundedInterThreads(producer.getOutputPort(), inputHolder.getPort()); addThreadableStage(producer); } diff --git a/src/main/java/teetime/stage/InitialElementProducer.java b/src/main/java/teetime/stage/InitialElementProducer.java index 01535b67..bd8fdb43 100644 --- a/src/main/java/teetime/stage/InitialElementProducer.java +++ b/src/main/java/teetime/stage/InitialElementProducer.java @@ -15,34 +15,60 @@ */ package teetime.stage; +import java.util.Arrays; +import java.util.List; + import teetime.framework.AbstractProducerStage; public final class InitialElementProducer<T> extends AbstractProducerStage<T> { - private T[] elements; + private Iterable<T> iter; public InitialElementProducer(final T... elements) { - this.elements = elements; + this.iter = Arrays.asList(elements); + } + + public <O extends Iterable<T>> InitialElementProducer(final O iter) { + this.iter = iter; } @Override protected void execute() { - for (T e : this.elements) { - outputPort.send(e); + for (final T i : this.iter) { + this.outputPort.send(i); } this.terminate(); } - public void setIter(final T[] elements) { - this.elements = elements; + public void setIter(final Iterable<T> iter) { + this.iter = iter; + } + + public void setIter(final T... elements) { + this.iter = Arrays.asList(elements); } @Override public void onStarting() throws Exception { - if (elements == null) { - throw new IllegalArgumentException("elements must not be null"); + if (iter == null) { + throw new IllegalArgumentException("iter must not be null"); } super.onStarting(); } + public static void main(final String[] args) { + // int[] array = new int[] { 0, 0, 0 }; + // new IterableProducer<Integer>(array); + // + // new InitialElementProducer<Integer>(array); + + Integer[] array = new Integer[] { 0, 0, 0 }; + new InitialElementProducer<Integer>(array); + + new InitialElementProducer<Integer>(0, 0, 0); + + List<Integer> iterable = Arrays.asList(0, 0, 0); + new InitialElementProducer<Integer>(iterable); + } + } diff --git a/src/main/java/teetime/stage/IterableProducer.java b/src/main/java/teetime/stage/IterableProducer.java deleted file mode 100644 index 3a31136b..00000000 --- a/src/main/java/teetime/stage/IterableProducer.java +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package teetime.stage; - -import java.util.Arrays; -import java.util.List; - -import teetime.framework.AbstractProducerStage; - -public final class IterableProducer<T> extends AbstractProducerStage<T> { - - private Iterable<T> iter; - - public IterableProducer(final T... elements) { - this.iter = Arrays.asList(elements); - } - - public <O extends Iterable<T>> IterableProducer(final O iter) { - this.iter = iter; - } - - @Override - protected void execute() { - for (final T i : this.iter) { - this.outputPort.send(i); - } - this.terminate(); - } - - public void setIter(final Iterable<T> iter) { - this.iter = iter; - } - - @Override - public void onStarting() throws Exception { - if (iter == null) { - throw new IllegalArgumentException("iter must not be null"); - } - super.onStarting(); - } - - public static void main(final String[] args) { - // int[] array = new int[] { 0, 0, 0 }; - // new IterableProducer<Integer>(array); - // - // new InitialElementProducer<Integer>(array); - - Integer[] array = new Integer[] { 0, 0, 0 }; - new IterableProducer<Integer>(array); - - new IterableProducer<Integer>(0, 0, 0); - - List<Integer> iterable = Arrays.asList(0, 0, 0); - new IterableProducer<Integer>(iterable); - } - -} -- GitLab