From e01218edbe79651b67def5805b6c59a88da4f1ca Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de> Date: Fri, 20 Feb 2015 15:13:20 +0100 Subject: [PATCH] changed visibilities; added setter to Iterable- and InitialElementProducer --- .../framework/AnalysisConfiguration.java | 5 ++++- .../teetime/framework/CompositeStage.java | 2 +- .../teetime/stage/InitialElementProducer.java | 14 +++++++++++- .../java/teetime/stage/IterableProducer.java | 22 ++++++++++++++----- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/teetime/framework/AnalysisConfiguration.java b/src/main/java/teetime/framework/AnalysisConfiguration.java index ef5ae8a4..71441436 100644 --- a/src/main/java/teetime/framework/AnalysisConfiguration.java +++ b/src/main/java/teetime/framework/AnalysisConfiguration.java @@ -26,6 +26,9 @@ import teetime.framework.pipe.PipeFactoryRegistry; */ public abstract class AnalysisConfiguration { + /** + * Can be used by subclasses, to obtain pipe factories + */ protected static final PipeFactoryRegistry PIPE_FACTORY_REGISTRY = PipeFactoryRegistry.INSTANCE; private final List<Stage> threadableStageJobs = new LinkedList<Stage>(); @@ -39,7 +42,7 @@ public abstract class AnalysisConfiguration { * @param stage * A arbitrary stage, which will be added to the configuration und executed in a thread. */ - public void addThreadableStage(final Stage stage) { + protected void addThreadableStage(final Stage stage) { this.threadableStageJobs.add(stage); } diff --git a/src/main/java/teetime/framework/CompositeStage.java b/src/main/java/teetime/framework/CompositeStage.java index 4765fe87..210ecd4c 100644 --- a/src/main/java/teetime/framework/CompositeStage.java +++ b/src/main/java/teetime/framework/CompositeStage.java @@ -35,7 +35,7 @@ import teetime.framework.validation.InvalidPortConnection; @SuppressWarnings("PMD.AbstractNaming") public abstract class CompositeStage extends Stage { - protected static final IPipeFactory INTRA_PIPE_FACTORY = PipeFactoryRegistry.INSTANCE + private static final IPipeFactory INTRA_PIPE_FACTORY = PipeFactoryRegistry.INSTANCE .getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false); protected abstract Stage getFirstStage(); diff --git a/src/main/java/teetime/stage/InitialElementProducer.java b/src/main/java/teetime/stage/InitialElementProducer.java index 733d3be8..9aa93ec7 100644 --- a/src/main/java/teetime/stage/InitialElementProducer.java +++ b/src/main/java/teetime/stage/InitialElementProducer.java @@ -19,7 +19,7 @@ import teetime.framework.AbstractProducerStage; public final class InitialElementProducer<T> extends AbstractProducerStage<T> { - private final T[] elements; + private T[] elements; public InitialElementProducer(final T... elements) { this.elements = elements; @@ -33,4 +33,16 @@ public final class InitialElementProducer<T> extends AbstractProducerStage<T> { this.terminate(); } + public void setIter(final T[] elements) { + this.elements = elements; + } + + @Override + public void onStarting() throws Exception { + if (elements == null) { + throw new NullPointerException("iter must not be null"); + } + super.onStarting(); + } + } diff --git a/src/main/java/teetime/stage/IterableProducer.java b/src/main/java/teetime/stage/IterableProducer.java index a14959a0..3f85021a 100644 --- a/src/main/java/teetime/stage/IterableProducer.java +++ b/src/main/java/teetime/stage/IterableProducer.java @@ -17,20 +17,32 @@ package teetime.stage; import teetime.framework.AbstractProducerStage; -public final class IterableProducer<O extends Iterable<T>, T> extends AbstractProducerStage<T> { +public final class IterableProducer<T> extends AbstractProducerStage<T> { - private O iter = null; + private Iterable<T> iter; - public IterableProducer(final O iter) { + public <O extends Iterable<T>> IterableProducer(final O iter) { this.iter = iter; } @Override protected void execute() { - for (T i : iter) { - outputPort.send(i); + for (final T i : this.iter) { + this.outputPort.send(i); } } + public void setIter(final Iterable<T> iter) { + this.iter = iter; + } + + @Override + public void onStarting() throws Exception { + if (iter == null) { + throw new NullPointerException("iter must not be null"); + } + super.onStarting(); + } + } -- GitLab