public abstract class AbstractSagaRepository extends Object implements SagaRepository
Constructor and Description |
---|
AbstractSagaRepository() |
Modifier and Type | Method and Description |
---|---|
void |
add(Saga saga)
Registers a newly created Saga with the Repository.
|
void |
commit(Saga saga)
Commits the changes made to the Saga instance.
|
protected abstract void |
deleteSaga(Saga saga)
Remove the given saga as well as all known association values pointing to it from the repository.
|
Set<String> |
find(Class<? extends Saga> type,
AssociationValue associationValue)
Find saga instances of the given
type that have been associated with the given
associationValue . |
protected abstract Set<String> |
findAssociatedSagaIdentifiers(Class<? extends Saga> type,
AssociationValue associationValue)
Finds the identifiers of the sagas of given
type associated with the given
associationValue . |
protected abstract void |
removeAssociationValue(AssociationValue associationValue,
String sagaType,
String sagaIdentifier)
Removes the association value that has been associated with Saga, identified with the given
sagaIdentifier . |
protected abstract void |
storeAssociationValue(AssociationValue associationValue,
String sagaType,
String sagaIdentifier)
Store the given
associationValue , which has been associated with given sagaIdentifier . |
protected abstract void |
storeSaga(Saga saga)
Stores a newly created Saga instance.
|
protected abstract String |
typeOf(Class<? extends Saga> sagaClass)
Returns the type identifier to use for the given
sagaClass . |
protected abstract void |
updateSaga(Saga saga)
Update a stored Saga, by replacing it with the given
saga instance. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
load
public Set<String> find(Class<? extends Saga> type, AssociationValue associationValue)
SagaRepository
type
that have been associated with the given
associationValue
.
Returned Sagas must be committed
after processing.
find
in interface SagaRepository
type
- The type of Saga to returnassociationValue
- The value that the returned Sagas must be associated withnull
.public void add(Saga saga)
SagaRepository
Note that if the added Saga is marked inActive (Saga.isActive()
returns
false
), it is not stored.
add
in interface SagaRepository
saga
- The Saga instances to add.public void commit(Saga saga)
SagaRepository
Saga.isActive()
returns
false
), the repository should delete the saga from underlying storage and remove all stored association
values associated with that Saga.
Implementations *may* (temporarily) return a cached version of the Saga, which is marked inactive.
commit
in interface SagaRepository
saga
- The Saga instance to commitprotected abstract Set<String> findAssociatedSagaIdentifiers(Class<? extends Saga> type, AssociationValue associationValue)
type
associated with the given
associationValue
.type
- The type of saga to find identifiers forassociationValue
- The value the saga must be associated withassociationValue
protected abstract String typeOf(Class<? extends Saga> sagaClass)
sagaClass
. This information is typically provided
by the Serializer, if the repository stores serialized instances.sagaClass
- The type of saga to get the type identifier for.protected abstract void deleteSaga(Saga saga)
saga
- The saga instance to remove from the repositoryprotected abstract void updateSaga(Saga saga)
saga
instance.saga
- The saga that has been modified and needs to be updated in the storageprotected abstract void storeSaga(Saga saga)
saga
- The newly created Saga instance to store.protected abstract void storeAssociationValue(AssociationValue associationValue, String sagaType, String sagaIdentifier)
associationValue
, which has been associated with given sagaIdentifier
.associationValue
- The association value to storesagaType
- Type type of saga the association value belongs tosagaIdentifier
- The saga related to the association valueprotected abstract void removeAssociationValue(AssociationValue associationValue, String sagaType, String sagaIdentifier)
sagaIdentifier
.associationValue
- The value to remove as association value for the given sagasagaType
- The type of the Saga to remove the association fromsagaIdentifier
- The identifier of the Saga to remove the association fromCopyright © 2010-2014. All Rights Reserved.