PATH
Documentation > WebObjects 4.5 >
EOAdaptor Reference
Inherits
from: NSObject
Package: com.apple.yellow.eoaccess
Class Description
An EOModelGroup represents an aggregation of related models
(see the EOModel class
specification for more information on models). When a model in the
group needs to resolve a relationship to an entity in another model,
it looks for that model in its group. Model groups allow applications
to load entities and their properties only as they're needed,
by distributing them among separate EOModels.
The default model group contains all models
for an application, as well as any frameworks the application references.
It is automatically created on demand. The entity name space among
all of these models is global; consequently, the same entity name
shouldn't appear in any two of the models. All cross-model information
is represented in the models by entity name only. Binding the entity
name to an actual entity is done at run-time within the EOModelGroup.
In the majority of applications, the automatic creation of
the default model group is sufficient. However, your code can override
this automatic creation; see "Setting Up A Model Group Programmatically" .
Accessing Models Within a Model Group
Each model lives within a group and can form connections to
other models in its group. A model can find a related model using
the statement:
this.modelGroup().modelNamed(name);
A data source can locate a model using the statement:
EOModelGroup.defaultGroup().modelNamed(name);
EOModeler puts models with identical names in separate groups
to allow you to load two models with the same name at the same time.
EOModelGroup Delegates
Your EOModelGroup object should have a delegate which can
influence how it finds and loads models. In addition to the delegates
you assign to EOModelGroup instances, the EOModelGroup class itself
can have a delegate. The class delegate implements a single method- defaultModelGroup-while
the instance delegate can implement the methods defined in the EOModelGroup.Delegate interface.
For more information on EOModelGroup class delegate and instance
delegate methods, see the EOModelGroup.ClassDelegate and EOModelGroup.Delegate interface specifications,
respectively. Note that the following delegate methods are set on
EOModelGroup, rather than EOEntity, to provide a single point in
the code where you can alter the database-to-objects mapping:
Constants
EOModelGroup defines String constants for the names of the
notifications it posts. For more information on these notifications,
see "Notifications" .
Method Types
- Accessing models
- addModelWithPath
- modelNamed
- modelNames
- models
- modelWithPath
- removeModel
- Accessing model groups
- defaultGroup
- setDefaultGroup
- globalModelGroup
- modelGroupForObjectStoreCoordinator
- setModelGroup
- Searching a group
- entityNamed
- entityForObject
- entitiesWithSharedObjects
- fetchSpecificationNamed
- storedProcedureNamed
- Loading all of a group's
objects
- loadAllModelObjects
- Assigning a delegate
- classDelegate
- delegate
- setClassDelegate
- setClassDelegate
Static Methods
public static Object classDelegate()
Returns the EOModelGroup's class delegate.
This delegate optionally implements the defaultModelGroup method
(see the EOModelGroup.ClassDelegate interface specification
for more information).See Also: setClassDelegate
public static EOModelGroup defaultGroup()
Returns the default EOModelGroup. Unless you've
either specified a default model group with setDefaultGroup or
implemented the defaultModelGroup class
delegate method to return a non-null
value,
this method is equivalent to globalModelGroup.See
Also: classDelegate
public static EOModelGroup globalModelGroup()
Returns an EOModelGroup composed of all models
in the resource directory of the main bundle, as well as those in
all the bundles and frameworks loaded into the application.See
Also: defaultGroup
public static EOModelGroup modelGroupForObjectStoreCoordinator(com.apple.yellow.eocontrol.EOObjectStoreCoordinator anObjectStoreCoordinator)
Returns the EOModelGroup used by anObjectStoreCoordinator. See
Also: setModelGroup
public static void setClassDelegate(Object anObject)
Assigns anObject as
the EOModelGroup's class delegate. The class delegate is optional;
it allows you to determine the default model group (see the EOModelGroup.ClassDelegate interface specification
for more information).See Also: classDelegate, defaultModelGroup
public static void setDefaultGroup(EOModelGroup group)
Sets the default model group to group.
If you've implemented the defaultModelGroup class
delegate method to return a non-null
value,
the delegate's return value overrides group as
the default model group.See Also: defaultGroup, setClassDelegate
public static void setModelGroup(
EOModelGroup group,
com.apple.yellow.eocontrol.EOObjectStoreCoordinator anObjectStoreCoordinator)
Assigns group to anObjectStoreCoordinator.
By default, an EOObjectStoreCoordinator uses the defaultGroup. You
might want to assign a different group to an EOObjectStoreCoordinator
if you need to scope models to particular coordinators-if different
models have the same name, or if different entities in different
models have the same name.See Also: modelGroupForObjectStoreCoordinator
Instance Methods
public void addModel(EOModel model)
Adds a model to
the receiver, sets the model's
model group to the receiver, and posts ModelAddedNotification. Throws an exception
if the receiver already contains an EOModel with the same name as
the specified model.
public EOModel addModelWithPath(String path)
Creates an EOModel object with the contents
of the file identified by path, and
adds the newly created model to the receiver. Adds the new model
to the receiver. Throws an exception if for any reason it cannot
create the model from the file specified by path.
public Object delegate()
Returns the receiver's delegate, which is
different from the EOModelGroup's class delegate. Each EOModelGroup
object can have it's own delegate in addition to the delegate
that's assigned to the EOModelGroup class. See the EOModelGroup.Delegate interface specification
for more information.See Also: setClassDelegate, classDelegate
public NSArray entitiesWithSharedObjects()
Returns an array of entities that have objects
to load into a shared editing context.
public EOEntity entityForObject(Object object)
Returns the EOEntity associated with object from
any of the models in the receiver that handle object, or null if
none of the entities in the receiver handles object.See
Also: entityForObject (EOModel)
public EOEntity entityNamed(String entityName)
Searches each of the EOModels in the receiver
for the entity specified by entityName,
and returns the entity if found. Returns null if it is unable to
find the specified entity.See Also: entityNamed (EOModel)
public com.apple.yellow.eocontrol.EOFetchSpecification fetchSpecificationNamed(
String fetchSpecName,
String entityName)
Returns the named fetch specification from the
entity specified by entityName in
the receiving model group.
public void loadAllModelObjects()
Sends loadAllModelObjects to
each of the receiver's EOModels, thereby loading any EOEntities, EOAttributes,
EORelationships, and EOStoredProcedures that haven't yet been
loaded from each of the EOModels in the receiver.See
Also: loadAllModelObjects (EOModel)
public EOModel modelNamed(String modelName)
Returns the EOModel named modelName if
it's part of the receiver, or null if the receiver doesn't contain an
EOModel with the specified name.
public NSArray modelNames()
Returns an array containing the names of all
of the EOModels in the receiver, or an empty array if the receiver
contains no EOModels. The order of the model names in the array
isn't defined.
public NSArray models()
Returns an array containing the receiver's
EOModels, or an empty array if the receiver contains no EOModels.
The order of the models in the array isn't defined.
public EOModel modelWithPath(String path)
If the receiver contains an EOModel whose path
(as determined by sending path to
the EOModel object) is equal to path,
that EOModel is returned. Otherwise, returns null. String's equals method
is used to compare the paths, and each path is standardized before
comparison.See Also: path (EOModel)
public void removeModel(EOModel aModel)
Removes aModel from
the receiver, and unbinds any connections to aModel from
other EOModels in the receiver. Posts ModelInvalidatedNotification to the
default notification center after removing aModel from
the receiver.See Also: EOModelGroup, models
public void setDelegate(Object anObject)
Sets the receiver's delegate to anObject.
See the EOModelGroup.Delegate interface specification
for more information.See Also: delegate
public EOStoredProcedure storedProcedureNamed(String aName)
Returns the stored procedure in the receiving
model group having the given name.
Notifications
EOModelGroup declares and posts the following notifications.
ModelAddedNotification
Posted by an EOModelGroup when an EOModel
is added to the group. This notification is sent, for instance,
inside Interface Builder when the user has saved changes to a model
in EOModeler and the objects in Interface Builder must be brought
back in sync. The old model is flushed and receivers of the notification
(like data sources) can invoke modelNamed to re-fetch their models.
Notification Object |
The newly added model. |
Userinfo |
None |
ModelInvalidatedNotification
Posted by an EOModelGroup when an EOModel
is removed from the group. This notification is sent, for instance,
inside Interface Builder when the user has saved changes to a model
in EOModeler and the objects in Interface Builder must be brought
back in sync. The old model is flushed and receivers of the notification
(like data sources) can invoke modelNamed to re-fetch their models.
Notification Object |
The invalidated model. |
Userinfo |
None |