|
WebObjects 5.2.3 | ||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
EOClassDescription.ClassDelegate | EOClassDescription.ClassDelegateインターフェイスは、 EOClassDescriptionクラスがデリゲートを発行するためのメソッドを提供します |
EODeferredFaulting | EODeferredFaulting インターフェイスは、EOがdefferedされたフォールトを扱えるようにするメソッドを提供します。 |
EOEditingContext.Delegate | EOEditingContext.Delegate インターフェイスは、EOEditingContextクラスがデリゲートを発行するためのメソッドを提供します。 |
EOEditingContext.Editor | EOEditingContextオブジェクトの高次元なエディタとして振る舞うオブジェクトのインターフェイスです。 |
EOEditingContext.MessageHandler | このインターフェイスはフェッチ・リミットの判定とエラーレポートのために利用されます。 |
EOEnterpriseObject | EOEnterpriseObjectインターフェイスは、基本的なEOの挙動を定義し、すべてのEOが実現すべき操作をサポートするメソッドを定義します。 |
EOEventCenter.EventRecordingHandler | EOEventCenter.EventRecordingHandlerインターフェイスはsetLoggingEnabled methodを宣言します。これはロギングが可能になった時、または不可能になった時にevent-loggingシステムから呼び出されます。 |
EOFaulting | EOFaultingインターフェイスはEOFaultHandlerクラスと協調して、オブジェクトが本当に必要となるまでオブジェクトの初期化を延期するメカニズムを提供します。 |
EOKeyValueArchiver.Delegate | EOKeyValueArchiver.Delegateインターフェイスは、archiverオブジェクトの振舞いをコントロールするEOKeyValueArchiverクラスのdelegateオブジェクトによって利用されるメソッドを規定します。 |
EOKeyValueArchiving | EOKeyValueArchivingインターフェイスは、当該クラスインスタンスがEOKeyValueArchiverおよびEOKeyValueUnarchiverオブジェクトによってエンコードまたはデコードされるよう、そのクラスが実装すべきメソッドを宣言します。 |
EOKeyValueArchiving.Awaking | EOKeyValueArchiving.Awaking は、EOKeyValueArchivingオブジェクトがEOKeyValueUnarchiverによる逆アーカイブプロセスの終了時に明示的に呼び出される必要がある場合、EOKeyValueArchiving オブジェクトによって必要時に実装されるインターフェイスです。 |
EOKeyValueArchiving.FinishInitialization | EOKeyValueArchiving.FinishInitialization は、EOKeyValueArchivingオブジェクトがEOKeyValueUnarchiverによる逆アーカイブプロセスの終了時に特殊な初期化が必要な場合、EOKeyValueArchiving オブジェクトによって必要時に実装されるインターフェイスです。 |
EOKeyValueCoding | EOKeyValueCodingは基礎的なNSKeyValueCodingおよびNSKeyValueCoding.ErrorHandlingインターフェイスの機能拡張を規定します。 |
EOKeyValueCodingAdditions | EOKeyValueCodingAdditionsは、NSKeyValueCoding, NSKeyValueCoding.ErrorHandling, NSKeyValueCodingAdditions およびEOKeyValueCoding の機能を拡張し、さらにプロパティグループを扱う時に便利な二つのメソッド -- takeValuesFromDictionary, valuesForKeysを追加します。 |
EOKeyValueUnarchiver.Delegate | EOKeyValueUnarchiver.Delegateインターフェイスは、unarchiverオブジェクトの振舞いをコントロールするEOKeyValueUnarchiverのdelegateオブジェクトによって利用されるメソッドを規定します。 |
EOObserving | EOControl配下の変更をトレースするメカニズムのひとつであるEOObservingインターフェイスは、objectWillChangeメソッドを宣言します。このメソッドはオブジェクトの変更通知を受けとるオブザーバによって利用されます。 |
EOQualifier.Comparison | EOQualifierComparisonインターフェイスは、比較のためのメソッドを規定します。 |
EOQualifierEvaluation | EOQualifierEvaluationインターフェイスは、メモリ上でqualifierの評価を実行するevaluateWithObjectメソッドを規定します。 |
EOQualifierVisitor | EOQualifierVisitorインターフェイスは内部的にのみ利用されます。 |
EORelationshipManipulation | EORelationshipManipulationインターフェイスは、to-many relationshipプロパティを扱うインターフェイスであるEOKeyValueCodingの基礎的機能を提供します。 |
EOSortOrdering.Comparison | EOSortOrdering.Comparisonインターフェイスは、値の比較のためのメソッドを提供します。 |
EOValidation | EOValidationインターフェイスは、NSValidationインターフェイス(key-valueに基づくvalidationメソッドを定義する)の機能拡張を提供します。 |
Class Summary | |
EOAccountEvent | EOAccountEventは内部的にのみ利用されます。 |
EOAggregateEvent | EOAggregateEventクラスのインスタンスは、同じ集約属性をひとつのイベントに集約するよう、複数のEOEventオブジェクトの集約として利用されます。 |
EOArrayDataSource | EOArrayDataSourceはEODataSourceの具象サブクラスです。データベースからのフェッチなしに、eoをdisplay group(EOInterfaceからEODisplayGroup またはWebObjectsからWODisplayGroup )へ提供します。 |
EOClassDescription | EOClassDescriptionは、eoのやりとりに便利なメタデータを付加することで、クラスを拡張するメカニズムを提供します。 |
EOCooperatingObjectStore | EOCooperatingObjectStoreはコントロールレイヤーのオブジェクト・ストレージを抽象化する役割の一部を担います。 |
EOCustomObject | EOCustomObjectクラスは、EOEnterpriseObjectインターフェイスのデフォルト実装を提供します。 |
EODataSource | EODataSourceはeoを提供するための基礎的なAPIを定義する抽象クラスです。 |
EODelayedObserver | EODelayedObserverクラスは、EOControlの変更をチェイスするメカニズムの一部を担います。 |
EODelayedObserverQueue | EODelayedObserverQueueクラスは、EOControlの変更をチェイスするメカニズムの一部を担います。 |
EODetailDataSource | EODetailDataSourceは、master-detailコンフィグレーションを利用するデータソースを定義します。detailデータソースの操作はmasterオブジェクトのプロパティによって直接制御されます。 |
EOEditingContext | EOEditingContextオブジェクトは、エンタープライズオブジェクトのグラフを管理します。オブジェクトグラフはひとつまたはそれ以上の外部ストア(多くの場合データベース)との整合性を保証しつつ内部データを管理します。 |
EOEditingContext.EditingContextEvent | EOEditingContextによるイベントの追跡を提供するサブクラスです。 |
EOEvent | EOEventは、ログされるべきイベントに関する情報をストアする機能を持つ具象クラスのための抽象クラスです。 |
EOEventCenter | EOEventCenterはすべてのアプリケーションで、オペレーションの応答時間を計測するために、EOEventの収集および管理を行います。 |
EOFaultHandler | EOFaultHandlerはフォールトの生成および実行をアシストするメカニズムを定義する抽象クラスです。 |
EOFetchSpecification | EOFetchSpecificationはレコードやeoに対するselectやorderの発行に必要な情報を収集します。この操作はデータベースなどの外部ソース、EOEditingContextなどの内部ストアいずれに対しても同様に扱われます。 |
EOGenericRecord | EOGenericRecordは一般的なエンタープライズオブジェクトクラスであり、カスタマイズを必要としない場合に使われます。 |
EOGlobalID | EOGlobalIDはコンパクトでユニバーサルな、持続的オブジェクトのためのアイデンティファイアです。 |
EOKeyComparisonQualifier | EOKeyComparisonQualifierはEOQualifierのサブクラスであり、名前づけされたオブジェクトのプロパティと、それとは別の名前づけされた値とを比較するのに使われます。 |
EOKeyGlobalID | EOKeyGlobalIDはEOGlobalID のサブクラスです。EOGlobalIDのインスタンス、エンティティ、一意化されたオブジェクトに対するprimary keyの値などは、EOModelの情報に基づくIDによって表現されます。 |
EOKeyValueArchiver | EOKeyValueArchiver オブジェクトは、key-valueメカニズムを使ってオブジェクトグラフを"プロパティリスト"にアーカイブするのに利用されます。 |
EOKeyValueArchiving.Support | EOKeyValueArchiving.SupportはあるクラスのEOKeyValueArchivingの振舞いを別のクラスに提供するメカニズムを定義する抽象クラスです。 |
EOKeyValueCoding.DefaultImplementation | EOKeyValueCoding.DefaultImplementationクラスはEOKeyValueCoding インターフェイスにおけるWebObjectsのデフォルト実装を提供します。 |
EOKeyValueCoding.Utility | EOKeyValueCoding.Utilityクラスは、EOKeyValueCodingオブジェクトと同様に、非EOKeyValueCodingオブジェクトのプロパティに、コードを変更することなくアクセス可能にするユーティリティです。 |
EOKeyValueCodingAdditions.DefaultImplementation | EOKeyValueCodingAdditions.DefaultImplementationクラスは、EOKeyValueCodingAdditionsインターフェイスのWebObjectsにおけるデフォルト実装を提供します。 |
EOKeyValueCodingAdditions.Utility | EOKeyValueCodingAdditions.Utilityクラスは、EOKeyValueCodingAdditionsオブジェクトと同様に、非EOKeyValueCodingAdditionsオブジェクトのプロパティに、コードを変更することなくアクセス可能にするユーティリティです。 |
EOKeyValueQualifier | EOKeyValueQualifierは、EOQualifierのサブクラスであり、ある値を持つオブジェクトと名前付けされたプロパティを比較します。例"salary > 1500" |
EOKeyValueUnarchiver | EOKeyValueUnarchiverオブジェクトは、EOKeyValueArchiverよってプロパティリストにアーカイブされたオブジェクトグラフを生成(再生成)します。 |
EONotQualifier | EONotQualifierはひとつのクオリファイアを持つWOQualifierクラスのサブクラスです。 |
EOObjectStore | EOObjectStoreは、インテリジェントなオブジェクトのリポジトリ、すなわちコントロールレイヤのオブジェクトストレージの抽象化のためのAPIを提供する抽象クラスです。 |
EOObjectStoreCoordinator | EOObjectStoreCoordinatorは、ひとつまたはそれ以上のEOCooperatingObjectStoreを扱うにあたって、単一のオブジェクトストアに抽象化する機能を提供します。 |
EOObserverCenter | EOObserverCenterは、EOControlにおける変更をチェイスするメカニズムにおける中心的存在です。 |
EOObserverProxy | EOObserverProxyは、EOControlにおける変更をチェイスするメカニズムの一部を担います。 |
EOOrQualifier | EOOrQualifierは複数のクオリファイアを持つ、EOQualifierのサブクラスです。 |
EOQualifier | EOQualifierは特定の意図に基づき、厳格にオブジェクトまたはデータベースの行を特定するための情報を保持しているオブジェクトを管理する抽象クラスです。 |
EOQualifier.ComparisonSupport | Java Client におけるEOQualifier.ComparisonSupportクラスは、EOQualifierComparisonインターフェイスのデフォルト実装を定義します。 |
EOQualifierVariable | EOQualifierVariableは、クオリファイアの中のプレイスホルダーとして提供されるオブジェクトを定義します。 |
EOSharedEditingContext | EOSharedEditingContextクラスは、EOEditingContextが読み出し専用のeoとして共有可能にするメカニズムを提供します。 |
EOSortOrdering | EOSortOrdering オブジェクトは、プロパティの値を比較するためのプロパティキーとメソッドセレクタを使って、オブジェクトグループがストアされるべき方法を特定します。 |
EOSortOrdering.ComparisonSupport | EOSortOrdering.ComparisonSupportは、EOSortOrdering.Comparisonインターフェイスのデフォルト実装および、サポートオブジェクトのレジストリを提供します。 |
EOTemporaryGlobalID | EOTemporaryGlobalIDオブジェクトは、新たに生成されたeoが外部ストアにセーブされる前に一意化する機能を提供します。 |
Exception Summary |
エンタープライズ・オブジェクトの生成・管理の基盤を提供します
EOControlフレームワークはエンタープライズ・テクノロジーのひとつのレイヤ--コントロールレイヤ--を定義します。コントロールレイヤはアプリケーションのユーザーインターフェイスやストレージメカニズムからは完全に独立したエンタープライズオブジェクトのためのインフラを提供します。コントロールレイヤは以下のように、エンタープライズオブジェクト、アクセスレイヤ、そしてインタフェイスとの間のインタラクションを管理します。
コントロールレイヤのおもな責任範疇とキーとなるクラスは以下の表を参照のこと。
Responsibility | Classes |
"Tracking Enterprise Objects Changes" | EOObserverCenter EODelayedObserverQueue EODelayedObserver EOObserverProxy EOObserving (interface) |
"Object Storage Abstraction" | EOObjectStore EOCooperatingObjectStore EOObjectStoreCoordinator EOGlobalID EOKeyGlobalID EOTemporaryGlobalID |
Query specification | EOFetchSpecification EOQualifier EOSortOrdering |
Interaction with enterprise objects | EOEnterpriseObject (basic enterprise object behavior) EOClassDescription (validation support) EOGenericRecord EOCustomObject |
Simple source of objects (for display groups) | EODataSource EODetailDataSource |
以下のセクションではより詳細に個々の責任範疇を説明します。
EOControlは4つのクラスとひとつのインターフェイスで構成され、エンタープライズオブジェクトの変更のチェイスやその変更をオブザーバに通知する、といった独自のメカニズムを持っています。EOControlはオブザーバやオブザーバが監視しているオブジェクトを記録し、それらに変更があると変更通知を発行します。オブザーバはobjectWillChangeというひとつのメソッドをもつEOObservingインターフェイスを実装します。監視可能なオブジェクト(通常はeo)は、objectWillChangeメッセージを受け取るべきすべてのオブザーバに自分のステータスをアラートする前に、willChangeメソッドを発行します。
他の3つのクラスは基礎的なオブサーブのメカニズムを提供します。EODelayedObserverQueueは、オブザーバーへの変更通知を発行する順番を決定するという優先順位づけを行うことにより、基本的かつ同期的な変更通知のメカニズムを管理します。EODelayedObserverは他のオブジェクト(EOInterfaceレイヤにおけるEOAssociationクラスのようば)を監視するオブジェクトにとっての抽象スーパークラスです。最後に、EOObserverProxyはEODelayedObserver のサブクラスです。EOObserverProxyは、EODelayedObserverクラスを継承しないオブジェクトがこのメカニズムの恩恵を受けられるように、変更通知をターゲットのオブジェクトにフォワードします。
エンタープライズオブジェクトテクノロジーにおける主なオブザーバーはEOEditingContextです。EOEditingContextは変更、登録、またはNSUndoManagerによるundoといったオブジェクトのスナップショットを記録する、objectWillChangeメソッドを実装し、必要であればEOObjectStoreにあるオブジェクトをアップデートする必要がある変更部分を記録します。これらのアクション--オブジェクトの最新の状態を調べるといった--のいくつかは、オブジェクトの変更があった後に実行されるべきなので、EOEditingContextは、実行ループの最後にそれを受け取れるように、自分自身に遅延されたメッセージをセットアップします。変更がなされた後にオブジェクトの状態を調べる必要のあるオブザーバーのみが、EODelayedObserver ,EODelayedObserverQueueのクラス定義にしたがって、この遅延メカニズムを利用することができます。
コントロールレイヤは、アプリケーションが利用するストレージ(主にデータベース)から独立した存在として機能するインフラを提供します。それは、外部データかあるはメモリ上のオブジェクトかに関わらず、オブジェクトの”インテリジェントなリポジトリ”として機能するためのAPIを提供します。EOObjectStoreは基本的なAPIを定義する抽象クラスであり、eoの生成や登録、フォールト、そしてEOEditingContextの変更をコミットするなどの機能を提供するフレームワークの構成要素です。EOObjectStoreのサブクラスは、特定のストレージメカニズムを扱うという必要からこのAPIを実装します。
EOEditingContextはEOObjectStoreの最重要のサブクラスであり、メモリ上のオブジェクトを管理します。外部のデータストア向けにはいくつかのサブクラス群が存在します。
EOCooperatingObjectStoreは、複数の異なるデータソース(別々のデータベースなど)を協調して扱うような場合に利用されます。アクセスレイヤにおけるEODatabaseContextはこのクラスのサブクラスです。協調して動くストアグループはEOObjectStore, EOObjectStoreCoordinatorなどの、また別のサブクラスが管理します。
もしEOObjectStoreのサブクラスを定義するのであれば、おそらくひとつの外部データのリポジトリがあるでしょう。それはEOObjectStoreCoordinatorがうまく動作するように、--必要とされていないかも知れませんが--EOCooperatingObjectStoreを継承すべきです。
EODatabaseContextは、データベースから、すなわちエンタープライズオブジェクトのアクセスレイヤにおいてオブジェクトを供給します。
このクラスは、コントロールレイヤとアクセスレイヤのインタラクションを定義します。データベースコンテキストまたは、他の外部ストアベースのオブジェクトは、データベースコネクションを節約するために、しばしば異なるエディティングコンテキストの間で共有されます。
オブジェクトストアはオブジェクトを次の二つの方法で識別します。
グローバルIDは次の三つのクラスで定義されます:EOGlobalID, EOKeyGlobalID, and EOTemporaryGlobalID。EOGlobalIDはエンタープライズオブジェクト・テクノロジーの一意化を管理する抽象クラスです。EOKeyGlobalIDはEOGlobalIDの具象サブクラスで、そのインスタンスは、アクセスレイヤにおけるEOModelの情報--エンティティおよび一意化されたプライマリーキーの値を表すオブジェクト--に基づいて、永続的なIDを表現します。EOTemporaryGlobalID オブジェクトは、外部ストアにセーブされる以前の、新たに生成されたeoの識別のために利用されます。より詳しい情報はEOGlobalIDのセクションを参照してください。
外部のリポジトリにおいて、オブジェクトストアは空のeoを生成するかわりに、オブジェクトデータの遅延フェッチを行う場合があります(これをフォールトといいます)。フォールトがアクセスされると(メッセージが送られると)、オブジェクトストアにフェッチおよびフォールトにデータを埋め込むように命令が送られます。この動作はリファレンスを使ったオブジェクトであれ、グローバルIDであれ、利用されることがないデータまでフェッチしてしまうという無駄を省くことができます。フォールトは主にリレーション先にあるフェッチされるオブジェクトに対して生成されます。詳しくはEOFaultHandlerのセクションを参照してください。
|
Last updated Thu Oct 21 15:04:16 PDT 2004. | ||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |