Interface AggregateRepository<KEY,AGGREGATE extends Identified<KEY>>

Type Parameters:
KEY - The type of the key used for this aggregate. In SquashTF it's generally a UUID as string.
AGGREGATE - The Class of Aggregate that must implement Identified to be sure that the id exist.
All Known Implementing Classes:
InMemoryRepository

public interface AggregateRepository<KEY,AGGREGATE extends Identified<KEY>>
Describe a storage for an AGGREGATE. An Aggregate is the root of an object structure that represent all the necessary data and behavior for a given set of business operation. It could be considered as a specialized projection of a real domain. An Aggregate is always referenced by Identity and not by value. Equality should be tested on Identity An Agrregate should be referenced by id in other Aggregates. An Aggregate can contain entities (Objects with ids...) or ValueObjects (Objects identified by the value of field(s), equality should be done on values)