Project Wonder 2.0

er.extensions
Class ERXEntityClassDescription.Factory

java.lang.Object
  extended byer.extensions.ERXEntityClassDescription.Factory
Enclosing class:
ERXEntityClassDescription

public static class ERXEntityClassDescription.Factory
extends Object

This factory inner class is registered as the observer for three notifications: modelWasAdded, classDescriptionNeededForEntity and classDescriptionNeededForClass. If you wish to provide your own subclass of ERXEntityClassDescription then you need to create a subclass of Factory and set that class name in the system properties under the key: er.extensions.ERXClassDescription.factoryClass In your Factory subclass override the method: newClassDescriptionForEntity to provide your own ERXEntityClassDescription subclass.


Constructor Summary
ERXEntityClassDescription.Factory()
          Public constructor
 
Method Summary
 void applicationDidFinishLaunching(NSNotification n)
          Method called by the WOApplication has finished launching.
 void checkForeignKeys(EOEntity eoentity)
          Checks for foreign keys that are NOT NULL, but whose relationship is marked as non-mandatory and vice-versa.
 void classDescriptionNeededForClass(NSNotification n)
          Method called by the NSNotificationCenter when a class description is needed for a given Class.
 void classDescriptionNeededForEntityName(NSNotification n)
          Method called by the NSNotificationCenter when a class description is needed for a given entity.
 void compilerProxyDidCompileClasses(NSNotification n)
          Method called by the NSNotificationCenter when an ERXCompilerProxy did reset.
protected  void handleMandatoryRelationshipError(EOEntity eoentity, EORelationship relationship, EOAttribute attribute)
          Handles errors when a mandatory relationship has a source attribute that is set to not allow null values.
protected  void handleOptionalRelationshipError(EOEntity eoentity, EORelationship relationship, EOAttribute attribute)
          Handles errors when an optional relationship has a source attribute that is set to allow null values.
 boolean isFixingRelationshipsEnabled()
           
 boolean isRapidTurnaroundEnabled()
           
 void modelWasAddedNotification(NSNotification n)
          Method called by the NSNotificationCenter when an EOModel is loaded.
 ERXEntityClassDescription newClassDescriptionForEntity(EOEntity entity)
          Factory method that is used to create a new class description for a given entity.
 void prepareEntityForRegistration(EOEntity eoentity)
          Allows for entities to be altered before they have a custom class description registered.
 void registerDescriptionForClass(Class class1)
          This method is called when a class description is needed for a particular class.
 void registerDescriptionForEntitiesInModel(EOModel model)
          This method registers custom class descriptions for all of the entities in a given model.
 void registerDescriptionForEntity(EOEntity entity)
          Registers a custom class description for the given entity using the method newClassDescriptionForEntity which can be overridden by subclasses to provide a different class description subclass.
 void reset()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ERXEntityClassDescription.Factory

public ERXEntityClassDescription.Factory()
Public constructor

Method Detail

reset

public void reset()

compilerProxyDidCompileClasses

public void compilerProxyDidCompileClasses(NSNotification n)
Method called by the NSNotificationCenter when an ERXCompilerProxy did reset.


isRapidTurnaroundEnabled

public boolean isRapidTurnaroundEnabled()

isFixingRelationshipsEnabled

public boolean isFixingRelationshipsEnabled()

applicationDidFinishLaunching

public void applicationDidFinishLaunching(NSNotification n)
Method called by the WOApplication has finished launching.


modelWasAddedNotification

public void modelWasAddedNotification(NSNotification n)
Method called by the NSNotificationCenter when an EOModel is loaded. This method just calls the method registerDescriptionForEntitiesInModel

Parameters:
n - notification that has the EOModel that was loaded.

classDescriptionNeededForEntityName

public void classDescriptionNeededForEntityName(NSNotification n)
Method called by the NSNotificationCenter when a class description is needed for a given entity. Usually this method isn't needed seeing as we preempt the on demand loading of class descriptions by loading all of them when the EOModel is loaded. This method just calls the method registerDescriptionForEntity

Parameters:
n - notification that has the name of the entity that needs the class description.

classDescriptionNeededForClass

public void classDescriptionNeededForClass(NSNotification n)
Method called by the NSNotificationCenter when a class description is needed for a given Class. Usually this method isn't needed seeing as we preempt the on demand loading of class descriptions by loading all of them when the EOModel is loaded. This method just calls the method registerDescriptionForClass

Parameters:
n - notification that has the Class object that needs a class description.

newClassDescriptionForEntity

public ERXEntityClassDescription newClassDescriptionForEntity(EOEntity entity)
Factory method that is used to create a new class description for a given entity. Sub classes that wish to provide a sub class of ERXEntityClassDescription should override this method to create that custom description. By default this method returns a new ERXEntityClassDescription.

Parameters:
entity - to create the class description for
Returns:
new class description for the given entity

prepareEntityForRegistration

public void prepareEntityForRegistration(EOEntity eoentity)
Allows for entities to be altered before they have a custom class description registered. Sub classes can override this method to provide any extra alterings before the description is registered. However be sure to call super as this method does convert the class name from EOGenericRecord to ERXGenericRecord, which unfortunately is required for custom validation to work at the moment.

Parameters:
eoentity - to be prepared for registration

handleOptionalRelationshipError

protected void handleOptionalRelationshipError(EOEntity eoentity,
                                               EORelationship relationship,
                                               EOAttribute attribute)
Handles errors when an optional relationship has a source attribute that is set to allow null values. Subclasses can override this to do more specific handling.


handleMandatoryRelationshipError

protected void handleMandatoryRelationshipError(EOEntity eoentity,
                                                EORelationship relationship,
                                                EOAttribute attribute)
Handles errors when a mandatory relationship has a source attribute that is set to not allow null values. Subclasses can override this to do more specific handling.


checkForeignKeys

public void checkForeignKeys(EOEntity eoentity)
Checks for foreign keys that are NOT NULL, but whose relationship is marked as non-mandatory and vice-versa. This error is not checked by EOModeler, so we do it here.

Parameters:
eoentity - to be check

registerDescriptionForEntitiesInModel

public void registerDescriptionForEntitiesInModel(EOModel model)
This method registers custom class descriptions for all of the entities in a given model. This method is called when a model is loaded. The reason for this method is to preempt the usual class description loading mechanism which has a race condition involved for the order in which the notifications are recieved.

Parameters:
model - that contains all of the entities to be registerd

registerDescriptionForEntity

public void registerDescriptionForEntity(EOEntity entity)
Registers a custom class description for the given entity using the method newClassDescriptionForEntity which can be overridden by subclasses to provide a different class description subclass.

Parameters:
entity - to register the class description for

registerDescriptionForClass

public void registerDescriptionForClass(Class class1)
This method is called when a class description is needed for a particular class. Here we use the previous cache that we constructed of class to entity map when the models were loaded. In this way we can register all of the custom class descriptions for a given class if need be.

Parameters:
class1 - class object to have a custom class description registered for.

Last updated: Do, Dez 9, 2004 • 12:46 PM CET

Copyright © 2002 – 2004 Project Wonder.