WebObjects 5.2.3

Package com.webobjects.eocontrol

エンタープライズ・オブジェクトの生成・管理の基盤を提供します

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
 

Package com.webobjects.eocontrol Description

エンタープライズ・オブジェクトの生成・管理の基盤を提供します

Introduction

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

以下のセクションではより詳細に個々の責任範疇を説明します。

eoの変更をチェイスする

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を実装します。


EOObjectStoreのサブクラス

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.

Copyright © 2004 Apple Computer, Inc.