ERXEntityOrder Class Reference

Inherited by ERXEntityFKConstraintOrder.

Collaboration diagram for ERXEntityOrder:

Collaboration graph
[legend]

List of all members.

Classes

class  EntityDeleteOrderComparator
class  EntityInsertOrderComparator

Public Member Functions

NSArray allEntities ()
void createListOfEntities (EOModelGroup modelGroup)
 ERXEntityOrder ()
 ERXEntityOrder (EOModelGroup modelGroup)
NSMutableDictionary groupedEntities ()

Protected Member Functions

abstract NSDictionary dependenciesByEntity ()
String dependencyKeyFor (EOEntity entity)
NSSet dependentEntities (NSDictionary dependencies, EOEntity entity)
void generateOrdering ()
boolean hasDependenciesForEntity (NSDictionary dependencies, EOEntity entity)

Protected Attributes

NSArray allEntities = null
NSMutableDictionary groupedEntities = new NSMutableDictionary()

Static Private Attributes

static Logger logger = Logger.getLogger(ERXEntityOrder.class)


Detailed Description

Abstract class defining an ordering of EOEntities that also provides NSComparators to sort entities based on this ordering. The ordering is based on groups of entities with entities within each group having no defined order.

This is implemented by creating a dictionary of entity name to group. Group 1 is entities with no dependencies. Group 2 is entities with dependencies on entities in group 1. Group 3 is entities with dependencies on entities in groups 1 and 2. etc. The dependencies between entities are determined by the abstract NSDictionary dependenciesByEntity().

Author:
chill

Constructor & Destructor Documentation

ERXEntityOrder ( EOModelGroup  modelGroup  ) 

Designated constructor for implementing classes.

Parameters:
modelGroup EOModelGroup to get list of all entities from

ERXEntityOrder (  ) 

Convenience constructor for implementing classes. Uses EOModelGroup.defaultGroup().


Member Function Documentation

NSArray allEntities (  ) 

Returns:
list of all entities in all models in the model group

void createListOfEntities ( EOModelGroup  modelGroup  ) 

Creates list of all entities (ecluding prototype entities) in all models in modelGroup.

Parameters:
modelGroup EOModelGroup to get list of all entities from

abstract NSDictionary dependenciesByEntity (  )  [protected, pure virtual]

Processes allEntities() and returns a dictionary keyed on dependencyKeyFor(EOEntity). The keys are usually entity.name() but are not required to be. The value associated with each key is an NSSet of the entity names that have a dependency on the key. This dictionary is used to determine the dependency ordering.

Returns:
a dictionary keyed on dependencyKeyFor(EOEntity)

Implemented in ERXEntityFKConstraintOrder.

String dependencyKeyFor ( EOEntity  entity  )  [protected]

This implementation returns entity.name().

Parameters:
entity EOEntity to return key into dependency dictionary for
Returns:
key for entity into dependency dictionary returned by dependenciesByEntity()

Reimplemented in ERXEntityFKConstraintOrder.

NSSet dependentEntities ( NSDictionary  dependencies,
EOEntity  entity 
) [protected]

Parameters:
dependencies result from dependenciesByEntity()
entity EOEntity to return dependencies set for
Returns:
set of names of entities that are dependent on entity

void generateOrdering (  )  [protected]

Calls dependenciesByEntity() to determine dependencies and processes entities in allEntities() to generate the groupedEntities() dictionary.

Returns dictionary of group numbers (java.lang.Integer) to entity names. Group 1 is entities with no dependencies. Group 2 is entities with dependencies on entities in group 1. Group 3 is entities with dependencies on entities in groups 1 and 2. etc

Returns:
dictionary of group numbers to entity names

boolean hasDependenciesForEntity ( NSDictionary  dependencies,
EOEntity  entity 
) [protected]

Parameters:
dependencies dictionary from dependenciesByEntity()
entity entity to check for dependencies
Returns:
true if groupedEntities() has all the entities named in dependentEntities(dependencies, entity).


Member Data Documentation

NSArray allEntities = null [protected]

Logger logger = Logger.getLogger(ERXEntityOrder.class) [static, private]

Reimplemented in ERXEntityFKConstraintOrder.


The documentation for this class was generated from the following file:

Generated on Sat May 26 06:43:09 2012 for Project Wonder by  doxygen 1.5.8