FinishedTriggersSet implements FinishedTriggers { @Override public void clearRecursively(ExecutableTriggerStateMachine trigger) { finishedTriggers.remove(trigger); for (ExecutableTriggerStateMachine subTrigger : trigger.subTriggers()) { clearRecursively(subTrigger); } } private  FinishedTriggersSet(Set<ExecutableTriggerStateMachine> finishedTriggers); static FinishedTriggersSet fromSet(Set<ExecutableTriggerStateMachine> finishedTriggers); Set<ExecutableTriggerStateMachine> getFinishedTriggers(); @Override boolean isFinished(ExecutableTriggerStateMachine trigger); @Override void setFinished(ExecutableTriggerStateMachine trigger, boolean value); @Override void clearRecursively(ExecutableTriggerStateMachine trigger); @Override FinishedTriggersSet copy();  }
@Test public void testClearRecursively() { FinishedTriggersProperties.verifyClearRecursively(FinishedTriggersSet.fromSet(new HashSet<>())); }