Package net.sf.eBus.feed.historic
Class EHistoricPublishFeed.Builder
- java.lang.Object
-
- net.sf.eBus.feed.historic.EAbstractHistoricFeed.Builder<IEHistoricPublisher,EHistoricPublishFeed,EHistoricPublishFeed.Builder>
-
- net.sf.eBus.feed.historic.EHistoricPublishFeed.Builder
-
- Enclosing class:
- EHistoricPublishFeed
public static final class EHistoricPublishFeed.Builder extends EAbstractHistoricFeed.Builder<IEHistoricPublisher,EHistoricPublishFeed,EHistoricPublishFeed.Builder>
Builder is used to instantiateEHistoricPublishFeedinstances. A builder instance is acquired viaEHistoricPublishFeed.builder(EMessageKey, IEHistoricPublisher)which requires that a non-nullnotification message key and historic publisher instance be provided. This message key defines the notification message class and subject published and persisted by the historic publish feed. The publisher is the historic publish feed owner. The historic publish feed is an eBus hybrid object and runs in the owner's dispatcher. This historic publisher provides a unique publisher identifier (note that eBus cannot determine identifier is unique),This builder requires the following properties be defined (beside those properties required by
EAbstractHistoricFeed.Builder):-
non-
nullmessage store, and -
maximum number of historic notification messages
placed into each
HistoricReplymessage.
It is recommended that each builder instance be used to create only one historic publish feed.
-
-
Field Summary
-
Fields inherited from class net.sf.eBus.feed.historic.EAbstractHistoricFeed.Builder
mFeedClass, mKey, mName, mOwner, mRequestKey, mScope, mStatusKey, sFeedIndex
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected EHistoricPublishFeedbuildImpl()Returns new historic publish feed instance created from builder settings.protected StringgenerateName()Returns default historic public feed name.EHistoricPublishFeed.BuildermessageStore(IEMessageStore store)Sets the message store used to persist and retrieve notification messages.EHistoricPublishFeed.BuildernotificationsPerReply(int n)Sets maximum number of notifications perHistoricReplyinstance.protected EHistoricPublishFeed.Builderself()Returnsthis Builderself reference.EHistoricPublishFeed.BuilderstatusCallback(HistoricPublishStatusCallback cb)Puts historic publish status callback in place.protected net.sf.eBus.util.Validatorvalidate(net.sf.eBus.util.Validator problems)Validates historic publish feed builder settings.-
Methods inherited from class net.sf.eBus.feed.historic.EAbstractHistoricFeed.Builder
build, name, scope
-
-
-
-
Method Detail
-
self
protected EHistoricPublishFeed.Builder self()
Returnsthis Builderself reference.- Specified by:
selfin classEAbstractHistoricFeed.Builder<IEHistoricPublisher,EHistoricPublishFeed,EHistoricPublishFeed.Builder>- Returns:
this Builderself reference.
-
validate
protected net.sf.eBus.util.Validator validate(net.sf.eBus.util.Validator problems)
Validates historic publish feed builder settings. ExtendsEAbstractHistoricFeedvalidation with a check that message store is set. Returnsproblemsparameter to allow forvalidatemethod chaining.- Overrides:
validatein classEAbstractHistoricFeed.Builder<IEHistoricPublisher,EHistoricPublishFeed,EHistoricPublishFeed.Builder>- Parameters:
problems-- Returns:
-
generateName
protected String generateName()
Returns default historic public feed name. Used when feed name is not explicitly set.- Specified by:
generateNamein classEAbstractHistoricFeed.Builder<IEHistoricPublisher,EHistoricPublishFeed,EHistoricPublishFeed.Builder>- Returns:
- default historic public feed name.
-
buildImpl
protected EHistoricPublishFeed buildImpl()
Returns new historic publish feed instance created from builder settings.- Specified by:
buildImplin classEAbstractHistoricFeed.Builder<IEHistoricPublisher,EHistoricPublishFeed,EHistoricPublishFeed.Builder>- Returns:
- new historic publish feed instance.
-
statusCallback
public EHistoricPublishFeed.Builder statusCallback(@Nullable HistoricPublishStatusCallback cb)
Puts historic publish status callback in place. Ifcbis notnull, publish status updates will be passed tocbrather thanIEHistoricPublisher.publishStatus(EFeedState, EHistoricPublishFeed). The reverse is true: ifcbisnull, then updates are post toIEHistoricPublisher#publishStatusoverride.An example using this method is:
statusCallback( (fs, f) → { if (fs == EFeedState.DOWN) { // Respond to down live notification feed. } })- Parameters:
cb- historic publisher publish status update callback.- Returns:
this Builderinstance.
-
messageStore
public EHistoricPublishFeed.Builder messageStore(IEMessageStore store)
Sets the message store used to persist and retrieve notification messages.- Parameters:
store- notification message store.- Returns:
this Builderinstance.- Throws:
NullPointerException- ifstoreisnull.IllegalArgumentException- ifstoreis not open.
-
notificationsPerReply
public EHistoricPublishFeed.Builder notificationsPerReply(int n)
Sets maximum number of notifications perHistoricReplyinstance. Values must be > zero.- Parameters:
n- maximum number of notifications per historic reply.- Returns:
this Builderinstance.
-
-