|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface RepositoryBuilder
Standard interface for building up configuration and opening a Repository instance. All repository implementations should be constructable
via a builder that implements this interface. Builders should follow a
pattern where configuration is supplied via property access methods. With
this design, each item can have extensive documentation and optional
configuration can be ignored.
A builder design also offers advantages over constructors in that a different repository can be built depending on the specific configuration. This logic is hidden, making it easier to use repositories that would otherwise require complex steps to construct.
RepositoryBuilders are not expected to be thread-safe, but the Repositories they build are thread-safe.
| Method Summary | |
|---|---|
boolean |
addTriggerFactory(TriggerFactory factory)
Optionally add a TriggerFactory which will be called upon to create an initial trigger for each Storable type that the Repository supports. |
Repository |
build()
Builds a repository instance. |
Repository |
build(AtomicReference<Repository> rootReference)
Builds a repository instance. |
String |
getName()
Returns the name of the repository. |
Iterable<TriggerFactory> |
getTriggerFactories()
Returns all the TriggerFactories which were added. |
boolean |
isMaster()
Returns true if repository should assume the role of master, which is true by default. |
boolean |
removeTriggerFactory(TriggerFactory factory)
Remove a TriggerFactory which was added earlier. |
void |
setMaster(boolean b)
Set to false if repository should not assume the role of master. |
void |
setName(String name)
Set name for the repository, which is required. |
| Method Detail |
|---|
Repository build()
throws ConfigurationException,
RepositoryException
ConfigurationException - if there is a problem in the builder's configuration
RepositoryException - if there is a general problem opening the repository
Repository build(AtomicReference<Repository> rootReference)
throws ConfigurationException,
RepositoryException
If the repository is being wrapped by a parent repository, the child repository will need to know this fact for some operations to work correctly. Since the parent repository is not built yet, a reference is used instead.
rootReference - reference to root parent repository, to be set by
parent repository upon being built
ConfigurationException - if there is a problem in the builder's configuration
RepositoryException - if there is a general problem opening the repositoryString getName()
void setName(String name)
boolean isMaster()
A master repository is responsible for version and
sequence properties. For insert operations, a master
repository must set these properties if they are uninitialized. For
updates, the version property is checked to see if an OptimisticLockException should be thrown.
ReplicatedRepositoryBuildervoid setMaster(boolean b)
A master repository is responsible for version and
sequence properties. For insert operations, a master
repository must set these properties if they are uninitialized. For
updates, the version property is checked to see if an OptimisticLockException should be thrown.
ReplicatedRepositoryBuilderboolean addTriggerFactory(TriggerFactory factory)
boolean removeTriggerFactory(TriggerFactory factory)
Iterable<TriggerFactory> getTriggerFactories()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||