public class AshwoodEntitySorter extends Object implements EntitySorter
Modifier and Type | Field and Description |
---|---|
protected Map<DbEntity,org.apache.cayenne.ashwood.AshwoodEntitySorter.ComponentRecord> |
components |
protected Comparator<DbEntity> |
dbEntityComparator |
protected EntityResolver |
entityResolver |
protected Comparator<ObjEntity> |
objEntityComparator |
protected Map<DbEntity,List<DbRelationship>> |
reflexiveDbEntities |
Constructor and Description |
---|
AshwoodEntitySorter() |
Modifier and Type | Method and Description |
---|---|
protected <E> Digraph<E,Boolean> |
buildDigraph(ObjEntity objEntity,
List<E> objects,
Function<E,Persistent> converter) |
protected void |
doIndexSorter()
Reindexes internal sorter without synchronization.
|
protected Persistent |
findReflexiveMaster(Persistent object,
ObjRelationship toOneRel,
String targetEntityName) |
Comparator<DbEntity> |
getDbEntityComparator() |
protected Comparator<DbEntity> |
getDbEntityComparator(boolean dependantFirst) |
Comparator<ObjEntity> |
getObjEntityComparator() |
protected Comparator<ObjEntity> |
getObjEntityComparator(boolean dependantFirst) |
protected String[] |
getReflexiveRelationshipsNames(ObjEntity objEntity) |
protected void |
indexSorter()
Reindexes internal sorter in a thread-safe manner.
|
boolean |
isReflexive(DbEntity metadata) |
void |
setEntityResolver(EntityResolver entityResolver)
Sets EntityResolver for this sorter.
|
void |
sortDbEntities(List<DbEntity> dbEntities,
boolean deleteOrder)
Sorts a list of DbEntities.
|
void |
sortObjectsForEntity(ObjEntity objEntity,
List<?> objects,
boolean deleteOrder)
Sorts a list of objects belonging to the ObjEntity.
|
protected <E> void |
sortObjectsForEntity(ObjEntity objEntity,
List<E> objects,
boolean deleteOrder,
Function<E,Persistent> converter) |
void |
sortObjEntities(List<ObjEntity> objEntities,
boolean deleteOrder)
Sorts a list of ObjEntities.
|
protected <E> boolean |
topologicalSort(List<E> data,
Digraph<E,Boolean> graph,
boolean reverse) |
protected EntityResolver entityResolver
protected Map<DbEntity,org.apache.cayenne.ashwood.AshwoodEntitySorter.ComponentRecord> components
protected Map<DbEntity,List<DbRelationship>> reflexiveDbEntities
protected Comparator<DbEntity> dbEntityComparator
protected Comparator<ObjEntity> objEntityComparator
protected void indexSorter()
protected void doIndexSorter()
public void setEntityResolver(EntityResolver entityResolver)
EntitySorter
setEntityResolver
in interface EntitySorter
public void sortDbEntities(List<DbEntity> dbEntities, boolean deleteOrder)
EntitySorter
sortDbEntities
in interface EntitySorter
public void sortObjEntities(List<ObjEntity> objEntities, boolean deleteOrder)
EntitySorter
sortObjEntities
in interface EntitySorter
public void sortObjectsForEntity(ObjEntity objEntity, List<?> objects, boolean deleteOrder)
EntitySorter
sortObjectsForEntity
in interface EntitySorter
protected <E> void sortObjectsForEntity(ObjEntity objEntity, List<E> objects, boolean deleteOrder, Function<E,Persistent> converter)
protected <E> Digraph<E,Boolean> buildDigraph(ObjEntity objEntity, List<E> objects, Function<E,Persistent> converter)
protected <E> boolean topologicalSort(List<E> data, Digraph<E,Boolean> graph, boolean reverse)
protected String[] getReflexiveRelationshipsNames(ObjEntity objEntity)
protected Persistent findReflexiveMaster(Persistent object, ObjRelationship toOneRel, String targetEntityName)
public Comparator<DbEntity> getDbEntityComparator()
getDbEntityComparator
in interface EntitySorter
DbEntity
public Comparator<ObjEntity> getObjEntityComparator()
getObjEntityComparator
in interface EntitySorter
ObjEntity
protected Comparator<DbEntity> getDbEntityComparator(boolean dependantFirst)
protected Comparator<ObjEntity> getObjEntityComparator(boolean dependantFirst)
public boolean isReflexive(DbEntity metadata)
isReflexive
in interface EntitySorter
metadata
- to checkCopyright © 2001–2021 Apache Cayenne. All rights reserved.