Package org.apache.cayenne.ashwood
Class AshwoodEntitySorter
java.lang.Object
org.apache.cayenne.ashwood.AshwoodEntitySorter
- All Implemented Interfaces:
- EntitySorter
- Direct Known Subclasses:
- WeightedAshwoodEntitySorter
Implements dependency sorting algorithms for ObjEntities, DbEntities and
 Persistent objects. Presently it works for acyclic database schemas with possible
 multi-reflexive tables.
- Since:
- 3.1
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected Comparator<DbEntity>protected EntityResolverprotected Comparator<ObjEntity>protected Map<DbEntity,List<DbRelationship>> 
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionbuildDigraph(ObjEntity objEntity, List<E> objects, Function<E, Persistent> converter) protected voidReindexes internal sorter without synchronization.protected PersistentfindReflexiveMaster(Persistent object, ObjRelationship toOneRel, String targetEntityName) protected Comparator<DbEntity>getDbEntityComparator(boolean dependantFirst) protected Comparator<ObjEntity>getObjEntityComparator(boolean dependantFirst) protected String[]getReflexiveRelationshipsNames(ObjEntity objEntity) protected voidReindexes internal sorter in a thread-safe manner.booleanisReflexive(DbEntity metadata) voidsetEntityResolver(EntityResolver entityResolver) Sets EntityResolver for this sorter.voidsortDbEntities(List<DbEntity> dbEntities, boolean deleteOrder) Sorts a list of DbEntities.voidsortObjectsForEntity(ObjEntity objEntity, List<?> objects, boolean deleteOrder) Sorts a list of objects belonging to the ObjEntity.protected <E> voidsortObjectsForEntity(ObjEntity objEntity, List<E> objects, boolean deleteOrder, Function<E, Persistent> converter) voidsortObjEntities(List<ObjEntity> objEntities, boolean deleteOrder) Sorts a list of ObjEntities.protected <E> booleantopologicalSort(List<E> data, Digraph<E, Boolean> graph, boolean reverse) 
- 
Field Details- 
entityResolver
- 
components
- 
reflexiveDbEntities
- 
dbEntityComparator
- 
objEntityComparator
 
- 
- 
Constructor Details- 
AshwoodEntitySorterpublic AshwoodEntitySorter()
 
- 
- 
Method Details- 
indexSorterprotected void indexSorter()Reindexes internal sorter in a thread-safe manner.
- 
doIndexSorterprotected void doIndexSorter()Reindexes internal sorter without synchronization.
- 
setEntityResolverDescription copied from interface:EntitySorterSets EntityResolver for this sorter. All entities present in the resolver will be used to determine sort ordering.- Specified by:
- setEntityResolverin interface- EntitySorter
- Since:
- 3.1
 
- 
sortDbEntitiesDescription copied from interface:EntitySorterSorts a list of DbEntities.- Specified by:
- sortDbEntitiesin interface- EntitySorter
 
- 
sortObjEntitiesDescription copied from interface:EntitySorterSorts a list of ObjEntities.- Specified by:
- sortObjEntitiesin interface- EntitySorter
 
- 
sortObjectsForEntityDescription copied from interface:EntitySorterSorts a list of objects belonging to the ObjEntity.- Specified by:
- sortObjectsForEntityin interface- EntitySorter
 
- 
sortObjectsForEntityprotected <E> void sortObjectsForEntity(ObjEntity objEntity, List<E> objects, boolean deleteOrder, Function<E, Persistent> converter) 
- 
buildDigraph
- 
topologicalSort
- 
getReflexiveRelationshipsNames
- 
findReflexiveMasterprotected Persistent findReflexiveMaster(Persistent object, ObjRelationship toOneRel, String targetEntityName) 
- 
getDbEntityComparator- Specified by:
- getDbEntityComparatorin interface- EntitySorter
- Returns:
- comparator for DbEntity
 
- 
getObjEntityComparator- Specified by:
- getObjEntityComparatorin interface- EntitySorter
- Returns:
- comparator for ObjEntity
 
- 
getDbEntityComparator
- 
getObjEntityComparator
- 
isReflexive- Specified by:
- isReflexivein interface- EntitySorter
- Parameters:
- metadata- to check
- Returns:
- is entity has reflexive relationships
 
 
-