package com.abilityapi.sequenceapi; /** * Represents a way to create a new {@link Sequence} * from a pre-existing order. * * @param the event type */ public interface SequenceBlueprint { /** * Returns a new {@link Sequence} created with * the existing order. * * @param rootEvent the sequence trigger instance * @param sequenceContext the sequence context * @return the new sequence */ Sequence create(final T rootEvent, final SequenceContext sequenceContext); /** * Returns the {@link Sequence} event trigger * class. * *

Also accessed by {@link Sequence#getTriggerClass()}.

* * @return the event trigger class */ Class getTrigger(); /** * Returns the {@link SequenceContext} for the creation * of this blueprint. * * @return the creation context */ SequenceContext getContext(); }