/** * Constructor for timed sequences * * @param msb the model state broker * @param actionURI the URI of the action sequence in the schedule ontology * @param firstAction the first action in the sequence * @param time the time at which the sequence starts * @param increment the time gap between consecutive members of the sequence * @throws ScheduleException */ public SequentialActionGroup( ModelStateBroker msb, URI actionURI, AbstractScheduledAction firstAction, double time, double increment) throws ScheduleException { super(msb, actionURI, time); init(firstAction); if (increment <= 0.0 || Double.isNaN(increment) || Double.isInfinite(increment)) { throw new ScheduleException( actionURI, "non-positive, infinite, or not-a-number increment: " + increment); } this.increment = increment; firstAction.synchroniseWith(this); }
/** * Constructor * * @param msb the model state broker * @param actionURI the URI of the action sequence in the schedule ontology * @param assertedNonTimed <code>true</code> if the action is asserted non-timed * @param firstAction the first action in the sequence * @throws ScheduleException */ public SequentialActionGroup( ModelStateBroker msb, URI actionURI, boolean assertedNonTimed, AbstractScheduledAction firstAction) throws ScheduleException { super(msb, actionURI, assertedNonTimed); init(firstAction); increment = null; if (firstAction instanceof SequentialActionGroup) { synchroniseWith(firstAction); } else if (firstAction.isTimed()) { throw new ScheduleException( actionURI, "Non-timed action sequence with timed sub-action " + firstAction.getURI()); } }