diff --git a/src/main/java/teetime/framework/AbstractBasicStage.java b/src/main/java/teetime/framework/AbstractBasicStage.java deleted file mode 100644 index 0bbcb5a56ab23230eaa44988ede9d7dad5d537fe..0000000000000000000000000000000000000000 --- a/src/main/java/teetime/framework/AbstractBasicStage.java +++ /dev/null @@ -1,16 +0,0 @@ -package teetime.framework; - -import teetime.framework.signal.ISignal; - -public abstract class AbstractBasicStage implements IStage { - - protected abstract void executeWithPorts(); - - protected abstract void onSignal(ISignal signal, InputPort<?> inputPort); - - protected abstract TerminationStrategy getTerminationStrategy(); - - protected abstract void terminate(); - - protected abstract boolean shouldBeTerminated(); -} diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java index 06d80bfe8c44642113599e12b4e487f5f245be20..b56eb2ae89e375c5217fb1b1c5b2f5b019cba595 100644 --- a/src/main/java/teetime/framework/AbstractStage.java +++ b/src/main/java/teetime/framework/AbstractStage.java @@ -14,7 +14,7 @@ import teetime.framework.pipe.IPipe; import teetime.framework.signal.ISignal; import teetime.framework.validation.InvalidPortConnection; -public abstract class AbstractStage extends AbstractBasicStage { +public abstract class AbstractStage extends Stage { private final String id; /** @@ -22,7 +22,7 @@ public abstract class AbstractStage extends AbstractBasicStage { */ protected final Logger logger; // NOPMD - private IStage parentStage; + private Stage parentStage; private final List<InputPort<?>> inputPortList = new ArrayList<InputPort<?>>(); private final List<OutputPort<?>> outputPortList = new ArrayList<OutputPort<?>>(); @@ -75,12 +75,12 @@ public abstract class AbstractStage extends AbstractBasicStage { } @Override - public IStage getParentStage() { + public Stage getParentStage() { return this.parentStage; } @Override - public void setParentStage(final IStage parentStage, final int index) { + public void setParentStage(final Stage parentStage, final int index) { this.parentStage = parentStage; } diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java index 286db07a5da6d43605f55562ffd67654477eff98..fc3b26ae8a331ed3aebbce382dd2cac6a104dc6b 100644 --- a/src/main/java/teetime/framework/Analysis.java +++ b/src/main/java/teetime/framework/Analysis.java @@ -28,8 +28,8 @@ public class Analysis implements UncaughtExceptionHandler { } public void init() { - final List<AbstractBasicStage> threadableStageJobs = this.configuration.getThreadableStageJobs(); - for (AbstractBasicStage stage : threadableStageJobs) { + final List<Stage> threadableStageJobs = this.configuration.getThreadableStageJobs(); + for (Stage stage : threadableStageJobs) { final Thread thread = new Thread(new RunnableStage(stage)); switch (stage.getTerminationStrategy()) { case BY_SIGNAL: diff --git a/src/main/java/teetime/framework/AnalysisConfiguration.java b/src/main/java/teetime/framework/AnalysisConfiguration.java index 81f41e1a953ff0796a644f50adb45048f4fab89e..c6a0436bc33783ac7d044c817729389d3a61fafe 100644 --- a/src/main/java/teetime/framework/AnalysisConfiguration.java +++ b/src/main/java/teetime/framework/AnalysisConfiguration.java @@ -8,15 +8,15 @@ import teetime.framework.pipe.PipeFactoryRegistry; public class AnalysisConfiguration { protected static final PipeFactoryRegistry PIPE_FACTORY_REGISTRY = PipeFactoryRegistry.INSTANCE; - private final List<AbstractBasicStage> threadableStageJobs = new LinkedList<AbstractBasicStage>(); + private final List<Stage> threadableStageJobs = new LinkedList<Stage>(); public AnalysisConfiguration() {} - List<AbstractBasicStage> getThreadableStageJobs() { + List<Stage> getThreadableStageJobs() { return this.threadableStageJobs; } - public void addThreadableStage(final AbstractBasicStage stage) { + public void addThreadableStage(final Stage stage) { this.threadableStageJobs.add(stage); } diff --git a/src/main/java/teetime/framework/IStage.java b/src/main/java/teetime/framework/IStage.java deleted file mode 100644 index a9033bba0caf9f08b247035fa717ee94dd098c53..0000000000000000000000000000000000000000 --- a/src/main/java/teetime/framework/IStage.java +++ /dev/null @@ -1,22 +0,0 @@ -package teetime.framework; - -import java.util.List; - -import teetime.framework.validation.InvalidPortConnection; - -@Deprecated -public interface IStage { - - public String getId(); - - public IStage getParentStage(); - - public void setParentStage(IStage parentStage, int index); - - /** - * - * @param invalidPortConnections - * <i>(Passed as parameter for performance reasons)</i> - */ - public void validateOutputPorts(List<InvalidPortConnection> invalidPortConnections); -} diff --git a/src/main/java/teetime/framework/InputPort.java b/src/main/java/teetime/framework/InputPort.java index 942f06f76afc56decf83c5113331cbfff0640edb..62b14d9bf8452ad4ae7defc8bbfda1ba10abdf75 100644 --- a/src/main/java/teetime/framework/InputPort.java +++ b/src/main/java/teetime/framework/InputPort.java @@ -4,9 +4,9 @@ import teetime.framework.pipe.IPipe; public class InputPort<T> extends AbstractPort<T> { - private final AbstractBasicStage owningStage; + private final Stage owningStage; - InputPort(final AbstractBasicStage owningStage) { + InputPort(final Stage owningStage) { super(); this.owningStage = owningStage; } @@ -33,7 +33,7 @@ public class InputPort<T> extends AbstractPort<T> { this.pipe = pipe; } - public AbstractBasicStage getOwningStage() { + public Stage getOwningStage() { return this.owningStage; } diff --git a/src/main/java/teetime/framework/RunnableStage.java b/src/main/java/teetime/framework/RunnableStage.java index 89796f9020836da664edf609c52e7916c7a7d4a4..89340d200883e727de82844f2d9bc6ff800de20f 100644 --- a/src/main/java/teetime/framework/RunnableStage.java +++ b/src/main/java/teetime/framework/RunnableStage.java @@ -10,11 +10,11 @@ import teetime.framework.validation.AnalysisNotValidException; public class RunnableStage implements Runnable { - private final AbstractBasicStage stage; + private final Stage stage; private final Logger logger; // NOPMD private boolean validationEnabled; - public RunnableStage(final AbstractBasicStage stage) { + public RunnableStage(final Stage stage) { this.stage = stage; this.logger = LoggerFactory.getLogger(stage.getClass()); } diff --git a/src/main/java/teetime/framework/Stage.java b/src/main/java/teetime/framework/Stage.java new file mode 100644 index 0000000000000000000000000000000000000000..d490bc631a669a4b43509bda8c511331f80e754b --- /dev/null +++ b/src/main/java/teetime/framework/Stage.java @@ -0,0 +1,32 @@ +package teetime.framework; + +import java.util.List; + +import teetime.framework.signal.ISignal; +import teetime.framework.validation.InvalidPortConnection; + +public abstract class Stage { + + public abstract String getId(); + + public abstract Stage getParentStage(); + + public abstract void setParentStage(Stage parentStage, int index); + + /** + * + * @param invalidPortConnections + * <i>(Passed as parameter for performance reasons)</i> + */ + public abstract void validateOutputPorts(List<InvalidPortConnection> invalidPortConnections); + + protected abstract void executeWithPorts(); + + protected abstract void onSignal(ISignal signal, InputPort<?> inputPort); + + protected abstract TerminationStrategy getTerminationStrategy(); + + protected abstract void terminate(); + + protected abstract boolean shouldBeTerminated(); +} diff --git a/src/main/java/teetime/framework/pipe/AbstractPipe.java b/src/main/java/teetime/framework/pipe/AbstractPipe.java index cc28ecf90584eb6807682d0dac1d320cf9e04c85..1790a4451479385452b89422bf43d75a5dfd9429 100644 --- a/src/main/java/teetime/framework/pipe/AbstractPipe.java +++ b/src/main/java/teetime/framework/pipe/AbstractPipe.java @@ -1,6 +1,6 @@ package teetime.framework.pipe; -import teetime.framework.AbstractBasicStage; +import teetime.framework.Stage; import teetime.framework.InputPort; import teetime.framework.OutputPort; @@ -13,7 +13,7 @@ public abstract class AbstractPipe implements IPipe { * this.getPipe().getTargetPort().getOwningStage() * </pre> */ - protected AbstractBasicStage cachedTargetStage; + protected Stage cachedTargetStage; private InputPort<?> targetPort; diff --git a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java b/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java index 18476d0ca6e46e8d11f02e7f158d098a0f107c3d..e5e38cab4f897c29787c68774b51c24d8f2d5b58 100644 --- a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java +++ b/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java @@ -17,7 +17,7 @@ package teetime.examples.experiment09; import java.util.List; -import teetime.framework.AbstractBasicStage; +import teetime.framework.Stage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableStage; import teetime.framework.pipe.CommittablePipe; @@ -43,7 +43,7 @@ public class MethodCallThroughputAnalysis9 { private Runnable runnable; public void init() { - AbstractBasicStage pipeline = this.buildPipeline(); + Stage pipeline = this.buildPipeline(); this.runnable = new RunnableStage(pipeline); } diff --git a/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java b/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java index e1598de80e5a1f79ebc05e5866869eeb7df1b260..ac70216dab166fb436ea93937ff58ba5f9a035f7 100644 --- a/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java +++ b/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java @@ -17,7 +17,7 @@ package teetime.examples.experiment11; import java.util.List; -import teetime.framework.AbstractBasicStage; +import teetime.framework.Stage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableStage; import teetime.framework.pipe.UnorderedGrowablePipe; @@ -43,7 +43,7 @@ public class MethodCallThroughputAnalysis11 { private Runnable runnable; public void init() { - AbstractBasicStage pipeline = this.buildPipeline(this.numInputObjects, this.inputObjectCreator); + Stage pipeline = this.buildPipeline(this.numInputObjects, this.inputObjectCreator); this.runnable = new RunnableStage(pipeline); } diff --git a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java index 1546da21c2a9975f14037d0167cab39cc5ebe1e8..658ce7a02980b7127307373fc08df924317b01fe 100644 --- a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java +++ b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java @@ -17,7 +17,7 @@ package teetime.examples.experiment14; import java.util.List; -import teetime.framework.AbstractBasicStage; +import teetime.framework.Stage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableStage; import teetime.framework.pipe.IPipeFactory; @@ -47,7 +47,7 @@ public class MethodCallThroughputAnalysis14 { private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; public void init() { - AbstractBasicStage pipeline = this.buildPipeline(); + Stage pipeline = this.buildPipeline(); this.runnable = new RunnableStage(pipeline); } diff --git a/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java b/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java index 059611424d23726eb525705674d84dd06ac68db8..f6c65eed58ff0f2c0910271db603c0b0be886636 100644 --- a/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java +++ b/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java @@ -17,7 +17,7 @@ package teetime.examples.experiment15; import java.util.List; -import teetime.framework.AbstractBasicStage; +import teetime.framework.Stage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableStage; import teetime.framework.pipe.OrderedGrowableArrayPipe; @@ -58,7 +58,7 @@ public class MethodCallThroughputAnalysis15 { OldHeadPipeline<Clock, Sink<Long>> clockPipeline = this.buildClockPipeline(); this.clockRunnable = new RunnableStage(clockPipeline); - AbstractBasicStage pipeline = this.buildPipeline(this.clock); + Stage pipeline = this.buildPipeline(this.clock); this.runnable = new RunnableStage(pipeline); } diff --git a/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java b/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java index 503e8b832082255ab6d1abf5813bde10c8e11ba2..c9d8f6d5a0319c08aaa3dc7477dff8326df4e709 100644 --- a/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java +++ b/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java @@ -19,9 +19,9 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import teetime.framework.Stage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableStage; -import teetime.framework.IStage; import teetime.framework.pipe.DummyPipe; import teetime.framework.pipe.IPipe; import teetime.framework.pipe.PipeFactoryRegistry; @@ -34,7 +34,6 @@ import teetime.stage.ObjectProducer; import teetime.stage.Relay; import teetime.stage.StartTimestampFilter; import teetime.stage.StopTimestampFilter; -import teetime.stage.basic.Sink; import teetime.stage.basic.distributor.Distributor; import teetime.util.ConstructorClosure; import teetime.util.TimestampObject; @@ -133,7 +132,7 @@ public class MethodCallThroughputAnalysis17 { * @param numNoopFilters * @since 1.10 */ - private OldHeadPipeline<Relay<TimestampObject>, CollectorSink<TimestampObject>> buildPipeline(final IStage previousStage, + private OldHeadPipeline<Relay<TimestampObject>, CollectorSink<TimestampObject>> buildPipeline(final Stage previousStage, final List<TimestampObject> timestampObjects) { // create stages Relay<TimestampObject> relay = new Relay<TimestampObject>(); diff --git a/src/performancetest/java/teetime/framework/OldHeadPipeline.java b/src/performancetest/java/teetime/framework/OldHeadPipeline.java index 976baa44dcb4c436e7cb2a3fec705da7ca6317ab..57015b5d868a7112726b67b4a4a44b997b963610 100644 --- a/src/performancetest/java/teetime/framework/OldHeadPipeline.java +++ b/src/performancetest/java/teetime/framework/OldHeadPipeline.java @@ -1,7 +1,7 @@ package teetime.framework; @Deprecated -public class OldHeadPipeline<FirstStage extends AbstractBasicStage, LastStage extends IStage> extends OldPipeline<FirstStage, LastStage> implements IStage { +public class OldHeadPipeline<FirstStage extends Stage, LastStage extends Stage> extends OldPipeline<FirstStage, LastStage> { public OldHeadPipeline() {} diff --git a/src/performancetest/java/teetime/framework/OldPipeline.java b/src/performancetest/java/teetime/framework/OldPipeline.java index e883cfc92495a9ed562a18c55b59b7804331ce1b..05bdb62f3e148053f9906947f9271fd7dd9341fd 100644 --- a/src/performancetest/java/teetime/framework/OldPipeline.java +++ b/src/performancetest/java/teetime/framework/OldPipeline.java @@ -6,7 +6,7 @@ import teetime.framework.signal.ISignal; import teetime.framework.validation.InvalidPortConnection; @Deprecated -public class OldPipeline<FirstStage extends AbstractBasicStage, LastStage extends IStage> extends AbstractBasicStage { +public class OldPipeline<FirstStage extends Stage, LastStage extends Stage> extends Stage { protected FirstStage firstStage; protected LastStage lastStage; @@ -38,12 +38,12 @@ public class OldPipeline<FirstStage extends AbstractBasicStage, LastStage extend } @Override - public IStage getParentStage() { + public Stage getParentStage() { return this.firstStage.getParentStage(); } @Override - public void setParentStage(final IStage parentStage, final int index) { + public void setParentStage(final Stage parentStage, final int index) { this.firstStage.setParentStage(parentStage, index); }