PATH  WebObjects 4.0 Documentation > EOAccess Reference



EOModel

Inherits From:
NSObject

Inherits From:
com.apple.yellow.eoaccess


Class Description

An EOModel represents a mapping between a database schema and a set of classes based on the entity-relationship model. The model contains a number of EOEntity objects representing the entities (tables) of the database schema. Each EOEntity object has a number of EOAttribute and EORelationship objects representing the properties (columns or fields) of the entity in the database schema. For more information on attributes and relationships, see their respective class specifications.

An EOModel maintains a mapping between each of its EOEntity objects and a corresponding enterprise object class for use with the database level of the Enterprise Objects Framework. You can determine the EOEntity for a particular enterprise object with the entityForObject method.

An EOModel is specific to a particular database server, and stores information needed to connect to that server. This includes the name of an adaptor framework to load so that the Enterprise Objects Framework can communicate with the database. Models are stored in the file system in a manner similar to adaptor framework. EOModel objects are usually loaded from model files built with the EOModeler application rather than built programmatically. If you need to programmatically load a model file, see the discussion in "Loading a Model File."

Models can have relationships that reference other models in the same model group. The other models may map to different databases and types of servers.

Models are organized into model groups; see the EOModelGroup class specification for more information.


Creating an EOModel Programmatically

The EOAdaptorChannel class declares methods for reading basic schema information from a relational database. You can use this information to build up an EOModel programmatically, and then enhance that model by defining extra relationships, flattening attributes, and so on. See the class description in the EOAdaptorChannel class specification for information on reading basic schema information, and see the other modeling classes' specifications for information on creating additional attributes and relationships.


Method Types

Constructors
EOModel
Saving a model
encodeTableOfContentsIntoPropertyList
writeToFile
Loading a model's objects
loadAllModelObjects
Working with entities
addEntity
removeEntity
removeEntityAndReferences
entityNames
entityNamed
entities
Naming a model's components
beautifyNames
Accessing the model's name
setName
name
path
Checking references
referencesToProperty
externalModelsReferenced
Getting an object's entity
entityForObject
Accessing the adaptor bundle
adaptorName
setAdaptorName
Accessing the connection dictionary
setConnectionDictionary
connectionDictionary
Accessing the user dictionary
setUserInfo
userInfo
Working with stored procedures
addStoredProcedure
removeStoredProcedure
storedProcedureNames
storedProcedureNamed
storedProcedures
Accessing the model's group
setModelGroup
modelGroup

Constructors


EOModel

public EOModel()

Creates a new EOModel object.

public EOModel(java.lang.String path)

Creates a new EOModel object by reading the contents of the file identified by path as a model archive. Sets the EOModel's name and path from the context of the model archive. Throws an exception if for any reason it cannot initialize the model from the file specified by path.

public EOModel(NSDictionary tableOfContents, java.lang.String path)

Creates a new EOModel object from tableOfContents, which is the property list representation of a EOModel). Sets the EOModel's name and path using path.

See also: name, path, encodeTableOfContentsIntoPropertyList


Instance Methods


adaptorName

public java.lang.String adaptorName()

Returns the name of the adaptor for the receiver. This name can be used with EOAdaptor's adaptorWithName static method to create an adaptor.


addEntity

public void addEntity(EOEntity anEntity)

Adds anEntity to the receiver. Throws an exception if an error occurs (for example, if anEntity doesn't exist, if the entity belongs to another model, or if an entity of the same name is already in the receiver).

See also: entities, removeEntity, removeEntityAndReferences


addStoredProcedure

public void addStoredProcedure(EOStoredProcedure storedProcedure)

Adds storedProcedure to the receiver. Throws an exception if an error occurs (for example, if a stored procedure of the same name is already in the receiver).

See also: removeStoredProcedure, storedProcedures, storedProcedureNamed


availablePrototypeAttributeNames

public NSArray availablePrototypeAttributeNames()

Returns a list of available prototype names.

See also: prototypeAttributeNamed


beautifyNames

public void beautifyNames()

See also: Makes all of the receiver's named components conform to a standard convention.nameForExternalName (EOEntity), beautifyName (EOEntity, EOAttribute, EORelationship, EOStoredProcedure), name


connectionDictionary

public NSDictionary connectionDictionary()

Returns a dictionary containing information used to connect to the database server. The connection dictionary is the place to specify default login information for applications using the model. See the EOAdaptor class specification for more information.


encodeTableOfContentsIntoPropertyList

public void encodeTableOfContentsIntoPropertyList(NSMutableDictionary propertyList)

Encodes the receiver into propertyList. This method is used to get an ASCII representation of an EOModel in property list format.

See also: "Constructors"


entities

public NSArray entities()

Returns an array containing the receiver's entities. Note that this method loads every entity, and thus defeats the benefits of incremental model loading.

See also: entityNames


entityForObject

public EOEntity entityForObject(java.lang.Object anEO)

Returns the entity associated with anEO, whether anEO is an instance of an enterprise object class, an instance of EOGenericRecord, or a fault object . Returns null if anEO has no associated entity.


entityNamed

public EOEntity entityNamed(java.lang.String name)

Returns the entity named name, or null if no such entity exists. Posts an EOEntityLoadedNotification when the entity is loaded.

See also: entityNames, entities


entityNames

public NSArray entityNames()

Returns an array containing the names of the EOModel's entities.

See also: entities, entityNamed


externalModelsReferenced

public NSArray externalModelsReferenced()

Returns an array containing those models that are referenced by this model.

See also: referencesToProperty


loadAllModelObjects

public void loadAllModelObjects()

Loads any of the receiver's entities, stored procedures, attributes, and relationships that have not yet been loaded.

See also: attributes (EOEntity), entities, relationships (EOEntity), storedProcedures


modelGroup

public EOModelGroup modelGroup()

Returns the model group of which the receiver is a part.

See also: setModelGroup


name

public java.lang.String name()

Returns the receiver's name.

See also: path, "Constructors"


path

public java.lang.String path()

Returns the name of the EOModel file used to create the receiver, or null if the model wasn't initialized from a file.

See also: name, "Constructors"


prototypeAttributeNamed

public EOAttribute prototypeAttributeNamed(java.lang.String attributeName)

Returns the prototype attribute for the given attributeName. prototypeAttributeNamed first looks for the prototype in EOadaptorNamePrototypes. If the prototype isn't found there, it then looks in EOPrototypes. If the search is still unsuccessful, this method finally looks for the prototype in the list of prototypes provided by the adaptor itself.

See also: availablePrototypeAttributeNames


referencesToProperty

public NSArray referencesToProperty(java.lang.Object aProperty)

Returns an array of all properties in the receiver that reference aProperty, whether derived attributes, relationships that reference aProperty, and so on. Returns null if aProperty isn't referenced by any of the properties in the model.

See also: externalModelsReferenced


removeEntity

public void removeEntity(EOEntity name)

Removes the entity with the given name without performing any referential integrity checking.

See also: addEntity, removeEntityAndReferences


removeEntityAndReferences

public void removeEntityAndReferences(EOEntity entity)

Removes entity and any attributes or relationships in other entities that reference entity.

See also: removeEntity, addEntity


removeStoredProcedure

public void removeStoredProcedure(EOStoredProcedure aStoredProcedure)

Removes aStoredProcedure without checking to see if an entity uses it.

See also: addStoredProcedure, storedProcedures


setAdaptorName

public void setAdaptorName(java.lang.String adaptorName)

Sets the name of the receiver's adaptor to adaptorName.

See also: availableAdaptorNames (EOAdaptor)


setConnectionDictionary

public void setConnectionDictionary(NSDictionary connectionDictionary)

Sets the dictionary containing information used to connect to the database to connectionDictionary. See the EOAdaptor class specification for more information on working with connection dictionaries.

See also: adaptorWithModel (EOAdaptor)


setModelGroup

public void setModelGroup(EOModelGroup aModelGroup)

Sets the model group of which the receiver should be a part.

Note: You shouldn't change an EOModel's model group after it has been bound to other models in its group.

See also: modelGroup


setName

public void setName(java.lang.String name)

Sets the name of the receiver to name.


setUserInfo

public void setUserInfo(NSDictionary dictionary)

Sets the dictionary of auxiliary data, which your application can use for whatever it needs. dictionary can only contain property list data types-that is, String, NSDictionary, NSArray, and NSData.


storedProcedureNamed

public EOStoredProcedure storedProcedureNamed(java.lang.String name)

Returns the stored procedure named name, or null if the model doesn't contain a stored procedure with the given name.

See also: storedProcedureNames, storedProcedures


storedProcedureNames

public NSArray storedProcedureNames()

Returns an array containing the names of all of the model's stored procedures.

See also: storedProcedureNamed, storedProcedures


storedProcedures

public NSArray storedProcedures()

Returns an array containing all of the model's stored procedures. Note that this method loads each of the model's stored procedures, thus defeating the benefits of incremental model loading.

See also: storedProcedureNames, storedProcedureNamed


userInfo

public NSDictionary userInfo()

Returns a dictionary of user data. You can use this to store any auxiliary information it needs.

See also: setUserInfo


writeToFile

public void writeToFile(java.lang.String path)

Saves the receiver in the directory specified by path. If the file specified by path already exists, a backup copy is first created (using path with a "~" character appended). As a side-effect, this method resets the current path.

writeToFile: throws an exception on any error which prevents the file from being written.

See also: path


Notifications

EOModel declares and posts the following notification.


EntityLoadedNotification

Posted after an EOEntity is loaded into memory. The notification contains:

Notification Object The entity that was loaded.
Userinfo None





Copyright © 1998, Apple Computer, Inc. All rights reserved.