Skip to content
Snippets Groups Projects
Commit 0dd9f203 authored by Nelson Tavares de Sousa's avatar Nelson Tavares de Sousa
Browse files

#112 removed IterableProducer

parent 0339237e
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
......
......@@ -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);
}
}
/**
* 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);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment