it.amattioli.dominate
Interface Repository<I extends Serializable,T extends Entity<I>>

Show UML class diagram
All Superinterfaces:
Cloneable
All Known Implementing Classes:
AbstractHibernateRepository, AbstractRepositoryBridge, ClassHibernateRepository, CollectionHibernateRepository, CollectionRepository, EmptyRepository, MemoryRepository

public interface Repository<I extends Serializable,T extends Entity<I>>
extends Cloneable

A repository is an object that encapsulate access to a group of entities. You can add new entities to the group, retrieve an entity by id, retrieve all the entities contained in this repository or filter them.

Author:
a.mattioli

Method Summary
 void addOrder(String property, boolean reverse)
          Add an order property for the lists retrieved using list() and list(Specification).
 void fillCollection(Collection<? super T>... toBeFilled)
           
 void fillCollection(Filter criteria, Collection<? super T>... toBeFilled)
           
 T get(I id)
          Retrieve an entity from this repository using its id.
 T getByPropertyValue(String propertyName, Object value)
          Retrieves the object contained in this repository that has a specified property equals to a certain value.
<J extends Serializable,E extends Entity<J>>
Repository<J,E>
getDetailRepository(Collection<E> details)
           
 int getFirst()
          Retrieves the index of the first object that will be retrieved by list() e list(Filter).
 int getLast()
          Retrieves the index of the last object that will be retrieved by list() e list(Specification).
 String getOrderProperty()
          Retrieves the name of the property used for ordering the result of the list() and list(Specification) methods.
 boolean isRemoveAllowed()
          Check if this repository supports object removal.
 boolean isReverseOrder()
          Returns true if the order of the result of the list() and list(Specification) methods is ascending, false otherwise.
 List<T> list()
          Retrieves all the objects contained in this repository.
 List<T> list(Filter criteria)
          Deprecated. 
 List<T> list(Specification<T> spec)
          Retrieves the objects contained in this repository that satisfied the given specification.
 void put(T object)
          Add a new entity to this repository.
 void refresh(I objectId)
          If this repository is associated to an external data source (i.e a relational database) this method delete an object from the repository local cache so that a get(Serializable) will retrieve a fresh one from the data source.
 void refresh(T object)
          If this repository is associated to an external data source (i.e a relational database) this method delete an object from the repository local cache so that a get(Serializable) will retrieve a fresh one from the data source.
 void remove(I objectId)
          Removes an object from this repository.
 void remove(T object)
          Removes an object from this repository.
 void removeLastOrder()
          Remove the last added order property.
 void setFirst(int first)
          Set the index of the first object that will be retrieved by list() and list(Filter) when value 0 has been set for 'first' in the filter.
 void setLast(int last)
          Set the index of the last object that will be retrieved by list() e list(Filter) when value 0 has been set for 'first' in the filter.
 void setOrder(String property, boolean reverse)
          Set the order for the lists retrieved using list() and list(Specification).
 

Method Detail

get

T get(I id)
Retrieve an entity from this repository using its id.

Parameters:
id - the id of the entity you want to retrieve.
Returns:
the entity, contained in this repository, whose id is the same as the parameter

put

void put(T object)
Add a new entity to this repository.

Parameters:
object - the entity you want to add

refresh

void refresh(T object)
If this repository is associated to an external data source (i.e a relational database) this method delete an object from the repository local cache so that a get(Serializable) will retrieve a fresh one from the data source. If the repository is not associated to an external data source or it has no local cache this method will have no effect.

Parameters:
object - the object to be refreshed

refresh

void refresh(I objectId)
If this repository is associated to an external data source (i.e a relational database) this method delete an object from the repository local cache so that a get(Serializable) will retrieve a fresh one from the data source. If the repository is not associated to an external data source or it has no local cache this method will have no effect.

Parameters:
objectId - the id of the object to be refreshed

isRemoveAllowed

boolean isRemoveAllowed()
Check if this repository supports object removal.

Returns:
true if this repository supports object removal

remove

void remove(T object)
Removes an object from this repository. Before calling this method clients should check id this repository supports object removal using isRemoveAllowed()

Parameters:
object - the object to remove
Throws:
UnsupportedOperationException - if this repository does not support object removal

remove

void remove(I objectId)
Removes an object from this repository. Before calling this method clients should check id this repository supports object removal using isRemoveAllowed()

Parameters:
objectId - the id of the object to remove
Throws:
UnsupportedOperationException - if this repository does not support object removal

list

List<T> list()
Retrieves all the objects contained in this repository. The order of the object inside the list depends on the "order" property. If "first" and "last" properties have been set only a part of the entities will be retrieved.

Returns:
all the entities contained in this repository
See Also:
#setFirst(int)}, {@link #setLast(int)}, {@link #setOrder(String, boolean)}

list

@Deprecated
List<T> list(Filter criteria)
Deprecated. 

Retrieves the objects contained in this repository that match the specified filter. The order of the object inside the list depends on the "order" property. If "first" and "last" properties have been set only a part of the entities will be retrieved.

Parameters:
criteria - the filter to be used
Returns:
the objects contained in this repository that match the specified filter
See Also:
#setFirst(int)}, {@link #setLast(int)}, {@link #setOrder(String, boolean)}

getByPropertyValue

T getByPropertyValue(String propertyName,
                     Object value)
Retrieves the object contained in this repository that has a specified property equals to a certain value.

This method makes sense only if the specified property has distinct values for each entity.

If there is no entity in this repository that has the specified value, null is returned.

if there is more than one entity in this repository that has the specified value, one of them is returned.

Parameters:
propertyName - the name of the property
value - the property value
Returns:

list

List<T> list(Specification<T> spec)
Retrieves the objects contained in this repository that satisfied the given specification. The order of the object inside the list depends on the "order" property. If "first" and "last" properties have been set only a part of the entities will be retrieved.

Parameters:
spec - the specification that must be satisfied
Returns:
the objects contained in this repository that satisfied the given specification

fillCollection

void fillCollection(Collection<? super T>... toBeFilled)

fillCollection

void fillCollection(Filter criteria,
                    Collection<? super T>... toBeFilled)

setFirst

void setFirst(int first)
Set the index of the first object that will be retrieved by list() and list(Filter) when value 0 has been set for 'first' in the filter.

The value in the filter, if different than 0, will always superseed this value.

Parameters:
first - the index of the first object that will be retrieved by list() e list(Filter)

getFirst

int getFirst()
Retrieves the index of the first object that will be retrieved by list() e list(Filter).

Returns:
the index of the first object that will be retrieved by list() e list(Filter)

setLast

void setLast(int last)
Set the index of the last object that will be retrieved by list() e list(Filter) when value 0 has been set for 'first' in the filter.

The value in the filter, if different than 0, will always superseed this value.

If the repository contains less objects than the indicated index, all the objects will be retrieved.

Parameters:
last - the index of the last object that will be retrieved by list() and list(Specification)

getLast

int getLast()
Retrieves the index of the last object that will be retrieved by list() e list(Specification). This method will retrieve the same number that has been set using setLast(int) independently of the repository content size.

Returns:
the index of the last object that will be retrieved by list() and list(Filter)

setOrder

void setOrder(String property,
              boolean reverse)
Set the order for the lists retrieved using list() and list(Specification). If a previous order property was set it will be replaced.

Parameters:
property - the name of the property that will be used to order the lists
reverse - if this parameter is true the order will be ascendant, otherwise it will be descendant

addOrder

void addOrder(String property,
              boolean reverse)
Add an order property for the lists retrieved using list() and list(Specification). If a previous order property was set it will remain in place and the new property will be added to the list.

Parameters:
property - the name of the property that will be used to order the lists
reverse - if this parameter is true the order will be ascendant, otherwise it will be descendant

removeLastOrder

void removeLastOrder()
Remove the last added order property. If no order was set nothing will happen.


getOrderProperty

String getOrderProperty()
Retrieves the name of the property used for ordering the result of the list() and list(Specification) methods.

Returns:
the name of the property used for ordering

isReverseOrder

boolean isReverseOrder()
Returns true if the order of the result of the list() and list(Specification) methods is ascending, false otherwise.

Returns:

getDetailRepository

<J extends Serializable,E extends Entity<J>> Repository<J,E> getDetailRepository(Collection<E> details)


Copyright © 2011. All Rights Reserved.