public boolean shouldFire(W window, Timers timers, StateAccessor<?> state) throws Exception {
   FinishedTriggers finishedSet = readFinishedBits(state.access(FINISHED_BITS_TAG)).copy();
   TriggerStateMachine.TriggerContext context =
       contextFactory.base(window, timers, rootTrigger, finishedSet);
   return rootTrigger.invokeShouldFire(context);
 }