java.lang.Object
org.objectstyle.cayenne.access.util.DefaultSorter
- All Implemented Interfaces:
- DependencySorter
- public class DefaultSorter
- extends java.lang.Object
- implements DependencySorter
DefaultSorter is a default implementation of DependencySorter based on
ASHWOOD library. Presently it works for acyclic database schemas with
possible multi-reflexive tables. The class uses topological sorting from
ASHWOOD.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
queryEngine
protected org.objectstyle.cayenne.access.QueryEngine queryEngine
dbEntityToTableMap
protected java.util.Map dbEntityToTableMap
referentialDigraph
protected org.objectstyle.ashwood.graph.Digraph referentialDigraph
contractedReferentialDigraph
protected org.objectstyle.ashwood.graph.Digraph contractedReferentialDigraph
components
protected java.util.Map components
reflexiveDbEntities
protected java.util.Map reflexiveDbEntities
tableComparator
protected DefaultSorter.TableComparator tableComparator
dbEntityComparator
protected DefaultSorter.DbEntityComparator dbEntityComparator
objEntityComparator
protected DefaultSorter.ObjEntityComparator objEntityComparator
dirty
protected boolean dirty
DefaultSorter
public DefaultSorter(org.objectstyle.cayenne.access.QueryEngine queryEngine)
indexSorter
public void indexSorter(org.objectstyle.cayenne.access.QueryEngine queryEngine)
- Marks this instance as "dirty", so that it will be indexed lazily on
the next invocation.
- Specified by:
indexSorter in interface DependencySorter
_indexSorter
protected void _indexSorter()
- Reindexes internal sorter.
sortDbEntities
public void sortDbEntities(java.util.List dbEntities,
boolean deleteOrder)
- Description copied from interface:
DependencySorter
- Sorts a list of DbEntities.
- Specified by:
sortDbEntities in interface DependencySorter
sortObjEntities
public void sortObjEntities(java.util.List objEntities,
boolean deleteOrder)
- Description copied from interface:
DependencySorter
- Sorts a list of ObjEntities.
- Specified by:
sortObjEntities in interface DependencySorter
sortObjectsForEntity
public void sortObjectsForEntity(org.objectstyle.cayenne.map.ObjEntity objEntity,
java.util.List objects,
boolean deleteOrder)
- Description copied from interface:
DependencySorter
- Sorts a list of objects belonging to the ObjEntity.
- Specified by:
sortObjectsForEntity in interface DependencySorter
fillInMetadata
protected void fillInMetadata(org.objectstyle.ashwood.dbutil.Table table,
org.objectstyle.cayenne.map.DbEntity entity)
findReflexiveMaster
protected org.objectstyle.cayenne.DataObject findReflexiveMaster(org.objectstyle.cayenne.DataObject obj,
org.objectstyle.cayenne.map.ObjRelationship toOneRel,
java.lang.Class targetClass)
getDbEntityComparator
protected java.util.Comparator getDbEntityComparator(boolean dependantFirst)
getObjEntityComparator
protected java.util.Comparator getObjEntityComparator(boolean dependantFirst)
getTable
protected org.objectstyle.ashwood.dbutil.Table getTable(org.objectstyle.cayenne.map.DbEntity dbEntity)
getTable
protected org.objectstyle.ashwood.dbutil.Table getTable(org.objectstyle.cayenne.map.ObjEntity objEntity)
isReflexive
protected boolean isReflexive(org.objectstyle.cayenne.map.DbEntity metadata)