/** Returns an {@code AfterEach} {@code Trigger} with the given subtriggers. */ public static AfterEach inOrder(List<Trigger> triggers) { return new AfterEach(triggers); }
@Test public void testToString() { Trigger trigger = AfterEach.inOrder( StubTrigger.named("t1"), StubTrigger.named("t2"), StubTrigger.named("t3")); assertEquals("AfterEach.inOrder(t1, t2, t3)", trigger.toString()); } }
@Test public void testFireDeadline() throws Exception { BoundedWindow window = new IntervalWindow(new Instant(0), new Instant(10)); assertEquals( new Instant(9), AfterEach.inOrder(AfterWatermark.pastEndOfWindow(), AfterPane.elementCountAtLeast(4)) .getWatermarkThatGuaranteesFiring(window)); assertEquals( BoundedWindow.TIMESTAMP_MAX_VALUE, AfterEach.inOrder(AfterPane.elementCountAtLeast(2), AfterWatermark.pastEndOfWindow()) .getWatermarkThatGuaranteesFiring(window)); }
private RunnerApi.Trigger convertSpecific(AfterEach v) { RunnerApi.Trigger.AfterEach.Builder builder = RunnerApi.Trigger.AfterEach.newBuilder(); for (Trigger subtrigger : v.subTriggers()) { builder.addSubtriggers(toProto(subtrigger)); } return RunnerApi.Trigger.newBuilder().setAfterEach(builder).build(); }
@Test public void testContinuation() throws Exception { OnceTrigger trigger1 = AfterProcessingTime.pastFirstElementInPane(); OnceTrigger trigger2 = AfterWatermark.pastEndOfWindow(); Trigger afterEach = AfterEach.inOrder(trigger1, trigger2); assertEquals( Repeatedly.forever( AfterFirst.of(trigger1.getContinuationTrigger(), trigger2.getContinuationTrigger())), afterEach.getContinuationTrigger()); }
return AfterFirst.of(protosToTriggers(triggerProto.getAfterAny().getSubtriggersList())); case AFTER_EACH: return AfterEach.inOrder( protosToTriggers(triggerProto.getAfterEach().getSubtriggersList())); case AFTER_END_OF_WINDOW:
/** Returns an {@code AfterEach} {@code Trigger} with the given subtriggers. */ @SafeVarargs public static AfterEach inOrder(Trigger... triggers) { return new AfterEach(Arrays.asList(triggers)); }
.withTimestampCombiner(TimestampCombiner.EARLIEST) .withTrigger( AfterEach.inOrder( Repeatedly.forever( AfterProcessingTime.pastFirstElementInPane()
.withTimestampCombiner(TimestampCombiner.EARLIEST) .withTrigger( AfterEach.inOrder( Repeatedly.forever( AfterProcessingTime.pastFirstElementInPane()
.withTimestampCombiner(TimestampCombiner.EARLIEST) .withTrigger( AfterEach.inOrder( Repeatedly.forever( AfterProcessingTime.pastFirstElementInPane()
.withTimestampCombiner(TimestampCombiner.EARLIEST) .withTrigger( AfterEach.inOrder( Repeatedly.forever( AfterProcessingTime.pastFirstElementInPane()
FixedWindows.of(Duration.standardMinutes(windowDuration))) .triggering( AfterEach.inOrder( Repeatedly.forever( AfterProcessingTime.pastFirstElementInPane()
AfterAll.of(AfterPane.elementCountAtLeast(79), AfterWatermark.pastEndOfWindow())), toProtoAndBackSpec( AfterEach.inOrder(AfterPane.elementCountAtLeast(79), AfterPane.elementCountAtLeast(3))), toProtoAndBackSpec( AfterFirst.of(AfterWatermark.pastEndOfWindow(), AfterPane.elementCountAtLeast(3))),