From 980c65a31b97df6fd6530f452d02dbc0009368aa Mon Sep 17 00:00:00 2001 From: Maxi Tartaglia <152629744+mxtartaglia-sl@users.noreply.github.com> Date: Wed, 29 Jan 2025 10:15:59 -0300 Subject: [PATCH] chore(17592): Remove unsafe cast in TaskScheduler (#17593) Signed-off-by: mxtartaglia --- .../framework/component/ComponentWiring.java | 5 +- .../framework/schedulers/TaskScheduler.java | 17 - .../framework/transformers/WireFilter.java | 10 +- .../transformers/WireListSplitter.java | 5 +- .../framework/transformers/WireRouter.java | 5 +- .../transformers/WireTransformer.java | 10 +- .../framework/wires/output/OutputWire.java | 5 +- .../framework/benchmark/WiringBenchmark.java | 17 +- .../WiringComponentPerformanceTests.java | 5 +- .../DeterministicHeartbeatSchedulerTests.java | 9 +- .../model/DeterministicModelTests.java | 75 +- .../component/framework/model/ModelTests.java | 861 ++++++++++-------- .../ConcurrentTaskSchedulerTests.java | 15 +- .../schedulers/DirectTaskSchedulerTests.java | 20 +- .../schedulers/HeartbeatSchedulerTests.java | 6 +- .../schedulers/NoOpTaskSchedulerTests.java | 7 +- .../SequentialTaskSchedulerTests.java | 248 +++-- .../TaskSchedulerTransformersTests.java | 55 +- .../framework/wires/OutputWireTests.java | 25 +- .../platform/cli/DiagramLegendCommand.java | 25 +- .../wiring/components/GossipWiring.java | 5 +- .../wiring/components/PassThroughWiring.java | 5 +- .../wiring/components/PcesReplayerWiring.java | 5 +- .../RunningEventHashOverrideWiring.java | 6 +- .../components/EventWindowManagerTests.java | 5 +- .../stream/ConsensusEventStreamTest.java | 10 +- .../turtle/gossip/SimulatedGossipTests.java | 5 +- .../wiring/SignedStateReserverTest.java | 6 +- .../platform/test/consensus/TestIntake.java | 5 +- 29 files changed, 720 insertions(+), 757 deletions(-) diff --git a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/component/ComponentWiring.java b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/component/ComponentWiring.java index da081e651551..4b803cd48b6b 100644 --- a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/component/ComponentWiring.java +++ b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/component/ComponentWiring.java @@ -173,13 +173,12 @@ public ComponentWiring( schedulerName = schedulerLabelAnnotation.value(); } - this.scheduler = model.schedulerBuilder(schedulerName) + this.scheduler = model.schedulerBuilder(schedulerName) .configure(schedulerConfiguration) // FUTURE WORK: all components not currently in platform core should move there .withHyperlink(platformCoreHyperlink(clazz)) .withDataCounter(dataCounter) - .build() - .cast(); + .build(); if (!clazz.isInterface()) { throw new IllegalArgumentException("Component class " + clazz.getName() + " is not an interface."); diff --git a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/schedulers/TaskScheduler.java b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/schedulers/TaskScheduler.java index da2e489a50e2..60d0a24ef070 100644 --- a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/schedulers/TaskScheduler.java +++ b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/schedulers/TaskScheduler.java @@ -182,23 +182,6 @@ public boolean isInsertionBlocking() { return insertionIsBlocking; } - /** - * Cast this scheduler into whatever a variable is expecting. Sometimes the compiler gets confused with generics, - * and path of least resistance is to just cast to the proper data type. - * - *

- * Warning: this will appease the compiler, but it is possible to cast a scheduler into a data type that will cause - * runtime exceptions. Use with appropriate caution. - * - * @param the type to cast to - * @return this, cast into whatever type is requested - */ - @NonNull - @SuppressWarnings("unchecked") - public final TaskScheduler cast() { - return (TaskScheduler) this; - } - /** * Get the number of unprocessed tasks. A task is considered to be unprocessed until the data has been passed to the * handler method (i.e. the one given to {@link BindableInputWire#bind(Function)} or diff --git a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireFilter.java b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireFilter.java index 6e39d5c58735..db345f9dd937 100644 --- a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireFilter.java +++ b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireFilter.java @@ -54,10 +54,9 @@ public WireFilter( Objects.requireNonNull(predicate); - final TaskScheduler taskScheduler = model.schedulerBuilder(filterName) + final TaskScheduler taskScheduler = model.schedulerBuilder(filterName) .withType(TaskSchedulerType.DIRECT_THREADSAFE) - .build() - .cast(); + .build(); inputWire = taskScheduler.buildInputWire(filterInputName); inputWire.bind(t -> { @@ -79,10 +78,9 @@ public WireFilter( public WireFilter( @NonNull final WiringModel model, @NonNull final String filterName, @NonNull final String filterInputName) { - final TaskScheduler taskScheduler = model.schedulerBuilder(filterName) + final TaskScheduler taskScheduler = model.schedulerBuilder(filterName) .withType(TaskSchedulerType.DIRECT_THREADSAFE) - .build() - .cast(); + .build(); inputWire = taskScheduler.buildInputWire(filterInputName); outputWire = taskScheduler.getOutputWire(); diff --git a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireListSplitter.java b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireListSplitter.java index 0e1ab3223b8b..f558f1da2305 100644 --- a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireListSplitter.java +++ b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireListSplitter.java @@ -48,10 +48,9 @@ public WireListSplitter( @NonNull final WiringModel model, @NonNull final String splitterName, @NonNull final String splitterInputName) { - final TaskScheduler taskScheduler = model.schedulerBuilder(splitterName) + final TaskScheduler taskScheduler = model.schedulerBuilder(splitterName) .withType(TaskSchedulerType.DIRECT_THREADSAFE) - .build() - .cast(); + .build(); inputWire = taskScheduler.buildInputWire(splitterInputName); outputWire = (StandardOutputWire) taskScheduler.getOutputWire(); diff --git a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireRouter.java b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireRouter.java index 1b827654cff7..249bdb8cdfe2 100644 --- a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireRouter.java +++ b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireRouter.java @@ -55,10 +55,9 @@ public WireRouter( @NonNull final String routerName, @NonNull final String routerInputName, @NonNull final Class clazz) { - final TaskScheduler scheduler = model.schedulerBuilder(routerName) + final TaskScheduler scheduler = model.schedulerBuilder(routerName) .withType(DIRECT_THREADSAFE) - .build() - .cast(); + .build(); outputWires = new ArrayList<>(clazz.getEnumConstants().length); for (int index = 0; index < clazz.getEnumConstants().length; index++) { diff --git a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireTransformer.java b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireTransformer.java index 98676dfeeb32..d97cb4a4c284 100644 --- a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireTransformer.java +++ b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/transformers/WireTransformer.java @@ -55,10 +55,9 @@ public WireTransformer( @NonNull final Function transformer) { Objects.requireNonNull(transformer); - final TaskScheduler taskScheduler = model.schedulerBuilder(transformerName) + final TaskScheduler taskScheduler = model.schedulerBuilder(transformerName) .withType(TaskSchedulerType.DIRECT_THREADSAFE) - .build() - .cast(); + .build(); inputWire = taskScheduler.buildInputWire(transformerInputName); inputWire.bind(transformer); @@ -77,10 +76,9 @@ public WireTransformer( @NonNull final String transformerName, @NonNull final String transformerInputName) { - final TaskScheduler taskScheduler = model.schedulerBuilder(transformerName) + final TaskScheduler taskScheduler = model.schedulerBuilder(transformerName) .withType(TaskSchedulerType.DIRECT_THREADSAFE) - .build() - .cast(); + .build(); inputWire = taskScheduler.buildInputWire(transformerInputName); outputWire = taskScheduler.getOutputWire(); diff --git a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/wires/output/OutputWire.java b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/wires/output/OutputWire.java index da3a3e54289f..04f5e48d910e 100644 --- a/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/wires/output/OutputWire.java +++ b/platform-sdk/swirlds-component-framework/src/main/java/com/swirlds/component/framework/wires/output/OutputWire.java @@ -165,10 +165,9 @@ public void solderTo( @NonNull final String inputWireLabel, @NonNull final Consumer handler) { - final TaskScheduler directScheduler = model.schedulerBuilder(handlerName) + final TaskScheduler directScheduler = model.schedulerBuilder(handlerName) .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); + .build(); final BindableInputWire directSchedulerInputWire = directScheduler.buildInputWire(inputWireLabel); directSchedulerInputWire.bindConsumer(handler); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/benchmark/WiringBenchmark.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/benchmark/WiringBenchmark.java index 345300ffe1b7..871a68e79ec3 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/benchmark/WiringBenchmark.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/benchmark/WiringBenchmark.java @@ -62,28 +62,27 @@ static void basicBenchmark() throws InterruptedException { // Ensures that we have no more than 10,000 events in the pipeline at any given time final ObjectCounter backpressure = new BackpressureObjectCounter("backpressure", 10_000, Duration.ZERO); - final TaskScheduler verificationTaskScheduler = model.schedulerBuilder("verification") + final TaskScheduler verificationTaskScheduler = model. + schedulerBuilder("verification") .withPool(executor) .withType(TaskSchedulerType.CONCURRENT) .withOnRamp(backpressure) .withExternalBackPressure(true) - .build() - .cast(); + .build(); - final TaskScheduler orphanBufferTaskScheduler = model.schedulerBuilder("orphanBuffer") + final TaskScheduler orphanBufferTaskScheduler = model. + schedulerBuilder("orphanBuffer") .withPool(executor) .withType(TaskSchedulerType.SEQUENTIAL) .withExternalBackPressure(true) - .build() - .cast(); + .build(); - final TaskScheduler eventPoolTaskScheduler = model.schedulerBuilder("eventPool") + final TaskScheduler eventPoolTaskScheduler = model.schedulerBuilder("eventPool") .withPool(executor) .withType(TaskSchedulerType.SEQUENTIAL) .withOffRamp(backpressure) .withExternalBackPressure(true) - .build() - .cast(); + .build(); final BindableInputWire eventsToOrphanBuffer = orphanBufferTaskScheduler.buildInputWire("unordered events"); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/component/WiringComponentPerformanceTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/component/WiringComponentPerformanceTests.java index 9e04284bad25..50c5779a31cf 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/component/WiringComponentPerformanceTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/component/WiringComponentPerformanceTests.java @@ -72,10 +72,9 @@ private InputWire buildAutomaticComponent(@NonNull final SimpleComponent c TestPlatformContextBuilder.create().build()) .build(); - final TaskScheduler scheduler = model.schedulerBuilder("test") + final TaskScheduler scheduler = model.schedulerBuilder("test") .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); + .build(); final ComponentWiring componentWiring = new ComponentWiring<>(model, SimpleComponent.class, scheduler); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/DeterministicHeartbeatSchedulerTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/DeterministicHeartbeatSchedulerTests.java index d4063e441f42..67f2e95f502b 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/DeterministicHeartbeatSchedulerTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/DeterministicHeartbeatSchedulerTests.java @@ -42,7 +42,7 @@ void heartbeatByFrequencyTest() { ; final TaskScheduler scheduler = - model.schedulerBuilder("test").build().cast(); + model.schedulerBuilder("test").build(); final BindableInputWire heartbeatBindable = scheduler.buildInputWire("heartbeat"); model.buildHeartbeatWire(100).solderTo(heartbeatBindable); @@ -73,7 +73,7 @@ void heartbeatByPeriodTest() { ; final TaskScheduler scheduler = - model.schedulerBuilder("test").build().cast(); + model.schedulerBuilder("test").build(); final BindableInputWire heartbeatBindable = scheduler.buildInputWire("heartbeat"); model.buildHeartbeatWire(Duration.ofMillis(10)).solderTo(heartbeatBindable); @@ -103,10 +103,9 @@ void heartbeatsAtDifferentRates() { .build(); ; - final TaskScheduler scheduler = model.schedulerBuilder("test") + final TaskScheduler scheduler = model.schedulerBuilder("test") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire heartbeatBindableA = scheduler.buildInputWire("heartbeatA"); final BindableInputWire heartbeatBindableB = scheduler.buildInputWire("heartbeatB"); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/DeterministicModelTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/DeterministicModelTests.java index 4a93ec1dde36..3ccff13a0423 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/DeterministicModelTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/DeterministicModelTests.java @@ -158,23 +158,21 @@ private static WiringMesh generateWiringMesh( final ReentrantLock lock = new ReentrantLock(); final TaskScheduler schedulerA = wiringModel - .schedulerBuilder("A") + .schedulerBuilder("A") .withType(SEQUENTIAL) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inA = schedulerA.buildInputWire("inA"); inA.bind(buildHandler(random, 0.01, lock)); final OutputWire outA = schedulerA.getOutputWire(); final TaskScheduler schedulerB = wiringModel - .schedulerBuilder("B") + .schedulerBuilder("B") .withType(CONCURRENT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inB = schedulerB.buildInputWire("inB"); inB.bind(buildHandler(random, 0.01, lock)); final BindableInputWire schedulerBHeartbeat = schedulerB.buildInputWire("heartbeatB"); @@ -186,100 +184,91 @@ private static WiringMesh generateWiringMesh( final OutputWire outB = schedulerB.getOutputWire(); final TaskScheduler schedulerC = wiringModel - .schedulerBuilder("C") + .schedulerBuilder("C") .withType(SEQUENTIAL_THREAD) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inC = schedulerC.buildInputWire("inC"); inC.bind(buildHandler(random, 0.01, lock)); final OutputWire outC = schedulerC.getOutputWire(); final TaskScheduler schedulerD = wiringModel - .schedulerBuilder("D") + .schedulerBuilder("D") .withType(SEQUENTIAL) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inD = schedulerD.buildInputWire("inD"); inD.bind(buildHandler(random, 0.6, lock)); // This must be >0.5 else risk infinite loop final OutputWire outD = schedulerD.getOutputWire(); final TaskScheduler schedulerE = wiringModel - .schedulerBuilder("E") + .schedulerBuilder("E") .withType(SEQUENTIAL) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inE = schedulerE.buildInputWire("inE"); inE.bind(buildHandler(random, 0.01, lock)); final OutputWire outE = schedulerE.getOutputWire(); final TaskScheduler schedulerF = wiringModel - .schedulerBuilder("F") + .schedulerBuilder("F") .withType(SEQUENTIAL) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inF = schedulerF.buildInputWire("inF"); inF.bind(buildHandler(random, 0.01, lock)); final OutputWire outF = schedulerF.getOutputWire(); final TaskScheduler schedulerG = wiringModel - .schedulerBuilder("G") + .schedulerBuilder("G") .withType(SEQUENTIAL) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inG = schedulerG.buildInputWire("inG"); inG.bind(buildHandler(random, 0.01, lock)); final OutputWire outG = schedulerG.getOutputWire(); final TaskScheduler schedulerH = wiringModel - .schedulerBuilder("H") + .schedulerBuilder("H") .withType(DIRECT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inH = schedulerH.buildInputWire("inH"); inH.bind(buildHandler(random, 0.01, lock)); final OutputWire outH = schedulerH.getOutputWire(); final TaskScheduler schedulerI = wiringModel - .schedulerBuilder("I") + .schedulerBuilder("I") .withType(DIRECT_THREADSAFE) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inI = schedulerI.buildInputWire("inI"); inI.bind(buildHandler(random, 0.01, lock)); final OutputWire outI = schedulerI.getOutputWire(); final TaskScheduler schedulerJ = wiringModel - .schedulerBuilder("J") + .schedulerBuilder("J") .withType(SEQUENTIAL) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inJ = schedulerJ.buildInputWire("inJ"); inJ.bind(buildHandler(random, 0.01, lock)); final OutputWire outJ = schedulerJ.getOutputWire(); final TaskScheduler schedulerK = wiringModel - .schedulerBuilder("K") + .schedulerBuilder("K") .withType(NO_OP) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inK = schedulerK.buildInputWire("inK"); inK.bind(buildHandler(random, 0.01, lock)); @@ -462,26 +451,22 @@ void circularDataFlowTest() { final AtomicInteger countC = new AtomicInteger(); final AtomicInteger countD = new AtomicInteger(); - final TaskScheduler taskSchedulerToA = model.schedulerBuilder("wireToA") + final TaskScheduler taskSchedulerToA = model.schedulerBuilder("wireToA") .withType(SEQUENTIAL) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); - final TaskScheduler taskSchedulerToB = model.schedulerBuilder("wireToB") + .build(); + final TaskScheduler taskSchedulerToB = model.schedulerBuilder("wireToB") .withType(SEQUENTIAL_THREAD) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); - final TaskScheduler taskSchedulerToC = model.schedulerBuilder("wireToC") + .build(); + final TaskScheduler taskSchedulerToC = model.schedulerBuilder("wireToC") .withType(CONCURRENT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); - final TaskScheduler taskSchedulerToD = model.schedulerBuilder("wireToD") + .build(); + final TaskScheduler taskSchedulerToD = model.schedulerBuilder("wireToD") .withType(DIRECT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channelToA = taskSchedulerToA.buildInputWire("channelToA"); final BindableInputWire channelToB = taskSchedulerToB.buildInputWire("channelToB"); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/ModelTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/ModelTests.java index f76b07f1f701..534239521c99 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/ModelTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/model/ModelTests.java @@ -84,10 +84,9 @@ void singleVertexTest() { */ - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); validateModel(model, false, false); } @@ -104,15 +103,17 @@ void shortChainTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -135,8 +136,9 @@ void loopSizeOneTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); taskSchedulerA.getOutputWire().solderTo(inputA); @@ -158,8 +160,9 @@ void loopSizeOneBrokenByInjectionTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); taskSchedulerA.getOutputWire().solderTo(inputA, SolderType.INJECT); @@ -181,12 +184,14 @@ void loopSizeTwoTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -209,12 +214,14 @@ void loopSizeTwoBrokenByInjectionTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -237,14 +244,14 @@ void loopSizeTwoBrokenByMissingBoundTest() { */ - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -267,16 +274,19 @@ void loopSizeThreeTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -300,16 +310,19 @@ void loopSizeThreeBrokenByInjectionTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -333,18 +346,19 @@ void loopSizeThreeBrokenByMissingBoundTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -369,20 +383,24 @@ void loopSizeFourTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -408,22 +426,24 @@ void loopSizeFourBrokenByInjectionTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -449,20 +469,24 @@ void loopSizeFourBrokenByMissingBoundTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -497,44 +521,54 @@ void loopSizeFourWithChainTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = - model.schedulerBuilder("E").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = - model.schedulerBuilder("J").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -576,44 +610,54 @@ void loopSizeFourWithChainBrokenByInjectionTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = - model.schedulerBuilder("E").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = - model.schedulerBuilder("J").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire(""); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -655,46 +699,54 @@ void loopSizeFourWithChainBrokenByMissingBoundTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = - model.schedulerBuilder("E").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = - model.schedulerBuilder("J").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -736,44 +788,54 @@ void multiLoopTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = - model.schedulerBuilder("E").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = - model.schedulerBuilder("J").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -819,44 +881,54 @@ void multiLoopBrokenByInjectionTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = - model.schedulerBuilder("E").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = - model.schedulerBuilder("J").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -902,48 +974,54 @@ void multiLoopBrokenByMissingBoundTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -991,44 +1069,54 @@ void filterInCycleTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = - model.schedulerBuilder("E").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = - model.schedulerBuilder("J").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire(""); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -1075,44 +1163,54 @@ void transformerInCycleTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = - model.schedulerBuilder("E").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = - model.schedulerBuilder("J").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire(""); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -1159,44 +1257,54 @@ void splitterInCycleTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler> taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler> taskSchedulerD = model.>schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = - model.schedulerBuilder("E").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = - model.schedulerBuilder("J").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire(""); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -1244,46 +1352,56 @@ void multipleOutputCycleTest() { */ - final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = - model.schedulerBuilder("E").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = - model.schedulerBuilder("F").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = - model.schedulerBuilder("G").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = - model.schedulerBuilder("H").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = - model.schedulerBuilder("I").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + .withUnhandledTaskCapacity(1) + .build(); final OutputWire secondaryOutputI = taskSchedulerI.buildSecondaryOutputWire(); final OutputWire tertiaryOutputI = taskSchedulerI.buildSecondaryOutputWire(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = - model.schedulerBuilder("J").withUnhandledTaskCapacity(1).build().cast(); + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + .withUnhandledTaskCapacity(1) + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); final InputWire inputJ2 = taskSchedulerJ.buildInputWire("inputJ2"); @@ -1337,66 +1455,56 @@ void concurrentAccessingDirectTest() { */ - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") .withType(TaskSchedulerType.CONCURRENT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") .withType(TaskSchedulerType.DIRECT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -1445,67 +1553,57 @@ void concurrentAccessingMultipleDirectTest() { */ - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") .withType(TaskSchedulerType.CONCURRENT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") .withType(TaskSchedulerType.DIRECT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") .withType(TaskSchedulerType.DIRECT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -1556,66 +1654,57 @@ void concurrentAccessingDirectThroughProxyTest() { */ - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").build().cast(); + model.schedulerBuilder("C").build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") .withType(TaskSchedulerType.CONCURRENT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") .withType(TaskSchedulerType.DIRECT_THREADSAFE) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") .withType(TaskSchedulerType.DIRECT_THREADSAFE) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") .withType(TaskSchedulerType.DIRECT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -1665,64 +1754,55 @@ void multipleSequentialSchedulerTest() { */ final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").build().cast(); + model.schedulerBuilder("A").build(); final InputWire inputA = taskSchedulerA.buildInputWire("inputA"); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") .withType(TaskSchedulerType.SEQUENTIAL_THREAD) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputB = taskSchedulerB.buildInputWire("inputB"); - final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") .withType(TaskSchedulerType.DIRECT_THREADSAFE) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputC = taskSchedulerC.buildInputWire("inputC"); - final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") .withType(TaskSchedulerType.DIRECT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputD = taskSchedulerD.buildInputWire("inputD"); - final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputE = taskSchedulerE.buildInputWire("inputE"); - final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") + final TaskScheduler taskSchedulerF = model.schedulerBuilder("F") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputF = taskSchedulerF.buildInputWire("inputF"); - final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") + final TaskScheduler taskSchedulerG = model.schedulerBuilder("G") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputG = taskSchedulerG.buildInputWire("inputG"); - final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") + final TaskScheduler taskSchedulerH = model.schedulerBuilder("H") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputH = taskSchedulerH.buildInputWire("inputH"); - final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") + final TaskScheduler taskSchedulerI = model.schedulerBuilder("I") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputI = taskSchedulerI.buildInputWire("inputI"); - final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") + final TaskScheduler taskSchedulerJ = model.schedulerBuilder("J") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final InputWire inputJ = taskSchedulerJ.buildInputWire("inputJ"); taskSchedulerA.getOutputWire().solderTo(inputB); @@ -1746,10 +1826,9 @@ void unboundInputWireTest() { TestPlatformContextBuilder.create().build()) .build(); - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire inputA = taskSchedulerA.buildInputWire("inputA"); assertTrue(model.checkForUnboundInputWires()); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/ConcurrentTaskSchedulerTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/ConcurrentTaskSchedulerTests.java index 87816f2ebff6..596ee03dc513 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/ConcurrentTaskSchedulerTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/ConcurrentTaskSchedulerTests.java @@ -59,11 +59,10 @@ void allOperationsHandledTest() { } }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(TaskSchedulerType.CONCURRENT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); @@ -109,11 +108,10 @@ record Operation(int value, @Nullable CountDownLatch latch, @Nullable AtomicBool count.addAndGet(x.value); }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(TaskSchedulerType.CONCURRENT) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); @@ -163,13 +161,12 @@ void squelching() { handleCount.incrementAndGet(); }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(TaskSchedulerType.CONCURRENT) .withUnhandledTaskCapacity(100) .withFlushingEnabled(true) .withSquelchingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inputWire = taskScheduler.buildInputWire("channel"); inputWire.bindConsumer(handler); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/DirectTaskSchedulerTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/DirectTaskSchedulerTests.java index 294a4924954d..dc8296dc24c2 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/DirectTaskSchedulerTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/DirectTaskSchedulerTests.java @@ -48,19 +48,17 @@ void basicOperationTest(final boolean threadsafe) { final StandardObjectCounter counter = new StandardObjectCounter(Duration.ofMillis(1)); - final TaskScheduler schedulerA = model.schedulerBuilder("A") + final TaskScheduler schedulerA = model.schedulerBuilder("A") .withType(type) .withOnRamp(counter) - .build() - .cast(); + .build(); final BindableInputWire inA = schedulerA.buildInputWire("inA"); final OutputWire outA = schedulerA.getOutputWire(); - final TaskScheduler schedulerB = model.schedulerBuilder("B") + final TaskScheduler schedulerB = model.schedulerBuilder("B") .withType(type) .withOffRamp(counter) - .build() - .cast(); + .build(); final BindableInputWire inB = schedulerB.buildInputWire("inB"); final SolderType solderType; @@ -129,11 +127,10 @@ void exceptionHandlerTest(final boolean threadsafe) { assertEquals("intentional", e.getMessage()); }; - final TaskScheduler scheduler = model.schedulerBuilder("test") + final TaskScheduler scheduler = model.schedulerBuilder("test") .withType(type) .withUncaughtExceptionHandler(handler) - .build() - .cast(); + .build(); final BindableInputWire in = scheduler.buildInputWire("in"); @@ -173,11 +170,10 @@ void squelching(final boolean threadsafe) { final Thread mainThread = Thread.currentThread(); final TaskSchedulerType type = threadsafe ? TaskSchedulerType.DIRECT_THREADSAFE : TaskSchedulerType.DIRECT; - final TaskScheduler scheduler = model.schedulerBuilder("A") + final TaskScheduler scheduler = model.schedulerBuilder("A") .withType(type) .withSquelchingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inputWire = scheduler.buildInputWire("input"); final AtomicInteger handleCount = new AtomicInteger(0); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/HeartbeatSchedulerTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/HeartbeatSchedulerTests.java index 9114d4e6fc01..01792af028c3 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/HeartbeatSchedulerTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/HeartbeatSchedulerTests.java @@ -41,7 +41,7 @@ void heartbeatByFrequencyTest() throws InterruptedException { final WiringModel model = WiringModelBuilder.create(platformContext).build(); final TaskScheduler scheduler = - model.schedulerBuilder("test").build().cast(); + model.schedulerBuilder("test").build(); final BindableInputWire heartbeatBindable = scheduler.buildInputWire("heartbeat"); model.buildHeartbeatWire(100).solderTo(heartbeatBindable); @@ -70,7 +70,7 @@ void heartbeatByPeriodTest() throws InterruptedException { final WiringModel model = WiringModelBuilder.create(platformContext).build(); final TaskScheduler scheduler = - model.schedulerBuilder("test").build().cast(); + model.schedulerBuilder("test").build(); final BindableInputWire heartbeatBindable = scheduler.buildInputWire("heartbeat"); model.buildHeartbeatWire(Duration.ofMillis(10)).solderTo(heartbeatBindable); @@ -99,7 +99,7 @@ void heartbeatsAtDifferentRates() throws InterruptedException { final WiringModel model = WiringModelBuilder.create(platformContext).build(); final TaskScheduler scheduler = - model.schedulerBuilder("test").build().cast(); + model.schedulerBuilder("test").build(); final BindableInputWire heartbeatBindableA = scheduler.buildInputWire("heartbeatA"); final BindableInputWire heartbeatBindableB = scheduler.buildInputWire("heartbeatB"); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/NoOpTaskSchedulerTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/NoOpTaskSchedulerTests.java index d8111d032ebe..e3743f53bb8a 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/NoOpTaskSchedulerTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/NoOpTaskSchedulerTests.java @@ -42,7 +42,7 @@ void nothingHappensTest() { final WiringModel model = WiringModelBuilder.create(platformContext).build(); final TaskScheduler> realFakeScheduler = - model.schedulerBuilder("A").withType(NO_OP).build().cast(); + model.>schedulerBuilder("A").withType(NO_OP).build(); final AtomicBoolean shouldAlwaysBeFalse = new AtomicBoolean(false); @@ -74,10 +74,9 @@ void nothingHappensTest() { splitter.solderTo("handler", "handler input", value -> shouldAlwaysBeFalse.set(true)); // Solder the fake scheduler to a real one. No data should be passed. - final TaskScheduler realScheduler = model.schedulerBuilder("B") + final TaskScheduler realScheduler = model.schedulerBuilder("B") .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); + .build(); final BindableInputWire, Void> realInA = realScheduler.buildInputWire("realInA"); realInA.bindConsumer((value) -> shouldAlwaysBeFalse.set(true)); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/SequentialTaskSchedulerTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/SequentialTaskSchedulerTests.java index 3e6f9b711ae0..e0afc49f1bf3 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/SequentialTaskSchedulerTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/schedulers/SequentialTaskSchedulerTests.java @@ -96,11 +96,10 @@ void orderOfOperationsTest(final String typeString) { final AtomicInteger wireValue = new AtomicInteger(); final Consumer handler = x -> wireValue.set(hash32(wireValue.get(), x)); - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(-1, taskScheduler.getUnprocessedTaskCount()); @@ -146,11 +145,10 @@ void orderOfOperationsWithDelayTest(final String typeString) { } }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(-1, taskScheduler.getUnprocessedTaskCount()); @@ -186,11 +184,10 @@ void multipleChannelsTest(final String typeString) { wireValue.set(hash32(wireValue.get(), operationCount.getAndIncrement())); }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(-1, taskScheduler.getUnprocessedTaskCount()); @@ -257,11 +254,10 @@ void multipleChannelsWithDelayTest(final String typeString) { wireValue.set(hash32(wireValue.get(), operationCount.getAndIncrement())); }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(-1, taskScheduler.getUnprocessedTaskCount()); @@ -336,11 +332,10 @@ void wireDoesNotBlockCallingThreadTest(final String typeString) throws Interrupt } }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(-1, taskScheduler.getUnprocessedTaskCount()); @@ -398,12 +393,11 @@ void unprocessedEventCountTest(final String typeString) { wireValue.set(hash32(wireValue.get(), x)); }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskMetricEnabled(true) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(0, taskScheduler.getUnprocessedTaskCount()); @@ -483,12 +477,11 @@ void backpressureTest(final String typeString) throws InterruptedException { final long capacity = 11; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(capacity) .withSleepDuration(Duration.ofMillis(1)) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(0, taskScheduler.getUnprocessedTaskCount()); @@ -587,11 +580,10 @@ void uninterruptableTest(final String typeString) throws InterruptedException { wireValue.set(hash32(wireValue.get(), x)); }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(11) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(0, taskScheduler.getUnprocessedTaskCount()); @@ -662,11 +654,10 @@ void offerNoBackpressureTest(final String typeString) { final AtomicInteger wireValue = new AtomicInteger(); final Consumer handler = x -> wireValue.set(hash32(wireValue.get(), x)); - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(-1, taskScheduler.getUnprocessedTaskCount()); @@ -712,26 +703,22 @@ void circularDataFlowTest(final String typeString) throws InterruptedException { final AtomicInteger countC = new AtomicInteger(); final AtomicInteger countD = new AtomicInteger(); - final TaskScheduler taskSchedulerToA = model.schedulerBuilder("wireToA") + final TaskScheduler taskSchedulerToA = model.schedulerBuilder("wireToA") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); - final TaskScheduler taskSchedulerToB = model.schedulerBuilder("wireToB") + .build(); + final TaskScheduler taskSchedulerToB = model.schedulerBuilder("wireToB") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); - final TaskScheduler taskSchedulerToC = model.schedulerBuilder("wireToC") + .build(); + final TaskScheduler taskSchedulerToC = model.schedulerBuilder("wireToC") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); - final TaskScheduler taskSchedulerToD = model.schedulerBuilder("wireToD") + .build(); + final TaskScheduler taskSchedulerToD = model.schedulerBuilder("wireToD") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channelToA = taskSchedulerToA.buildInputWire("channelToA"); final BindableInputWire channelToB = taskSchedulerToB.buildInputWire("channelToB"); @@ -837,11 +824,10 @@ void multipleChannelTypesTest(final String typeString) { final Consumer booleanHandler = x -> wireValue.set((x ? -1 : 1) * wireValue.get()); final Consumer stringHandler = x -> wireValue.set(hash32(wireValue.get(), x.hashCode())); - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire integerChannel = taskScheduler.buildInputWire("integerChannel"); integerChannel.bindConsumer(integerHandler); @@ -907,11 +893,10 @@ void multipleChannelBackpressureTest(final String typeString) throws Interrupted final Consumer handler2 = x -> wireValue.set(hash32(wireValue.get(), -x)); - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(11) - .build() - .cast(); + .build(); final BindableInputWire channel1 = taskScheduler.buildInputWire("channel1"); channel1.bindConsumer(handler1); @@ -998,19 +983,17 @@ void backpressureOverMultipleWiresTest(final String typeString) throws Interrupt final ObjectCounter backpressure = new BackpressureObjectCounter("test", 11, Duration.ofMillis(1)); - final TaskScheduler taskSchedulerA = model.schedulerBuilder("testA") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("testA") .withType(type) .withOnRamp(backpressure) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("testB") + final TaskScheduler taskSchedulerB = model.schedulerBuilder("testB") .withType(type) .withOffRamp(backpressure) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channelA = taskSchedulerA.buildInputWire("channelA"); final BindableInputWire channelB = taskSchedulerB.buildInputWire("channelB"); @@ -1135,12 +1118,11 @@ void flushTest(final String typeString) throws InterruptedException { wireValue.set(hash32(wireValue.get(), x)); }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(11) .withFlushingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(0, taskScheduler.getUnprocessedTaskCount()); @@ -1228,11 +1210,10 @@ void flushDisabledTest(final String typeString) { final WiringModel model = TestWiringModelBuilder.create(); final TaskSchedulerType type = TaskSchedulerType.valueOf(typeString); - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(10) - .build() - .cast(); + .build(); model.start(); @@ -1257,12 +1238,11 @@ void exceptionHandlingTest(final String typeString) { final AtomicInteger exceptionCount = new AtomicInteger(); - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUncaughtExceptionHandler((t, e) -> exceptionCount.incrementAndGet()) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire channel = taskScheduler.buildInputWire("channel"); channel.bindConsumer(handler); assertEquals(-1, taskScheduler.getUnprocessedTaskCount()); @@ -1298,27 +1278,24 @@ void deadlockTestOneThread(final String typeString) throws InterruptedException // create 3 wires with the following bindings: // a -> b -> c -> latch - final TaskScheduler a = model.schedulerBuilder("a") + final TaskScheduler a = model.schedulerBuilder("a") .withType(type) .withUnhandledTaskCapacity(2) .withSleepDuration(Duration.ofMillis(1)) .withPool(pool) - .build() - .cast(); - final TaskScheduler b = model.schedulerBuilder("b") + .build(); + final TaskScheduler b = model.schedulerBuilder("b") .withType(type) .withUnhandledTaskCapacity(2) .withSleepDuration(Duration.ofMillis(1)) .withPool(pool) - .build() - .cast(); - final TaskScheduler c = model.schedulerBuilder("c") + .build(); + final TaskScheduler c = model.schedulerBuilder("c") .withType(type) .withUnhandledTaskCapacity(2) .withSleepDuration(Duration.ofMillis(1)) .withPool(pool) - .build() - .cast(); + .build(); final BindableInputWire channelA = a.buildInputWire("channelA"); final BindableInputWire channelB = b.buildInputWire("channelB"); @@ -1372,27 +1349,24 @@ void deadlockTestThreeThreads(final String typeString) throws InterruptedExcepti // create 3 wires with the following bindings: // a -> b -> c -> latch - final TaskScheduler a = model.schedulerBuilder("a") + final TaskScheduler a = model.schedulerBuilder("a") .withType(type) .withUnhandledTaskCapacity(2) .withSleepDuration(Duration.ofMillis(1)) .withPool(pool) - .build() - .cast(); - final TaskScheduler b = model.schedulerBuilder("b") + .build(); + final TaskScheduler b = model.schedulerBuilder("b") .withType(type) .withUnhandledTaskCapacity(2) .withSleepDuration(Duration.ofMillis(1)) .withPool(pool) - .build() - .cast(); - final TaskScheduler c = model.schedulerBuilder("c") + .build(); + final TaskScheduler c = model.schedulerBuilder("c") .withType(type) .withUnhandledTaskCapacity(2) .withSleepDuration(Duration.ofMillis(1)) .withPool(pool) - .build() - .cast(); + .build(); final BindableInputWire channelA = a.buildInputWire("channelA"); final BindableInputWire channelB = b.buildInputWire("channelB"); @@ -1446,13 +1420,13 @@ void simpleSolderingTest(final String typeString) { final TaskSchedulerType type = TaskSchedulerType.valueOf(typeString); final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withType(type).build().cast(); + model.schedulerBuilder("A").withType(type).build(); final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withType(type).build().cast(); + model.schedulerBuilder("B").withType(type).build(); final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withType(type).build().cast(); + model.schedulerBuilder("C").withType(type).build(); final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withType(type).build().cast(); + model.schedulerBuilder("D").withType(type).build(); final BindableInputWire inputA = taskSchedulerA.buildInputWire("inputA"); final BindableInputWire inputB = taskSchedulerB.buildInputWire("inputB"); @@ -1515,13 +1489,13 @@ void lambdaSolderingTest(final String typeString) { final TaskSchedulerType type = TaskSchedulerType.valueOf(typeString); final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withType(type).build().cast(); + model.schedulerBuilder("A").withType(type).build(); final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withType(type).build().cast(); + model.schedulerBuilder("B").withType(type).build(); final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withType(type).build().cast(); + model.schedulerBuilder("C").withType(type).build(); final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withType(type).build().cast(); + model.schedulerBuilder("D").withType(type).build(); final BindableInputWire inputA = taskSchedulerA.buildInputWire("inputA"); final BindableInputWire inputB = taskSchedulerB.buildInputWire("inputB"); @@ -1593,25 +1567,25 @@ void multiWireSolderingTest(final String typeString) { // X, Y, and Z pass data to B final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withType(type).build().cast(); + model.schedulerBuilder("A").withType(type).build(); final BindableInputWire addNewValueToA = taskSchedulerA.buildInputWire("addNewValueToA"); final BindableInputWire setInversionBitInA = taskSchedulerA.buildInputWire("setInversionBitInA"); final TaskScheduler taskSchedulerX = - model.schedulerBuilder("X").withType(type).build().cast(); + model.schedulerBuilder("X").withType(type).build(); final BindableInputWire inputX = taskSchedulerX.buildInputWire("inputX"); final TaskScheduler taskSchedulerY = - model.schedulerBuilder("Y").withType(type).build().cast(); + model.schedulerBuilder("Y").withType(type).build(); final BindableInputWire inputY = taskSchedulerY.buildInputWire("inputY"); final TaskScheduler taskSchedulerZ = - model.schedulerBuilder("Z").withType(type).build().cast(); + model.schedulerBuilder("Z").withType(type).build(); final BindableInputWire inputZ = taskSchedulerZ.buildInputWire("inputZ"); final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withType(type).build().cast(); + model.schedulerBuilder("B").withType(type).build(); final BindableInputWire inputB = taskSchedulerB.buildInputWire("inputB"); taskSchedulerA.getOutputWire().solderTo(inputX); @@ -1711,25 +1685,22 @@ void injectionSolderingTest(final String typeString) throws InterruptedException // In this test, wires A and B are connected to the input of wire C, which has a maximum capacity. // Wire A respects back pressure, but wire B uses injection and can ignore it. - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire inA = taskSchedulerA.buildInputWire("inA"); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") .withType(type) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire inB = taskSchedulerB.buildInputWire("inB"); - final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") .withType(type) .withUnhandledTaskCapacity(10) - .build() - .cast(); + .build(); final BindableInputWire inC = taskSchedulerC.buildInputWire("inC"); taskSchedulerA.getOutputWire().solderTo(inC); // respects capacity @@ -1832,13 +1803,13 @@ void discardNullValuesInWiresTest(final String typeString) { final TaskSchedulerType type = TaskSchedulerType.valueOf(typeString); final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withType(type).build().cast(); + model.schedulerBuilder("A").withType(type).build(); final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withType(type).build().cast(); + model.schedulerBuilder("B").withType(type).build(); final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").withType(type).build().cast(); + model.schedulerBuilder("C").withType(type).build(); final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").withType(type).build().cast(); + model.schedulerBuilder("D").withType(type).build(); final BindableInputWire inputA = taskSchedulerA.buildInputWire("inputA"); final BindableInputWire inputB = taskSchedulerB.buildInputWire("inputB"); @@ -1928,30 +1899,26 @@ void metricsEnabledTest(final String typeString) { final WiringModel model = TestWiringModelBuilder.create(); final TaskSchedulerType type = TaskSchedulerType.valueOf(typeString); - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withType(type) .withBusyFractionMetricsEnabled(true) .withUnhandledTaskMetricEnabled(true) - .build() - .cast(); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + .build(); + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") .withType(type) .withBusyFractionMetricsEnabled(true) .withUnhandledTaskMetricEnabled(false) - .build() - .cast(); - final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + .build(); + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") .withType(type) .withBusyFractionMetricsEnabled(false) .withUnhandledTaskMetricEnabled(true) - .build() - .cast(); - final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + .build(); + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") .withType(type) .withBusyFractionMetricsEnabled(false) .withUnhandledTaskMetricEnabled(false) - .build() - .cast(); + .build(); final BindableInputWire inputA = taskSchedulerA.buildInputWire("inputA"); final BindableInputWire inputB = taskSchedulerB.buildInputWire("inputB"); @@ -2011,13 +1978,13 @@ void multipleOutputChannelsTest(final String typeString) { final TaskSchedulerType type = TaskSchedulerType.valueOf(typeString); final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").withType(type).build().cast(); + model.schedulerBuilder("A").withType(type).build(); final BindableInputWire aIn = taskSchedulerA.buildInputWire("aIn"); final StandardOutputWire aOutBoolean = taskSchedulerA.buildSecondaryOutputWire(); final StandardOutputWire aOutString = taskSchedulerA.buildSecondaryOutputWire(); final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").withType(type).build().cast(); + model.schedulerBuilder("B").withType(type).build(); final BindableInputWire bInInteger = taskSchedulerB.buildInputWire("bIn1"); final BindableInputWire bInBoolean = taskSchedulerB.buildInputWire("bIn2"); final BindableInputWire bInString = taskSchedulerB.buildInputWire("bIn3"); @@ -2079,30 +2046,27 @@ void externalBackPressureTest(final String typeString) throws InterruptedExcepti final ObjectCounter counter = new BackpressureObjectCounter("test", 10, Duration.ofMillis(1)); - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withType(type) .withOnRamp(counter) .withExternalBackPressure(true) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire aIn = taskSchedulerA.buildInputWire("aIn"); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") .withType(type) .withExternalBackPressure(true) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire bIn = taskSchedulerB.buildInputWire("bIn"); - final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") .withType(type) .withOffRamp(counter) .withExternalBackPressure(true) .withUnhandledTaskCapacity(UNLIMITED_CAPACITY) - .build() - .cast(); + .build(); final BindableInputWire cIn = taskSchedulerC.buildInputWire("cIn"); taskSchedulerA.getOutputWire().solderTo(bIn); @@ -2209,30 +2173,27 @@ void multipleCountersInternalBackpressureTest(final String typeString) throws In final ObjectCounter counter = new BackpressureObjectCounter("test", 10, Duration.ofMillis(1)); - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withType(type) .withOnRamp(counter) .withExternalBackPressure(true) .withUnhandledTaskCapacity(5) - .build() - .cast(); + .build(); final BindableInputWire aIn = taskSchedulerA.buildInputWire("aIn"); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") .withType(type) .withExternalBackPressure(true) .withUnhandledTaskCapacity(5) - .build() - .cast(); + .build(); final BindableInputWire bIn = taskSchedulerB.buildInputWire("bIn"); - final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") .withType(type) .withOffRamp(counter) .withExternalBackPressure(true) .withUnhandledTaskCapacity(5) - .build() - .cast(); + .build(); final BindableInputWire cIn = taskSchedulerC.buildInputWire("cIn"); taskSchedulerA.getOutputWire().solderTo(bIn); @@ -2332,18 +2293,16 @@ void offerSolderingTest(final String typeString) { final TaskSchedulerType type = TaskSchedulerType.valueOf(typeString); - final TaskScheduler schedulerA = model.schedulerBuilder("A") + final TaskScheduler schedulerA = model.schedulerBuilder("A") .withType(type) .withUnhandledTaskCapacity(10) - .build() - .cast(); + .build(); final BindableInputWire inputA = schedulerA.buildInputWire("inputA"); - final TaskScheduler schedulerB = model.schedulerBuilder("B") + final TaskScheduler schedulerB = model.schedulerBuilder("B") .withType(type) .withUnhandledTaskCapacity(10) - .build() - .cast(); + .build(); final BindableInputWire inputB = schedulerB.buildInputWire("inputB"); schedulerA.getOutputWire().solderTo(inputB, SolderType.OFFER); @@ -2441,13 +2400,12 @@ void squelching(final String typeString) { } }; - final TaskScheduler taskScheduler = model.schedulerBuilder("test") + final TaskScheduler taskScheduler = model.schedulerBuilder("test") .withType(type) .withUnhandledTaskCapacity(100) .withFlushingEnabled(true) .withSquelchingEnabled(true) - .build() - .cast(); + .build(); final BindableInputWire inputWire = taskScheduler.buildInputWire("channel"); inputWire.bindConsumer(handler); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/transformers/TaskSchedulerTransformersTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/transformers/TaskSchedulerTransformersTests.java index ddf6f7db35ba..09e885c50abc 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/transformers/TaskSchedulerTransformersTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/transformers/TaskSchedulerTransformersTests.java @@ -51,19 +51,19 @@ void wireListSplitterTest() { // Components B and C want individual integers. Component D wants the full list of integers. final TaskScheduler> taskSchedulerA = - model.schedulerBuilder("A").build().cast(); + model.>schedulerBuilder("A").build(); final BindableInputWire> wireAIn = taskSchedulerA.buildInputWire("A in"); final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").build().cast(); + model.schedulerBuilder("B").build(); final BindableInputWire wireBIn = taskSchedulerB.buildInputWire("B in"); final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").build().cast(); + model.schedulerBuilder("C").build(); final BindableInputWire wireCIn = taskSchedulerC.buildInputWire("C in"); final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").build().cast(); + model.schedulerBuilder("D").build(); final BindableInputWire, Void> wireDIn = taskSchedulerD.buildInputWire("D in"); final OutputWire splitter = @@ -121,15 +121,15 @@ void wireFilterTest() { // B wants all of A's data, but C and the lambda only want even values. final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").build().cast(); + model.schedulerBuilder("A").build(); final BindableInputWire inA = taskSchedulerA.buildInputWire("A in"); final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").build().cast(); + model.schedulerBuilder("B").build(); final BindableInputWire inB = taskSchedulerB.buildInputWire("B in"); final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").build().cast(); + model.schedulerBuilder("C").build(); final BindableInputWire inC = taskSchedulerC.buildInputWire("C in"); final AtomicInteger countA = new AtomicInteger(0); @@ -184,19 +184,19 @@ void wireTransformerTest() { // B wants all of A's data, C wants the integer values, and D wants the boolean values. final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").build().cast(); + model.schedulerBuilder("A").build(); final BindableInputWire inA = taskSchedulerA.buildInputWire("A in"); final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").build().cast(); + model.schedulerBuilder("B").build(); final BindableInputWire inB = taskSchedulerB.buildInputWire("B in"); final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").build().cast(); + model.schedulerBuilder("C").build(); final BindableInputWire inC = taskSchedulerC.buildInputWire("C in"); final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").build().cast(); + model.schedulerBuilder("D").build(); final BindableInputWire inD = taskSchedulerD.buildInputWire("D in"); taskSchedulerA.getOutputWire().solderTo(inB); @@ -263,19 +263,19 @@ void advancedWireTransformerSimpleTaskTest() { // B wants all of A's data, C wants the integer values, and D wants the boolean values. final TaskScheduler taskSchedulerA = - model.schedulerBuilder("A").build().cast(); + model.schedulerBuilder("A").build(); final BindableInputWire inA = taskSchedulerA.buildInputWire("A in"); final TaskScheduler taskSchedulerB = - model.schedulerBuilder("B").build().cast(); + model.schedulerBuilder("B").build(); final BindableInputWire inB = taskSchedulerB.buildInputWire("B in"); final TaskScheduler taskSchedulerC = - model.schedulerBuilder("C").build().cast(); + model.schedulerBuilder("C").build(); final BindableInputWire inC = taskSchedulerC.buildInputWire("C in"); final TaskScheduler taskSchedulerD = - model.schedulerBuilder("D").build().cast(); + model.schedulerBuilder("D").build(); final BindableInputWire inD = taskSchedulerD.buildInputWire("D in"); taskSchedulerA.getOutputWire().solderTo(inB); @@ -391,38 +391,33 @@ void advancedWireTransformerTest() { final AtomicBoolean error = new AtomicBoolean(false); final UncaughtExceptionHandler exceptionHandler = (t, e) -> error.set(true); - final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") + final TaskScheduler taskSchedulerA = model.schedulerBuilder("A") .withUncaughtExceptionHandler(exceptionHandler) - .build() - .cast(); + .build(); final BindableInputWire inA = taskSchedulerA.buildInputWire("A in"); final OutputWire outA = taskSchedulerA.getOutputWire(); final OutputWire outAReserved = outA.buildAdvancedTransformer(new AdvancedTransformationHelper<>( "reserveFooBar", FooBar::copyAndReserve, FooBar::release, FooBar::release)); - final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") + final TaskScheduler taskSchedulerB = model.schedulerBuilder("B") .withUncaughtExceptionHandler(exceptionHandler) - .build() - .cast(); + .build(); final BindableInputWire inB = taskSchedulerB.buildInputWire("B in"); - final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") + final TaskScheduler taskSchedulerC = model.schedulerBuilder("C") .withUncaughtExceptionHandler(exceptionHandler) - .build() - .cast(); + .build(); final BindableInputWire inC = taskSchedulerC.buildInputWire("C in"); - final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") + final TaskScheduler taskSchedulerD = model.schedulerBuilder("D") .withUncaughtExceptionHandler(exceptionHandler) - .build() - .cast(); + .build(); final BindableInputWire inD = taskSchedulerD.buildInputWire("D in"); - final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") + final TaskScheduler taskSchedulerE = model.schedulerBuilder("E") .withUncaughtExceptionHandler(exceptionHandler) .withUnhandledTaskCapacity(1) - .build() - .cast(); + .build(); final BindableInputWire inE = taskSchedulerE.buildInputWire("E in"); outAReserved.solderTo(inB); diff --git a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/wires/OutputWireTests.java b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/wires/OutputWireTests.java index 65322c21bb7d..695ab32497ad 100644 --- a/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/wires/OutputWireTests.java +++ b/platform-sdk/swirlds-component-framework/src/test/java/com/swirlds/component/framework/wires/OutputWireTests.java @@ -50,18 +50,15 @@ void orderedSolderToTest(final int count) { TestPlatformContextBuilder.create().build(); final WiringModel model = WiringModelBuilder.create(platformContext).build(); - final TaskScheduler intForwarder = model.schedulerBuilder("intForwarder") + final TaskScheduler intForwarder = model.schedulerBuilder("intForwarder") .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); - final TaskScheduler firstComponent = model.schedulerBuilder("firstComponent") + .build(); + final TaskScheduler firstComponent = model.schedulerBuilder("firstComponent") .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); - final TaskScheduler secondComponent = model.schedulerBuilder("secondComponent") + .build(); + final TaskScheduler secondComponent = model.schedulerBuilder("secondComponent") .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); + .build(); final BindableInputWire intInput = intForwarder.buildInputWire("intInput"); final BindableInputWire firstComponentInput = firstComponent.buildInputWire("ints"); @@ -106,14 +103,12 @@ void orderedSolderToThrows() { TestPlatformContextBuilder.create().build(); final WiringModel model = WiringModelBuilder.create(platformContext).build(); - final TaskScheduler schedulerA = model.schedulerBuilder("schedulerA") + final TaskScheduler schedulerA = model.schedulerBuilder("schedulerA") .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); - final TaskScheduler schedulerB = model.schedulerBuilder("schedulerB") + .build(); + final TaskScheduler schedulerB = model.schedulerBuilder("schedulerB") .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); + .build(); InputWire inputWire = schedulerB.buildInputWire("inputWire"); assertThrows( diff --git a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/cli/DiagramLegendCommand.java b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/cli/DiagramLegendCommand.java index 57e4cf430473..b60d841d225c 100644 --- a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/cli/DiagramLegendCommand.java +++ b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/cli/DiagramLegendCommand.java @@ -58,28 +58,23 @@ public Integer call() throws IOException { final WiringModel model = WiringModelBuilder.create(platformContext).build(); - final TaskScheduler sequentialScheduler = model.schedulerBuilder("SequentialScheduler") + final TaskScheduler sequentialScheduler = model.schedulerBuilder("SequentialScheduler") .withType(TaskSchedulerType.SEQUENTIAL) .withUnhandledTaskCapacity(1) - .build() - .cast(); - final TaskScheduler sequentialThreadScheduler = model.schedulerBuilder("SequentialThreadScheduler") + .build(); + final TaskScheduler sequentialThreadScheduler = model.schedulerBuilder("SequentialThreadScheduler") .withType(TaskSchedulerType.SEQUENTIAL_THREAD) .withUnhandledTaskCapacity(1) - .build() - .cast(); - final TaskScheduler directScheduler = model.schedulerBuilder("DirectScheduler") + .build(); + final TaskScheduler directScheduler = model.schedulerBuilder("DirectScheduler") .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); - final TaskScheduler directThreadsafeScheduler = model.schedulerBuilder("DirectThreadsafeScheduler") + .build(); + final TaskScheduler directThreadsafeScheduler = model.schedulerBuilder("DirectThreadsafeScheduler") .withType(TaskSchedulerType.DIRECT_THREADSAFE) - .build() - .cast(); - final TaskScheduler concurrentScheduler = model.schedulerBuilder("ConcurrentScheduler") + .build(); + final TaskScheduler concurrentScheduler = model.schedulerBuilder("ConcurrentScheduler") .withType(TaskSchedulerType.CONCURRENT) - .build() - .cast(); + .build(); final String wireSubstitutionString = "wire substitution (for readability)"; sequentialScheduler.getOutputWire().solderTo(sequentialThreadScheduler.buildInputWire(wireSubstitutionString)); diff --git a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/GossipWiring.java b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/GossipWiring.java index 8359090f1ba5..9a3b83791f6f 100644 --- a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/GossipWiring.java +++ b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/GossipWiring.java @@ -90,13 +90,12 @@ public class GossipWiring { public GossipWiring(@NonNull final PlatformContext platformContext, @NonNull final WiringModel model) { this.model = model; - scheduler = model.schedulerBuilder("gossip") + scheduler = model.schedulerBuilder("gossip") .configure(platformContext .getConfiguration() .getConfigData(PlatformSchedulersConfig.class) .gossip()) - .build() - .cast(); + .build(); eventInput = scheduler.buildInputWire("events to gossip"); eventWindowInput = scheduler.buildInputWire("event window"); diff --git a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/PassThroughWiring.java b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/PassThroughWiring.java index 563f9fc6dea7..0f53234664a7 100644 --- a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/PassThroughWiring.java +++ b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/PassThroughWiring.java @@ -69,10 +69,9 @@ public PassThroughWiring( this( model, inputLabel, - model.schedulerBuilder(Objects.requireNonNull(componentName)) + model.schedulerBuilder(Objects.requireNonNull(componentName)) .withType(Objects.requireNonNull(schedulerType)) - .build() - .cast()); + .build()); } /** diff --git a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/PcesReplayerWiring.java b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/PcesReplayerWiring.java index cd39d91282a6..b9a6edab4043 100644 --- a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/PcesReplayerWiring.java +++ b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/PcesReplayerWiring.java @@ -52,11 +52,10 @@ public record PcesReplayerWiring( */ @NonNull public static PcesReplayerWiring create(@NonNull final WiringModel model) { - final TaskScheduler taskScheduler = model.schedulerBuilder("pcesReplayer") + final TaskScheduler taskScheduler = model.schedulerBuilder("pcesReplayer") .withType(DIRECT) .withHyperlink(platformCoreHyperlink(PcesReplayer.class)) - .build() - .cast(); + .build(); return new PcesReplayerWiring( taskScheduler.buildInputWire("event files to replay"), diff --git a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/RunningEventHashOverrideWiring.java b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/RunningEventHashOverrideWiring.java index dea387078f15..94f2b0542570 100644 --- a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/RunningEventHashOverrideWiring.java +++ b/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/wiring/components/RunningEventHashOverrideWiring.java @@ -46,11 +46,11 @@ public record RunningEventHashOverrideWiring( @NonNull public static RunningEventHashOverrideWiring create(@NonNull final WiringModel model) { - final TaskScheduler taskScheduler = model.schedulerBuilder("RunningEventHashOverride") + final TaskScheduler taskScheduler = model.schedulerBuilder( + "RunningEventHashOverride") .withType(DIRECT_THREADSAFE) .withHyperlink(platformCoreHyperlink(RunningEventHashOverrideWiring.class)) - .build() - .cast(); + .build(); final BindableInputWire inputWire = taskScheduler.buildInputWire("hash override"); diff --git a/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/components/EventWindowManagerTests.java b/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/components/EventWindowManagerTests.java index 51e043916be3..d1d9bc023766 100644 --- a/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/components/EventWindowManagerTests.java +++ b/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/components/EventWindowManagerTests.java @@ -42,10 +42,9 @@ void WiringInputTest() { final ComponentWiring wiring = new ComponentWiring<>( model, EventWindowManager.class, - model.schedulerBuilder("eventWindowManager") + model.schedulerBuilder("eventWindowManager") .withType(TaskSchedulerType.DIRECT_THREADSAFE) - .build() - .cast()); + .build()); wiring.bind(eventWindowManager); final AtomicReference output = new AtomicReference<>(null); diff --git a/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/event/stream/ConsensusEventStreamTest.java b/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/event/stream/ConsensusEventStreamTest.java index 6e0a41c5d046..cbcbc0ce2b7c 100644 --- a/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/event/stream/ConsensusEventStreamTest.java +++ b/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/event/stream/ConsensusEventStreamTest.java @@ -63,10 +63,9 @@ void addEventTest() { final ComponentWiring wiring = new ComponentWiring<>( model, ConsensusEventStream.class, - model.schedulerBuilder("eventStreamManager") + model.schedulerBuilder("eventStreamManager") .withType(TaskSchedulerType.DIRECT) - .build() - .cast()); + .build()); wiring.bind(CONSENSUS_EVENT_STREAM); wiring.getInputWire(ConsensusEventStream::addEvents).inject(List.of(freezeEvent)); @@ -92,10 +91,9 @@ void setStartWriteAtCompleteWindowTest(final boolean startWriteAtCompleteWindow) final ComponentWiring wiring = new ComponentWiring<>( model, ConsensusEventStream.class, - model.schedulerBuilder("eventStreamManager") + model.schedulerBuilder("eventStreamManager") .withType(TaskSchedulerType.DIRECT) - .build() - .cast()); + .build()); wiring.bind(CONSENSUS_EVENT_STREAM); wiring.getInputWire(ConsensusEventStream::legacyHashOverride) diff --git a/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/turtle/gossip/SimulatedGossipTests.java b/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/turtle/gossip/SimulatedGossipTests.java index 3cf0b07f8a84..7fde4346ee56 100644 --- a/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/turtle/gossip/SimulatedGossipTests.java +++ b/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/turtle/gossip/SimulatedGossipTests.java @@ -98,10 +98,9 @@ void randomDataTest(final int networkSize) { .withDeterministicModeEnabled(true) .build(); - final TaskScheduler eventInputShim = model.schedulerBuilder("eventInputShim") + final TaskScheduler eventInputShim = model.schedulerBuilder("eventInputShim") .configure(DIRECT_THREADSAFE_CONFIGURATION) - .build() - .cast(); + .build(); final List receivedEventsForNode = new ArrayList<>(); receivedEvents.put(nodeId, receivedEventsForNode); diff --git a/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/wiring/SignedStateReserverTest.java b/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/wiring/SignedStateReserverTest.java index 0c37b72c4c23..1e352d38d5f5 100644 --- a/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/wiring/SignedStateReserverTest.java +++ b/platform-sdk/swirlds-platform-core/src/test/java/com/swirlds/platform/wiring/SignedStateReserverTest.java @@ -58,10 +58,10 @@ void basicTest() { false); final WiringModel model = WiringModelBuilder.create(platformContext).build(); - final TaskScheduler taskScheduler = model.schedulerBuilder("scheduler") + final TaskScheduler taskScheduler = model.schedulerBuilder( + "scheduler") .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); + .build(); final OutputWire outputWire = taskScheduler.getOutputWire().buildAdvancedTransformer(new SignedStateReserver("reserver")); final BindableInputWire inputWire = diff --git a/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/consensus/TestIntake.java b/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/consensus/TestIntake.java index 5fe3cc59ad86..6945601608b8 100644 --- a/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/consensus/TestIntake.java +++ b/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/consensus/TestIntake.java @@ -185,9 +185,8 @@ public void reset() { } public TaskScheduler directScheduler(final String name) { - return model.schedulerBuilder(name) + return model.schedulerBuilder(name) .withType(TaskSchedulerType.DIRECT) - .build() - .cast(); + .build(); } }