PATH
Documentation > WebObjects 4.5 >
EOAccess Reference
The
EOAccess Framework
Framework:
/System/Library/Frameworks/EOAccess.framework
Header File Directories:
/System/Library/Frameworks/EOAccess.framework/Headers
Introduction
The EOAccess framework is one of a group of frameworks known
collectively as the Enterprise Objects Framework. The classes and protocols that
make up the EOAccess framework allow your applications to interact
with database servers at a high level of abstraction. These classes
make up what is known as the access layer. The access layer is divided
into two main parts:
- The database level, which
allows applications to treat records as full-fledged enterprise
objects.
- The adaptor level, which provides server-independent
database access.
Working with the access layer allows you to have a finer level
of control over database operations.
EOAccess Framework Class Hierarchy
The EOAccess class hierarchy is rooted in the Foundation Framework's
NSObject class. The remainder of the EOAccess Framework consists
of several related groups of classes, a few miscellaneous classes, and
a number of protocols.
The Adaptor Level
The adaptor level deals with database rows packaged as dictionaries.
The adaptor level is primarily made up of the following classes:
- EOAdaptor is an abstract class that provides
concrete subclasses with a structure for connecting to a database.
- EOAdaptorChannel is an abstract class that provides its concrete
subclasses with a structure for performing database operations.
- EOAdaptorContext is an abstract class that defines transaction
handling in Enterprise Objects Framework applications.
- EOAdaptorOperation is a class that represents a primitive
operation in a database server and all the necessary information
required by the operation.
- EOLoginPanel is an abstract class that defines how users provide
database login information.
- EOSQLExpression is an abstract superclass that defines how
to build SQL statements for adaptor channels.
The Database Level
The database level is where enterprise objects are created
from the dictionaries retrieved by the adaptor level. It's also
where snapshotting is performed. The database level is primarily
made up of the following classes:
- EODatabase is a class that represents a single
database server.
- EODatabaseChannel is a class that represents an independent
communication channel to the database server.
- EODatabaseContext is subclass of EOObjectStore for accessing
relational databases, creating and saving objects based on EOEntity
definitions in an EOModel.
- EODatabaseOperation is a class that represents an operation-insert,
update, or delete-to perform on an enterprise object and all the
necessary information required to perform the operation.
The Modeling Classes
A model defines, in entity-relationship terms, the mapping
between enterprise object classes and a database. The following
are the principal modeling classes in the EOAccess framework:
- EOAttribute is a class that represents a column,
field or property in a database, and associates an internal name
with an external name or expression by which the property is known
to the database.
- EOEntity is a class that describes a table in a database and
associates a name internal to the Framework with an external name
by which the table is known to the database.
- EOJoin is a class that describes one source-destination attribute
pair for an EORelationship.
- EOModel is a class that represents a mapping between a database
schema and a set of classes based on the entity-relationship model.
- EOModelGroup is a class that represents an aggregation of
related models.
- EORelationship is a class that describes an association between
two entities, based on attributes of those two entities.
- EOStoredProcedure is a class that represents a stored procedure
defined in a database, and associates a name internal to EOF with
an external name known to the database.
Faulting
These classes implement or are used to implement object faulting:
- EOAccessArrayFaultHandler is a subclass of EOAccessGenericFaultHandler
that implements a fault for an array of enterprise objects.
- EOAccessFaultHandler is a subclass of EOAccessGenericFaultHandler
that implements an object fault for enterprise objects.
- EOAccessGenericFaultHandler is an abstract class that helps
an EOAccessFault to fire by fetching data using an EODatabaseContext.
Additions to Other Frameworks
The EOAccess framework adds methods to a number of classes
in different frameworks:
- EOGenericRecord Additions adds one method to
the control layer's class, for returning a generic record's
associated EOEntity.
- EOObjectStoreCoordinator Additions adds two methods to the
EOControl class for accessing the coordinator's EOModelGroup.
- EOQualifier Additions adds one method to the class, for "rerooting"
a qualifier to another entity.
- NSString Additions adds two methods to the class, to convert
modeling object names to database schema names, and database schema
names to modeling object names.
Extensions of EOControl Classes
The EOAccess framework also has a number of other useful classes,
including:
- EODatabaseDataSource is a concrete subclass of
EODataSource that fetches objects based on an EOModel, using an
EODatabaseContext that services the data source's EOEditingContext.
- EOEntityClassDescription is a subclass of the control layer's
EOClassDescription and extends the behavior of enterprise objects
by deriving information about them from an associated EOModel.
- EOSQLQualifier is a subclass of EOQualifier that contains
unstructured text that can be transformed into an SQL expression.
Delegates
A number of EOAccess classes delegate behavior. The delegate
methods are defined in these protocols:
- An EOAdaptorChannel delegate receives messages
for nearly every operation that would affect data in the database
server, and it can preempt, modify, or track these operations.
- A EOAdaptorContext delegate receives messages for any transaction
begin, commit, or rollback, and it can preempt, modify, or track
these operations.
- An EOAdaptor delegate implements a method that can perform
a database-specific transformations on a value.
- An EODatabaseContext delegate can intervene when objects are
created and when they're fetched from the database.
- An EOModelGroup class delegate implements a method that returns
the default model group.
- An EOModelGroup delegate influences how the model group finds
and loads models.
Miscellaneous Classes and Protocols
- EOCustomClassArchiving is an informal protocol
that defines methods that can write any object that conforms to
NSCoding to the database as binary data, as generated by NSArchiver.
- EOEditingContext Additions
- EOPropertyListEncoding declares methods that read and write
objects to property lists.
- EOQualifierSQLGeneration declares two methods that are adopted
by qualifier classes to qualify fetches from a database.