WebObjects 5.2.3

com.webobjects.eocontrol
Class EOEditingContext

java.lang.Object
  extended bycom.webobjects.eocontrol.EOObjectStore
      extended bycom.webobjects.eocontrol.EOEditingContext
All Implemented Interfaces:
EOKeyValueArchiving, EOObserving, NSDisposable, NSLocking, Serializable
Direct Known Subclasses:
EOSharedEditingContext

public class EOEditingContext
extends EOObjectStore
implements EOObserving, NSLocking, EOKeyValueArchiving, Serializable

EOEditingContextはアプリケーション内のエンタープライズオブジェクトのグラフを管理します。 オブジェクトグラフは、外部ストア(主にデータベース)のデータに一意性を持たせることができます。

主な役割


一般的に使われるメソッド


objectsWithFetchSpecification 外部ストア(データベース)からオブジェクトをフェッチする。
insertObject 変更の保存時、親オブジェクトストアに新しいオブジェクトを登録する。
deleteObject 変更の保存時、親オブジェクトストアからオブジェクトを削除する。
saveChanges 変更を親オブジェクトストアに保存する。
faultForGlobalID グローバルIDに対応するオブジェクトがあれば返す。 なければオブジェクトを生成し、フォールトの状態にして返す。
globalIDForObject オブジェクトのグローバルIDを返す
revert 保存していない変更をすべて破棄し、編集コンテキストを保存前の状態に戻す。

EOEditingContextオブジェクトは「オブジェクトの空間」あるいは記録のような役割を果たします。 中でも特に重要な役割がオブジェクトグラフの管理です。 オブジェクトグラフとは、外部ストア(主にデータベース)のデータに一意性を持たせたオブジェクトの集合です。

外部ストアからフェッチされたオブジェクトはすべて、グローバルID(外部ストアのオブジェクトに対するID)と関連づけられて編集コンテキストに登録されます。 編集コンテキストの役割は(EOObservingインターフェースに沿って)オブジェクトの変更を監視し、変更の取り消しを可能にするようにスナップショットを記録することです。 オブジェクトは1つの編集コンテキストに1つしか存在せず、重複することはありません。 ただし、他の編集コンテキストならばそのオブジェクトのコピーを保持できます。 このように、オブジェクトの有効範囲は特定の編集コンテキストに限られます。

その他の情報については以下を参照してください。

See Also:
insertObject(com.webobjects.eocontrol.EOEnterpriseObject), deleteObject(com.webobjects.eocontrol.EOEnterpriseObject), objectsWithFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext), saveChanges(), faultForGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), globalIDForObject(com.webobjects.eocontrol.EOEnterpriseObject), revert(), EOEnterpriseObject, EOObjectStore, EOObjectStoreCoordinator, EOCooperatingObjectStore, EOObserving, Serialized Form

Nested Class Summary
static interface EOEditingContext.Delegate
          The EOEditingContext.Delegate interface defines methods that an EOEditingContext can invoke in its delegate.
static class EOEditingContext.EditingContextEvent
          A subclass provided to track events triggered by EOEditingContexts.
static interface EOEditingContext.Editor
          An interface for objects that act as higher-level editors of the objects an EOEditingContext contains.
static interface EOEditingContext.MessageHandler
          This interface is used for error reporting and determining fetch limits.
 
Nested classes inherited from class com.webobjects.eocontrol.EOKeyValueArchiving
EOKeyValueArchiving.Awaking, EOKeyValueArchiving.FinishInitialization, EOKeyValueArchiving.Support
 
Field Summary
static String EditingContextDidSaveChangesNotification
           この通知は、変更が保存された後、編集コンテキストの親オブジェクトストアにポストされます。
static int EditingContextFlushChangesRunLoopOrdering
          Messages with lower order numbers are processed before messages with higher order numbers.
static String ObjectsChangedInEditingContextNotification
           この通知は編集コンテキストのオブジェクトグラフが変更されたときにポストされます。
 
Fields inherited from class com.webobjects.eocontrol.EOObjectStore
DeletedKey, InsertedKey, InvalidatedAllObjectsInStoreNotification, InvalidatedKey, ObjectsChangedInStoreNotification, UpdatedKey
 
Fields inherited from interface com.webobjects.foundation.NSLocking
OneCentury, OneDay, OneHour, OneMinute, OneSecond, OneWeek, OneYear
 
Constructor Summary
EOEditingContext()
           デフォルト親オブジェクトストアを使ってEOEditingContextオブジェクトを生成します。
EOEditingContext(EOObjectStore parent)
           指定した親オブジェクトストア parent を使ってEOEditingContextオブジェクトを生成します。 デフォルト共有編集コンテキストとオブジェクトを共有します。
 
Method Summary
 void addEditor(Object editor)
           EOEditingContext.Editorsを実装したエディタ editor を追加します。
 NSArray arrayFaultWithSourceGlobalID(EOGlobalID gid, String name, EOEditingContext context)
          OEOObjectStoreの同名メソッドをオーバーライドしています。
 NSDictionary committedSnapshotForObject(EOEnterpriseObject object)
           object に対応するコミット済みのスナップショットを辞書で返します(スナップショットの各値は、データベースに最後にコミットされた値です)。
 NSDictionary currentEventSnapshotForObject(EOEnterpriseObject object)
           object に対応する、現在のイベントループ開始時のスナップショットを辞書で返します。
static Object decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver unarchiver)
           
static long defaultFetchTimestampLag()
           
static EOObjectStore defaultParentObjectStore()
           新しい編集コンテキストを生成するためのデフォルト親オブジェクトストアを返します。.
 Object delegate()
           
 NSArray deletedObjects()
           
 void deleteObject(EOEnterpriseObject object)
           親オブジェクトストアにある object を変更の保存時に削除します。
 void dispose()
           オブジェクトが自分自身を破棄するときに実行されます。
 void editingContextDidForgetObjectWithGlobalID(EOEditingContext context, EOGlobalID gid)
           編集コンテキストが保持していたオブジェクトを破棄できるようになったことを、オブジェクトストアに通知します。
 NSArray editors()
           エディタの配列を返します。
 boolean editorsHaveChanges()
           
static void encodeObjectWithCoder(EOEnterpriseObject object, NSCoder coder)
           coderを使って object をエンコードするためにobject から実行されます。
 void encodeWithKeyValueArchiver(EOKeyValueArchiver archiver)
          Deprecated. Use Java Serialization instead.
 EOEnterpriseObject faultForGlobalID(EOGlobalID gid, EOEditingContext context)
           EOObjectStoreの同名メソッドをオーバーライドしています。
 EOEnterpriseObject faultForRawRow(NSDictionary row, String entityName)
           row からフォールトを生成して返します。
 EOEnterpriseObject faultForRawRow(NSDictionary row, String entityName, EOEditingContext context)
           親オブジェクトストアの同名メソッドの引数に context を与えて実行し、row からフォールトを生成して返します。
 long fetchTimestamp()
           フェッチ時刻は期限切れのデータを再度フェッチするための目安です。
protected  void finalize()
           
 void forgetObject(EOEnterpriseObject object)
           object を管理リストから削除し、編集コンテキストをオブジェクトの監視者から外します。
 EOGlobalID globalIDForObject(EOEnterpriseObject object)
           object が編集コンテキストか共有編集コンテキストに登録されていれば、対応するグローバルIDを返します。
 boolean hasChanges()
           
 void initializeObject(EOEnterpriseObject object, EOGlobalID gid, EOEditingContext context)
           EOObjectsStoreの同名メソッドをオーバーライドしています。 gid に対応するオブジェクトの属性値を生成します。
static Object initObjectWithCoder(EOEnterpriseObject object, NSCoder coder)
           decoder を使って object を初期化するために、 object から実行されます。
 NSArray insertedObjects()
           
 void insertObject(EOEnterpriseObject object)
           objectを親オブジェクトストアへの挿入待ちとして登録します(内部では insertObjectWithGlobalID が呼ばれます)。 登録したオブジェクトは変更の保存時に処理されます。
 void insertObjectWithGlobalID(EOEnterpriseObject object, EOGlobalID gid)
           オブジェクトをグローバルID globalID と関連づけて、親オブジェクトストアへの挿入待ちとして登録します。 登録したオブジェクトは変更の保存時に処理されます。
static boolean instancesRetainRegisteredObjects()
           
 void invalidateAllObjects()
           EOObjectsStoreの同名メソッドをオーバーライドしています。 メモリ中にキャッシュされているオブジェクトをすべて破棄して再度フォールトに戻します。 フォールトに戻すことによって、次にオブジェクトにアクセスしたときに外部ストアから再フェッチされることになります。
 void invalidateObjectsWithGlobalIDs(NSArray gids)
           EOObjectsStoreの同名メソッドをオーバーライドしています。 gid に対応するオブジェクトを破棄し、フォールトに戻すよう親オブジェクトストアに知らせます。
 boolean invalidatesObjectsWhenFinalized()
           このメソッドを使うべきではありません。
 Object invokeRemoteMethod(EOEditingContext context, EOGlobalID gid, String methodName, Class[] argumentTypes, Object[] arguments)
           サーバ上でリモートメソッドを実行します。
 boolean isObjectLockedWithGlobalID(EOGlobalID gid, EOEditingContext context)
           contextgid に対応するオブジェクトがロックされていれば true を、そうでなければ false を返します。
 void lock()
           編集コンテキストを他のスレッドから使われないようにロックします。
 void lockObject(EOEnterpriseObject object)
           外部ストア中の object のロックを試みます。
 void lockObjectStore()
           
 void lockObjectWithGlobalID(EOGlobalID gid, EOEditingContext context)
           EOObjectsStoreの同名メソッドをオーバーライドしています。 外部ストア中にある gid に対応するオブジェクトをロックしようと試みます。
 boolean locksObjectsBeforeFirstModification()
           オブジェクトが初めて変更されたとき、編集コンテキストが lockObject を実行してオブジェクトをロックするならば true を返します。
 Object messageHandler()
           メッセージハンドラを返します。
 EOEnterpriseObject objectForGlobalID(EOGlobalID gid)
           gid に対応するオブジェクトが編集コンテキストか共有編集コンテキストに登録されていれば、そのオブジェクトを返します。 対応するオブジェクトがなければ null を返します。
 NSArray objectsForSourceGlobalID(EOGlobalID gid, String name, EOEditingContext context)
           EOObjectsStoreの同名メソッドをオーバーライドしています。 指定した1対多のリレーションシップ先 name のフォールトを返します。
 NSArray objectsWithFetchSpecification(EOFetchSpecification fetchSpec)
           次のコードと同じ意味になります。 objectsWithFetchSpecification(fetchSpecification, this)
 NSArray objectsWithFetchSpecification(EOFetchSpecification fetchSpec, EOEditingContext context)
           EOObjectsStoreの同名メソッドをオーバーライドしています。 fetchSpec に従って外部ストアからオブジェクトをフェッチし、配列にして返します。
 void objectWillChange(Object object)
           このメソッドは編集コンテキストに登録されているオブジェクトが willChange を実行したときに自動的に 実行されます。
 EOObjectStore parentObjectStore()
           
 void processRecentChanges()
           挿入待ち、削除待ち、更新待ちのオブジェクトを処理します。
 boolean propagatesDeletesAtEndOfEvent()
           オブジェクトを削除待ちにしたとき、リレーションシップ先のオブジェクトも削除待ちにするなら true を返します。 変更の保存時に削除待ちにするなら false を返します。
protected  Object readResolve()
           
 void recordObject(EOEnterpriseObject object, EOGlobalID gid)
           親オブジェクトストアが保持している gid とオブジェクトを編集コンテキストに登録します。
 void redo()
           各エディタの editingContextWillSaveChanges を実行し、アンドゥマネージャにオブジェクトグラフを最後にアンドゥした状態に戻すよう要求します( redo を実行します)。
 void refaultAllObjects()
           編集コンテキストに登録されている、挿入待ち、削除待ち、更新待ちではないオブジェクトを再度フォールトに戻します。
 void refaultObject(EOEnterpriseObject object)
           
 void refaultObject(EOEnterpriseObject object, EOGlobalID gid, EOEditingContext ctx)
          O EOObjectStoreの同名メソッドをオーバーライドしています。 ctx に登録されている、 gid に対応するオブジェクト object を再度フォールトに戻します。
 void refaultObjects()
          Deprecated. Use refaultAllObjects instead.
 void refetch()
          Deprecated. Use refaultAllObjects instead.
 void refreshAllObjects()
           オブジェクトグラフの各オブジェクトに対して refreshObject を実行します。
 void refreshObject(EOEnterpriseObject eo)
           挿入待ち、更新待ち、削除待ちではないオブジェクトに対して refaultObject を実行します。
 NSArray registeredObjects()
           
 void removeEditor(Object editor)
           editor の登録を取り消します。
 void reset()
           すべてのオブジェクトの登録を取り消し、使用不可にします。
 boolean retainsRegisteredObjects()
           
 void revert()
           各エディタの editingContextWillSaveChanges を実行します。 アンドゥ履歴をすべて削除し、未保存の挿入待ち、削除待ち、更新待ちのオブジェクトを破棄します。
 EOObjectStore rootObjectStore()
           オブジェクトストアの階層のルートとなるオブジェクトストアを返します。 通常EOObjectStoreCoordinatorがルートになります。
 void saveChanges()
          Sends editingContextWillSaveChanges messages to this EOEditingContext's editors, and commits changes made to its parent EOObjectStore by sending it the message saveChangesInEditingContext If the parent is an EOObjectStoreCoordinator, it guides its EOCooperatingObjectStores, typically EODatabaseContexts, through a multi-pass save operation If a database error occurs, a RuntimeException is thrown.
 void saveChanges(Object sender)
          Deprecated. Use saveChanges() instead.
 void saveChangesInEditingContext(EOEditingContext context)
          Overrides the implementation inherited from EOObjectStore to tell this EOEditingContext's EOObjectStore to accept changes from a child EOEditingContext.
static void setDefaultFetchTimestampLag(long lag)
          Sets the default timestamp lag for newly instantiated editing contexts to lag.
static void setDefaultParentObjectStore(EOObjectStore store)
          Sets the default parent EOObjectStore to store.
 void setDelegate(Object delegate)
          Set this EOEditingContext's delegate to be delegate.
 void setFetchTimestamp(long timestamp)
          Sets the receiver's fetch timestamp.
static void setInstancesRetainRegisteredObjects(boolean flag)
           
 void setInvalidatesObjectsWhenFinalized(boolean yn)
          This method should not be used.
 void setLocksObjectsBeforeFirstModification(boolean yn)
          Sets according to yn whether this EOEditingContext locks object in the external store (with lockObject) the first time object is modified.
 void setMessageHandler(Object handler)
          Set this EOEditingContext's message handler to be handler.
 void setPropagatesDeletesAtEndOfEvent(boolean propagatesDeletesAtEndOfEvent)
          Sets according to propagatesDeletesAtEndOfEvent whether this EOEditingContext propagates deletes at the end of the event in which a change was made, or only just before saving changes.
 void setRetainsRegisteredObjects(boolean flag)
           
 void setSharedEditingContext(EOSharedEditingContext sharedEC)
          Sets this EOEditingContext shared editing context.
 void setStopsValidationAfterFirstError(boolean yn)
          Sets according to yn whether this EOEditingContext stops validating after the first error is encountered, or continues for all objects (validation typically occurs during a save operation).
static void setSubstitutionEditingContext(EOEditingContext ec)
          Assigns ec as the global replacement EOEditingContext to substitute for one in the process of being de-serialized.
 void setUndoManager(NSUndoManager undoManager)
          Sets the receiver's NSUndoManager to undoManager.
static void setUsesContextRelativeEncoding(boolean flag)
          Sets according to flag whether Serialization or use context relative encoding.
 EOSharedEditingContext sharedEditingContext()
           
 boolean stopsValidationAfterFirstError()
           
static EOEditingContext substitutionEditingContext()
          Returns the global substitution EOEditingContext if you have been specified.
 boolean tryLock()
           
 Throwable tryToSaveChanges()
          Deprecated. Use saveChanges() instead.
 void undo()
          Sends editingContextWillSaveChanges messages to this EOEditingContext's editors, and sends an undo message to its NSUndoManager, asking it to reverse the latest uncommitted changes applied to objects in the object graph.
 NSUndoManager undoManager()
           
 void unlock()
          Unlocks access to this EOEditingContext so that other threads may access it.
 void unlockObjectStore()
           
 NSArray updatedObjects()
          Returns an array of objects in this EOEditingContext's object graph that have been updated.
static boolean usesContextRelativeEncoding()
          Returns true to indicate whether Serialization and use context relative encoding, false otherwise.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EditingContextDidSaveChangesNotification

public static final String EditingContextDidSaveChangesNotification
この通知は、編集コンテキストの親オブジェクトストアに変更が保存された後にポストされます。 この通知は通知オブジェクト、編集コンテキスト、次の内容の辞書を含みます。
Key Value
EOObjectStore.UpdatedKey 更新されたオブジェクトの配列
EOObjectStore.InsertedKey 挿入されたオブジェクトの配列
EOObjectStore.DeletedKey 削除されたオブジェクトの配列


EditingContextFlushChangesRunLoopOrdering

public static final int EditingContextFlushChangesRunLoopOrdering
Messages with lower order numbers are processed before messages with higher order numbers. In an application built with the Application Kit, the constant order value schedules the editing context to perform its processing before the undo stack group is closed or window display is updated.

EOEditingContext also defines String constants for the names of the notifications it posts.

See Also:
EditingContextDidSaveChangesNotification, ObjectsChangedInEditingContextNotification, Constant Field Values

ObjectsChangedInEditingContextNotification

public static final String ObjectsChangedInEditingContextNotification
この通知は編集コンテキストのオブジェクトグラフが変更されたときにポストされます。 ObjectsChangedInStoreNotificationと似ていますが、グローバルIDではなくオブジェクトを含む点が異なります。 この通知は通知オブジェクト、編集コンテキスト、次の内容の辞書を含みます。
Key Value
EOObjectStore.UpdatedKey 更新されたオブジェクトの配列
EOObjectStore.DeletedKey 削除されたオブジェクトの配列
EOObjectStore.InsertedKey 挿入されたオブジェクトの配列
EOObjectStore.InvalidatedKey 無効にされたオブジェクトの配列

インターフェースレイヤーのEODisplayGroup関連クラス(WODisplayGroupではありません)ではオブジェクトを再表示するのにこの通知を利用します。

Constructor Detail

EOEditingContext

public EOEditingContext(EOObjectStore parent)
指定した親オブジェクトストアを使ってEOEditingContextオブジェクトを生成します。 デフォルト共有編集コンテキストとオブジェクトを共有します。

Parameters:
parent - 親として設定するオブジェクトストア
See Also:
parentObjectStore(), defaultParentObjectStore(), setSharedEditingContext(com.webobjects.eocontrol.EOSharedEditingContext), EOObjectStore

EOEditingContext

public EOEditingContext()
デフォルト親オブジェクトストアを使ってEOEditingContextオブジェクトを生成します。 デフォルト共有編集コンテキストとオブジェクトを共有します。

See Also:
parentObjectStore(), defaultParentObjectStore(), setSharedEditingContext(com.webobjects.eocontrol.EOSharedEditingContext), EOObjectStore
Method Detail

addEditor

public void addEditor(Object editor)
EOEditingContext.Editorsを実装したエディタを追加します。

Parameters:
editor - the editor to be added to the editors set
See Also:
editors(), removeEditor(java.lang.Object), EOEditingContext.Editor

arrayFaultWithSourceGlobalID

public NSArray arrayFaultWithSourceGlobalID(EOGlobalID gid,
                                            String name,
                                            EOEditingContext context)
EOObjectStoreの同名メソッドをオーバーライドしています。 グローバルIDに対応するオブジェクトが編集コンテキストに登録済みであれば、そのオブジェクトと1対多の関係にあるオブジェクトの配列を返します。 そうでなければオブジェクトストアの階層をたどってこのメソッドを実行させ、最終的にはEODatabaseContextが同名メソッドを実行します。 EODatabaseContextは1対多のフォールトを生成して返します。

編集コンテキストをネストしている状況で親編集コンテキストのこのメソッドが実行されると、グローバルIDに対応するオブジェクトが挿入待ちとして親に登録されていれば、そのオブジェクトのリレーションシップ先のオブジェクトの配列を返します。 この配列に含まれるオブジェクトは同時に子編集コンテキストにも登録されます。

Specified by:
arrayFaultWithSourceGlobalID in class EOObjectStore
Parameters:
gid - リレーションシップ元のオブジェクトに対応するグローバルID
name - リレーションシップ名
context - フォールトを登録する編集コンテキスト
Returns:
グローバルIDに対応するオブジェクトと1対多の関係にあるオブジェクトの配列を返します。
See Also:
faultForGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), EOObjectStore.arrayFaultWithSourceGlobalID(com.webobjects.eocontrol.EOGlobalID, java.lang.String, com.webobjects.eocontrol.EOEditingContext)

committedSnapshotForObject

public NSDictionary committedSnapshotForObject(EOEnterpriseObject object)
オブジェクトに対応するコミット済みのスナップショットを辞書で返します。 スナップショットの各値は、データベースに最後にコミットされた値です。 このスナップショットは変更を加える前のオブジェクトの状態を表すことになります。  オブジェクトの変更を保存すると、スナップショットも更新されます。

Parameters:
object - スナップショットを取得するためのオブジェクト
Returns:
オブジェクトに対応するスナップショットの辞書を返します。
See Also:
currentEventSnapshotForObject(com.webobjects.eocontrol.EOEnterpriseObject)

currentEventSnapshotForObject

public NSDictionary currentEventSnapshotForObject(EOEnterpriseObject object)
オブジェクトに対応する、現在のイベントループ開始時のスナップショットを辞書で返します。 現在のイベントが終了すると(processRecentChangesが実行されると)、スナップショットは変更のあるオブジェクトに合わせて更新されます。
Parameters:
object - スナップショットを取得するためのオブジェクト
Returns:
オブジェクトに対応するスナップショットの辞書を返します。
See Also:
committedSnapshotForObject(com.webobjects.eocontrol.EOEnterpriseObject), processRecentChanges()

decodeWithKeyValueUnarchiver

public static Object decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver unarchiver)
(記述なし)
 

defaultFetchTimestampLag

public static long defaultFetchTimestampLag()
Returns:
デフォルトフェッチ有効時間をミリ秒単位で返します。
See Also:
setDefaultFetchTimestampLag(long)

defaultParentObjectStore

public static EOObjectStore defaultParentObjectStore()
新しい編集コンテキストを生成するためのデフォルト親オブジェクトストアを返します。 通常はデフォルトオブジェクトストアコーディネータ(EOObjectStoreCoordinator.defaultCoordinator)になります。

Returns:
デフォルト親オブジェクトストアを返します。
See Also:
setDefaultParentObjectStore(com.webobjects.eocontrol.EOObjectStore), substitutionEditingContext(), usesContextRelativeEncoding(), Serializable

delegate

public Object delegate()
Returns:
デリゲートを返す。
See Also:
setDelegate(java.lang.Object)

deleteObject

public void deleteObject(EOEnterpriseObject object)
親オブジェクトストアから指定したオブジェクトを削除待ちにします。 登録したオブジェクトは変更の保存時にオブジェクトストアから削除されます。
Parameters:
object - 削除するオブジェクト
See Also:
deletedObjects()

deletedObjects

public NSArray deletedObjects()
Returns:
削除待ちのオブジェクトの配列を返します。
See Also:
updatedObjects(), insertedObjects()

dispose

public void dispose()
この説明は NSDisposable インターフェースのものと同じです。
オブジェクトが自分自身を破棄するときに実行されます。 このメソッドは他のオブジェクトへの参照を破棄するよう実装すべきです。 通知の登録取り消し、デリゲートの解除、ロックの解除やシステムリソースの解放、ファイルのクローズ、その他の操作の事後処理などをする必要があります。

Specified by:
dispose in interface NSDisposable
Overrides:
dispose in class EOObjectStore

editingContextDidForgetObjectWithGlobalID

public void editingContextDidForgetObjectWithGlobalID(EOEditingContext context,
                                                      EOGlobalID gid)
編集コンテキストが保持していたオブジェクトを破棄できるようになったことを、オブジェクトストアに通知します。 このメソッドはフレームワークに実行されるメソッドであり、直接直接実行するべきではありません。

Specified by:
editingContextDidForgetObjectWithGlobalID in class EOObjectStore
Parameters:
context - 編集コンテキスト
gid - グローバルID
See Also:
EOObjectStore.editingContextDidForgetObjectWithGlobalID(com.webobjects.eocontrol.EOEditingContext, com.webobjects.eocontrol.EOGlobalID)

editors

public NSArray editors()
エディタの配列を返します。 エディタとは特別な目的に使われるデリゲートであり、まだ保存されていない変更を保持しています。 この変更は保存前に検証されてオブジェクトに反映されます。 例えばEODipslayGroupオブジェクトは、データソースとして使う編集コンテキストに自身をエディタとして登録します。 そのためEODisplayGroupはテキストフィールドからの入力も即座に保存することができるのです。

Returns:
エディタの配列を返します。
See Also:
addEditor(java.lang.Object), removeEditor(java.lang.Object), EOEditingContext.Editor

editorsHaveChanges

public boolean editorsHaveChanges()
Returns:
エディタが保存待ちの変更を持っていれば true を返します。
See Also:
EOEditingContext.Editor, addEditor(java.lang.Object)

encodeObjectWithCoder

public static void encodeObjectWithCoder(EOEnterpriseObject object,
                                         NSCoder coder)
coderを使って object をエンコードするためにobject から実行されます。

Parameters:
object - エンコードするオブジェクト
coder - コーダー
See Also:
Serializable, usesContextRelativeEncoding(), initObjectWithCoder(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.foundation.NSCoder)

encodeWithKeyValueArchiver

public void encodeWithKeyValueArchiver(EOKeyValueArchiver archiver)
推奨しません。代わりにJavaのシリアライズを使ってください。

編集コンテキストでは、このメソッドは何も処理しません。

Specified by:
encodeWithKeyValueArchiver in interface EOKeyValueArchiving
Parameters:
archiver - the EOKeyValueArchiver
See Also:
EOKeyValueArchiver

faultForGlobalID

public EOEnterpriseObject faultForGlobalID(EOGlobalID gid,
                                           EOEditingContext context)
EOObjectStoreの同名メソッドをオーバーライドしています。 グローバルIDに対応するオブジェクトが編集コンテキスト(共有編集コンテキスト含む)に登録済みであれば、そのオブジェクトを返します。 そうでなければオブジェクトストアの階層をたどってこのメソッドを実行させ、最終的にはEODatabaseContextが同名メソッドを実行します。 EODatabaseContextは1対1のフォールトを生成して返します。

例えば、特定の "deptID" を持つ部署オブジェクトを取得したいとします。 このとき最も有効な方法は faultForGlobalID でグローバルIDに対応するオブジェクトを探すことです。 部署オブジェクトが編集コンテキストに登録済みならば faultForGlobalID は(データベースに問い合わせずに)オブジェクトを返します。 登録されていなければフォールトが返されるので、あとはオブジェクトを操作した段階で自動的にデータベースに問い合わせられます。 編集コンテキストをネストしている状況で親編集コンテキストのこのメソッドが実行されると、グローバルIDに対応するオブジェクトが挿入待ちとして親に登録されていれば、そのオブジェクトのリレーションシップ先のオブジェクトの配列を返します。 この配列に含まれるオブジェクトは同時に子編集コンテキストにも登録されます。

さらに詳しく知るには「複数の編集コンテキストに渡るオブジェクトの利用」を参照してください。

Specified by:
faultForGlobalID in class EOObjectStore
Parameters:
gid - 要求されるオブジェクトに対応するグローバルID
context フォールトを検索、登録する編集コンテキスト
Returns:
グローバルIDに対応するオブジェクトを返します。
See Also:
EOObjectStore.faultForGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), EOUtilities.localInstanceOfObject(com.webobjects.eocontrol.EOEditingContext, com.webobjects.eocontrol.EOEnterpriseObject), EODatabaseContext, arrayFaultWithSourceGlobalID(com.webobjects.eocontrol.EOGlobalID, java.lang.String, com.webobjects.eocontrol.EOEditingContext), EOFaultHandler

faultForRawRow

public EOEnterpriseObject faultForRawRow(NSDictionary row,
                                         String entityName,
                                         EOEditingContext context)
親オブジェクトストアの同名メソッドの引数に context を与えて実行し、row からフォールトを生成して返します。
Specified by:
faultForRawRow in class EOObjectStore
Parameters:
row - データ行の辞書
entityName - フォールトのエンティティ名
context - フォールトを生成するのに使う編集コンテキスト
Returns:
データ行からフォールトを生成して返します。
See Also:
faultForRawRow(com.webobjects.foundation.NSDictionary, java.lang.String, com.webobjects.eocontrol.EOEditingContext), EODatabaseContext.faultForRawRow(com.webobjects.foundation.NSDictionary, java.lang.String, com.webobjects.eocontrol.EOEditingContext)

faultForRawRow

public EOEnterpriseObject faultForRawRow(NSDictionary row,
                                         String entityName)
row からフォールトを生成して返します。 このメソッドは faultForRawRow(row, entityName, this) を実行するのと同じ効果です。

Parameters:
row - データ行の辞書
entityName - フォールトのエンティティ名
Returns:
データ行からフォールトを生成して返します。
See Also:
faultForRawRow(NSDictionary row, String entityName, EOEditingContext context)

fetchTimestamp

public long fetchTimestamp()
フェッチ時刻は期限切れのデータを再度フェッチするための目安です。

Returns:
フェッチ時刻をミリ秒単位で返します。
See Also:
setFetchTimestamp(long)

finalize

protected void finalize()
                 throws Throwable
Throws:
Throwable Objectの同名メソッドをオーバーライドしています。

forgetObject

public void forgetObject(EOEnterpriseObject object)
オブジェクトを管理リストから削除し、編集コンテキストをオブジェクトの監視者から外します。 このメソッドは決して直接実行すべきではありません。 編集コンテキストからオブジェクトの登録を取り消す確実な方法は、オブジェクトを(refaultAllObjectsかinvalidateAllObjectsを実行して)再度フォールトに戻し、オブジェクトを誰も参照しないようにすることです。 ただし、このメソッドを実行してもオブジェクトの削除には影響しません。 オブジェクトを削除するには deleteObject を実行するか、すべてのリレーションシップ先からそのオブジェクトを外す必要があります。
Parameters:
object - 登録を取り消すオブジェクト
See Also:
refaultAllObjects(), invalidateAllObjects(), deleteObject(com.webobjects.eocontrol.EOEnterpriseObject)

globalIDForObject

public EOGlobalID globalIDForObject(EOEnterpriseObject object)
オブジェクトが編集コンテキストか共有編集コンテキストに登録されていれば、対応するグローバルIDを返します。 オブジェクトが登録されていなければ null を返します。 外部ストアからフェッチされたオブジェクトはすべて、グローバルID(外部ストアのオブジェクトに対するID)と関連づけられて編集コンテキストに登録されます。 また、 insertObject を実行するかフェッチ時に recordObject を実行するとオブジェクトが編集コンテキストに登録されます。

Parameters:

Parameters:
object - 検索対象となるオブジェクト
Returns:
オブジェクトに対応するグローバルIDを返します。
See Also:
EOGlobalID, objectForGlobalID(com.webobjects.eocontrol.EOGlobalID), insertObject(com.webobjects.eocontrol.EOEnterpriseObject), recordObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID), sharedEditingContext()

hasChanges

public boolean hasChanges()
Returns:
オブジェクトグラフに挿入待ち、削除待ち、更新待ちのいずれかの変更があれば true を返します。

initObjectWithCoder

public static Object initObjectWithCoder(EOEnterpriseObject object,
                                         NSCoder decoder)
decoder を使って object を初期化するために、 object から実行されます。
Parameters:
object - オブジェクト
decoder - コーダー
Returns:
初期化されたオブジェクトを返します。
See Also:
Serializable, usesContextRelativeEncoding(), encodeObjectWithCoder(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.foundation.NSCoder)

initializeObject

public void initializeObject(EOEnterpriseObject object,
                             EOGlobalID gid,
                             EOEditingContext context)
EOObjectsStoreの同名メソッドをオーバーライドしています。 gid に対応するオブジェクトの属性値を生成します。 ネストした編集コンテキストの親編集コンテキストでこのメソッドが実行され、かつグローバルIDが生成されれば、親編集コンテキストは属性値をオブジェクトに設定します。 この属性値は "object" から取得され、さらに子編集コンテキストに合わせて変更されたものとなります。 この処理は、ネストされた編集コンテキストが親編集コンテキストのオブジェクトグラフを操作できることを保証するものです。 もし子編集コンテキストが何もオブジェクトを持っていなければ、この処理は親オブジェクトストアにそのまま転送されます。

Specified by:
initializeObject in class EOObjectStore
Parameters:
object - グローバルIDに対応するオブジェクト
gid - グローバルID
context - オブジェクトの初期化に使う編集コンテキスト
See Also:
EOObjectStore.initializeObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext)

insertObject

public void insertObject(EOEnterpriseObject object)
objectを親オブジェクトストアへの挿入待ちとして登録します(内部では insertObjectWithGlobalID が呼ばれます)。 登録したオブジェクトは変更の保存時に処理されます。 このオブジェクトはテンポラリグローバルIDと関連づけられて登録されます。
Parameters:
object - 親オブジェクトストアに挿入するオブジェクト
See Also:
insertedObjects(), deletedObjects(), insertObjectWithGlobalID(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID)

insertObjectWithGlobalID

public void insertObjectWithGlobalID(EOEnterpriseObject object,
                                     EOGlobalID gid)
オブジェクトをグローバルIDと関連づけて、親オブジェクトストアへの挿入待ちとして登録します。 登録したオブジェクトは変更の保存時に処理されます。 編集コンテキストがオブジェクトを持っていなければ recordObject() を実行し、オブジェクトを登録します。 また、編集コンテキストはオブジェクトに対して awakeFromInsertion() を、グローバルIDに対して isTemporary() を実行します。 isTemporary()は必ず true を返す、つまりテンポラリグローバルIDでなければいけません 外部ストアにオブジェクトをコミットするとき、オブジェクトは永続グローバルIDと合わせて再登録されます。

オブジェクトがすでに挿入待ちの場合はエラーになりますが、一度挿入待ちにしたオブジェクトを削除して再び挿入した場合はエラーになりません。

Parameters:
object - グローバルIDと関連づけられる新しいオブジェクト
gid - グローバルID
See Also:
insertObject(com.webobjects.eocontrol.EOEnterpriseObject), recordObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID)

insertedObjects

public NSArray insertedObjects()
Returns:
挿入待ちのオブジェクトの配列を返します。
See Also:
deletedObjects(), updatedObjects()

instancesRetainRegisteredObjects

public static boolean instancesRetainRegisteredObjects()
(記述なし)

invalidateAllObjects

public void invalidateAllObjects()
EOObjectsStoreの同名メソッドをオーバーライドしています。 メモリ中にキャッシュされているオブジェクトをすべて破棄して再度フォールトに戻します。 フォールトに戻すことによって、次にオブジェクトにアクセスしたときに外部ストアから再フェッチされることになります。 このメソッドは編集コンテキストが保持するすべてのオブジェクトのグローバルIDに対して、親オブジェクトストアの invalidateObjectsWithGlobalIDs を実行します。 このメソッドが実行されると、オブジェクトストアの階層をたどって同名メソッドが実行されます。 データベースコンテキストは無効にされたオブジェクトのスナップショットを破棄し、通知ObjectsChangedInStoreNotificationをポストします。

最後にメモリ中のすべてのオブジェクトをフォールトに戻し、次わオブジェクトへのアクセス時に再フェッチされる状態にします。 また、アプリケーション内のすべてのオブジェクトをフォールトに戻すには次のようにしてください。

 EOEditingContext.rootObjectStore().invalidateAllObjects();
メモリにキャッシュされているオブジェクトを保持したまま未保存の変更だけを破棄したい場合は revert を実行してください。 すべての変更とアンドゥ履歴が取り消されます。

さらに詳しい情報は次を参考にしてください。

Specified by:
invalidateAllObjects in class EOObjectStore
See Also:
revert(), refaultAllObjects(), invalidateObjectsWithGlobalIDs(com.webobjects.foundation.NSArray), EOObjectStore.invalidateAllObjects()

invalidateObjectsWithGlobalIDs

public void invalidateObjectsWithGlobalIDs(NSArray gids)
EOObjectsStoreの同名メソッドをオーバーライドしています。 指定したグローバルIDに対応するオブジェクトを破棄し、フォールトに戻すよう親オブジェクトストアに知らせます。 このとき、オブジェクトをフォールトに戻す前に processRecentChanges が実行されます。 協調するオブジェクトストアにこのメソッドが実行されたことを知らせ、次のオブジェクトへのアクセス時に再フェッチされるようになります。 (親子関係や互いに参照し合うなど)関連するオブジェクトストアにはオブジェクトが無効になったことが通知されます。 未保存の変更はすべて取り消されます。

さらに詳しい情報は次を参考にしてください。

Specified by:
invalidateObjectsWithGlobalIDs in class EOObjectStore
Parameters:
gids - 無効にするオブジェクトに対応するグローバルIDの配列
See Also:
invalidateAllObjects(), EOObjectStore.invalidateObjectsWithGlobalIDs(com.webobjects.foundation.NSArray), processRecentChanges()

invalidatesObjectsWhenFinalized

public boolean invalidatesObjectsWhenFinalized()
このメソッドを使うべきではありません。

Returns:
定義されていません。

invokeRemoteMethod

public Object invokeRemoteMethod(EOEditingContext context,
                                 EOGlobalID gid,
                                 String methodName,
                                 Class[] argumentTypes,
                                 Object[] arguments)
サーバ上でリモートメソッドを実行します。 このメソッドは指定された編集コンテキストの変更をすべて保存し、サーバ上のセッションの編集コンテキストに反映する副作用があります。 引数、戻り値のどちらもエンタープライズオブジェクトにならないように注意してください。 その代わりにグローバルIDがオブジェクトを特定するのに使われます。 argumentTypes には methodName で指定したリモートメソッドの引数の型を指定します。

Overrides:
invokeRemoteMethod in class EOObjectStore
Parameters:
context - アプリケーション中にある編集コンテキスト
gid - グローバルID
methodName - 起動するリモートメソッド名
argumentTypes - リモートメソッドに渡す引数の型
arguments - リモートメソッドに渡す引数
Returns:
リモートメソッドの戻り値を返します。

isObjectLockedWithGlobalID

public boolean isObjectLockedWithGlobalID(EOGlobalID gid,
                                          EOEditingContext context)
グローバルIDに対応するオブジェクトがロックされていれば true を、そうでなければ false を返します。 このメソッドは親オブジェクトストアの同名メソッドを実行します。

Specified by:
isObjectLockedWithGlobalID in class EOObjectStore
Parameters:
gid - オブジェクトに対応するグローバルID
context - 編集コンテキスト
Returns:
グローバルIDに対応するオブジェクトがロックされていれば true を返します。
See Also:
lockObject(com.webobjects.eocontrol.EOEnterpriseObject), lockObjectWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), locksObjectsBeforeFirstModification()

lock

public void lock()
編集コンテキストを他のスレッドから使われないようにロックします。 共有編集コンテキストがあるときは読み取りロックをかけます。 編集コンテキストはオブジェクトにアクセスしたり編集するときにロックすべきです。 EOFは編集コンテキストとデータベースコンテキストを1つのスレッドで使用するときのみスレッドセーフを保証します。 マルチスレッド下でも他の編集コンテキストのオブジェクトに同時にアクセスしたり編集することはできますが、データベースに接続できるのは1つのスレッドのみに限られます。

Specified by:
lock in interface NSLocking
Specified by:
lock in class EOObjectStore
See Also:
unlock(), sharedEditingContext()

lockObject

public void lockObject(EOEnterpriseObject object)
外部ストア中のオブジェクトのロックを試みます。 このメソッドは lockObjectWithGlobalID を実行します。 オブジェクトに対応するグローバルIDがなければ例外 RuntimeException を発生します。

Parameters:
object - ロックするオブジェクト
See Also:
lockObjectWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), isObjectLockedWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), locksObjectsBeforeFirstModification()

lockObjectStore

public void lockObjectStore()
(記述なし)

lockObjectWithGlobalID

public void lockObjectWithGlobalID(EOGlobalID gid,
                                   EOEditingContext context)
EOObjectsStoreの同名メソッドをオーバーライドしています。 外部ストア中にあるグローバルIDに対応するオブジェクトをロックしようと試みます。 ロックできなければ例外 RuntimeException を発生します。 このメソッドを実行すると、親オブジェクトストアの同名メソッドを実行します。

Specified by:
lockObjectWithGlobalID in class EOObjectStore
Parameters:
gid - グローバルID
context - 編集コンテキスト
See Also:
lockObject(com.webobjects.eocontrol.EOEnterpriseObject), EOObjectStore.lockObjectWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), isObjectLockedWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), locksObjectsBeforeFirstModification()

locksObjectsBeforeFirstModification

public boolean locksObjectsBeforeFirstModification()
オブジェクトが初めて変更されたとき、編集コンテキストが lockObject を実行してオブジェクトをロックするならば true を返します。
Returns:
オブジェクトが初めて変更されたとき、編集コンテキストが lockObject を実行してオブジェクトをロックするならば true を返します。
See Also:
lockObjectWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), isObjectLockedWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), lockObject(com.webobjects.eocontrol.EOEnterpriseObject), setLocksObjectsBeforeFirstModification(boolean)

messageHandler

public Object messageHandler()
メッセージハンドラを返します。 メッセージハンドラは特別な目的に使われるデリゲートで、ユーザにエラーを知らせる責務を負います。 典型的な例では、EODisplayGroupが自身を編集コンテキストにメッセージハンドラとして登録します。

Returns:
メッセージハンドラを返します。
See Also:
setMessageHandler(java.lang.Object), EOEditingContext.MessageHandler

objectForGlobalID

public EOEnterpriseObject objectForGlobalID(EOGlobalID gid)
グローバルIDに対応するオブジェクトが編集コンテキストか共有編集コンテキストに登録されていれば、そのオブジェクトを返します。 対応するオブジェクトがなければ null を返します。

Parameters:
gid - グローバルID
Returns:
グローバルIDに対応するオブジェクトか null を返します。
See Also:
EOGlobalID, globalIDForObject(com.webobjects.eocontrol.EOEnterpriseObject), sharedEditingContext()

objectWillChange

public void objectWillChange(Object object)
このメソッドは編集コンテキストに登録されているオブジェクトが willChanges を実行したときに自動的に 実行されます。 このメソッドはEOObservingインターフェースの実装です。

Specified by:
objectWillChange in interface EOObserving
Parameters:
object - 登録されているオブジェクト
See Also:
EOEnterpriseObject.willChange()

objectsForSourceGlobalID

public NSArray objectsForSourceGlobalID(EOGlobalID gid,
                                        String name,
                                        EOEditingContext context)
EOObjectsStoreの同名メソッドをオーバーライドしています。 指定した1対多のリレーションシップ先のフォールトを返します。 編集コンテキストをネストしている状況で親編集コンテキストのこのメソッドが実行されると、グローバルIDに対応するオブジェクトが親に登録されていれば、そのオブジェクトのリレーションシップ先のオブジェクトの配列を返します。 この配列に含まれるオブジェクトは同時に子編集コンテキストにも登録されます。 この処理は、ネストされた編集コンテキストが親編集コンテキストのオブジェクトグラフを操作できることを保証するものです。 もし子編集コンテキストに該当のオブジェクトが登録されていないかリレーションシップ先がフォールトであれば、この処理は親オブジェクトストアにそのまま転送されます。

Specified by:
objectsForSourceGlobalID in class EOObjectStore
Parameters:
gid - リレーションシップ元のオブジェクトに対応するグローバルID
name - リレーションシップ名
context - 編集コンテキスト
Returns:
リレーションシップ先のオブジェクトの配列を返します。
See Also:
EOObjectStore.objectsForSourceGlobalID(com.webobjects.eocontrol.EOGlobalID, java.lang.String, com.webobjects.eocontrol.EOEditingContext)

objectsWithFetchSpecification

public NSArray objectsWithFetchSpecification(EOFetchSpecification fetchSpec,
                                             EOEditingContext context)
EOObjectsStoreの同名メソッドをオーバーライドしています。 fetchSpecに従って外部ストアからオブジェクトをフェッチし、配列にして返します。 オブジェクトがすでにメモリ中にある場合、オブジェクトの内容はそのまま保持されます(データベース行がオブジェクトより新しくても変更されることはありません)。 処理中にエラーが起こると例外を発生します。

このメソッドが実行されると、ルートオブジェクトストアまで同名のメソッドを実行します。 ほとんどの場合、ルートオブジェクトストアはデータベースコンテキスト(EODatabaseContext)と協調するオブジェクトストアコーディネータ(EOObjectStoreCoordinator)になります。 その場合コーディネータは、フェッチ仕様で指定されたエンティティを管理するデータベースコンテキストにフェッチの要求を送ります。 データベースコンテキストはデータベースチャネル(EODatabaseChannel)を準備してフェッチを行い、フェッチしたオブジェクトを編集コンテキストに登録します。 (EODatabaseContextとEODatabaseChannelがアクセスレイヤーにあることに注意してください)

さらに詳しい情報は「オブジェクトのフェッチ」を参照してください。

Specified by:
objectsWithFetchSpecification in class EOObjectStore
Parameters:
context - フェッチに使用するEOEditingContext
fetchSpec - フェッチ仕様
Returns:
フェッチしたオブジェクトの配列を返します。
See Also:
EOObjectStore.objectsWithFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext)

objectsWithFetchSpecification

public NSArray objectsWithFetchSpecification(EOFetchSpecification fetchSpec)
次のコードと同じ意味になります。
objectsWithFetchSpecification(fetchSpecification, this)

Parameters:
fetchSpecification - フェッチ仕様
Returns:
フェッチしたオブジェクトの配列を返します。
See Also:
objectsWithFetchSpecification(EOFetchSpecification fetchSpec, EOEditingContext context)

parentObjectStore

public EOObjectStore parentObjectStore()
Returns:
親オブジェクトストアを返します。

processRecentChanges

public void processRecentChanges()
挿入待ち、削除待ち、更新待ちのオブジェクトを処理します。 通常はオブジェクトが変更されても現在のイベントが終了するまで処理待ちになります。 このメソッドが実行されると、編集コンテキストはオブジェクトを挿入待ち、更新待ち、削除待ちのリストに追加します。 続けて(削除するオブジェクトのリレーションシップ先に)削除要求を伝達し、アンドゥ処理を登録します。 最後に通知 ObjectsChangedInStoreNotification と ObjectsChangedInEditingContextNotification をポストします。 このメソッドは強制的に変更を処理する手段として使うことができます。 編集コンテキストは saveChanges 中で一定の処理を行う前にこのメソッドを実行します。 また、このメソッドはJavaクライアントアプリケーションでは何もしません。

See Also:
saveChanges(), ObjectsChangedInEditingContextNotification

propagatesDeletesAtEndOfEvent

public boolean propagatesDeletesAtEndOfEvent()
オブジェクトを削除待ちにしたとき、リレーションシップ先のオブジェクトも削除待ちにするなら true を返します。 変更の保存時に削除待ちにするなら false を返します。 デフォルトでは true を返します。

Returns:
関連するオブジェクトも削除待ちにするなら true を返します。
See Also:
setPropagatesDeletesAtEndOfEvent(boolean)

readResolve

protected Object readResolve()
                      throws ObjectStreamException
(記述なし)
Throws:
ObjectStreamException

recordObject

public void recordObject(EOEnterpriseObject object,
                         EOGlobalID gid)
親オブジェクトストアが保持しているグローバルIDとオブジェクトを編集コンテキストに登録します。 オブジェクトストア(アクセスレイヤーのEODatabaseContextなど)がフェッチしたオブジェクトを登録するのに使われます。 このメソッドが実行されると、編集コンテキストは独自の管理リストにオブジェクトを記録し、自身をオブジェクトのオブザーバ(監視者)として登録します。

Parameters:
object - グローバルIDと関連づけられるオブジェクト
gid - グローバルID

redo

public void redo()
各エディタの editingContextWillSaveChanges を実行し、アンドゥマネージャにオブジェクトグラフを最後にアンドゥした状態に戻すよう要求します。

See Also:
undo(), editors(), revert(), EOEditingContext.Delegate.editingContextWillSaveChanges(com.webobjects.eocontrol.EOEditingContext)

refaultAllObjects

public void refaultAllObjects()
編集コンテキストに登録されている、挿入待ち、削除待ち、更新待ちではないオブジェクトを再度フォールトに戻します。 このメソッドは processRecentChanges を実行し、次いで前述のオブジェクトすべてに対して refaultObject を実行します。

See Also:
refaultObject(com.webobjects.eocontrol.EOEnterpriseObject), EOObjectStore.refaultObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), processRecentChanges()

refaultObject

public void refaultObject(EOEnterpriseObject object)
(記述なし)

refaultObject

public void refaultObject(EOEnterpriseObject object,
                          EOGlobalID gid,
                          EOEditingContext ctx)
EOObjectStoreの同名メソッドをオーバーライドしています。 指定した編集コンテキストに登録されている、グローバルIDに対応するオブジェクトを再度フォールトに戻します。 このメソッドは、オブジェクトをフォールトに戻すことによってアンドゥ履歴からオブジェクトが削除されてしまうことに注意して使うべきです。 挿入待ちの新しいオブジェクト、削除待ちのオブジェクトはフォールトに戻すべきではありません。

このメソッドの主な目的はオブジェクト間の循環参照を解決することです。 例えば、部署オブジェクトと1対1の関係にある従業員オブジェクトがあるとします。 さらにこの部署オブジェクトは従業員オブジェクトの配列を保持しています。 このような循環参照を解決するためにこのメソッドを使います。 また、編集コンテキストがファイナライズされると循環参照も自動的に解決されます。

さらに詳しい情報は次を参考にしてください。

Specified by:
refaultObject in class EOObjectStore
Parameters:
object - 再度フォールトに戻すオブジェクト
gid - グローバルID
ctx - 編集コンテキスト
See Also:
EOObjectStore.refaultObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext), invalidateObjectsWithGlobalIDs(com.webobjects.foundation.NSArray)

refaultObjects

public void refaultObjects()
推奨しません。refaultAllObjects を使ってください。

See Also:
refaultAllObjects(), revert()

refetch

public void refetch()
推奨しません。refaultAllObjects を使ってください。

See Also:
refreshAllObjects(), refaultAllObjects()

refreshAllObjects

public void refreshAllObjects()
オブジェクトグラフの各オブジェクトに対して refreshObject を実行します。

See Also:
refreshObject(com.webobjects.eocontrol.EOEnterpriseObject), refaultAllObjects(), revert()

refreshObject

public void refreshObject(EOEnterpriseObject eo)
挿入待ち、更新待ち、削除待ちではないオブジェクトに対して refaultObject を実行します。 更新待ちのオブジェクトは変更があっても一旦フォールトに戻され、再フェッチ後に元の変更の状態に戻されます。 挿入待ち、削除待ちのオブジェクトには何もしません。 また、親オブジェクトストアが保持する有効期限内のキャッシュにも何も影響しません。 setFetchTimestamp(long) を使うと再フェッチの調整ができます。

See Also:
setFetchTimestamp(long), refaultObject(com.webobjects.eocontrol.EOEnterpriseObject), refreshAllObjects()

registeredObjects

public NSArray registeredObjects()
Returns:
登録されているオブジェクトの配列を返します。

removeEditor

public void removeEditor(Object editor)
エディタの登録を取り消します。

Parameters:
editor - 登録を取り消したいエディタ
See Also:
editors(), addEditor(java.lang.Object)

reset

public void reset()
すべてのオブジェクトの登録を取り消し、使用不可にします。 通常はこのメソッドよりも revert を使うべきです。 このメソッドは編集コンテキストを初期化するかのようにフェッチ時刻も元に戻します。

挿入待ちのオブジェクトがある編集コンテキストでは、このメソッドを実行するべきではありません。

See Also:
revert(), fetchTimestamp()

retainsRegisteredObjects

public boolean retainsRegisteredObjects()
(記述なし)

revert

public void revert()
各エディタの editingContextWillSaveChanges を実行します。 アンドゥ履歴をすべて削除し、未保存の挿入待ち、削除待ち、更新待ちのオブジェクトを破棄します。 破棄したオブジェクトはデータベースから再フェッチしません。 この編集コンテキストを使うDisplayGroupでも再フェッチされないことに注意してください。 このメソッドの実行後は、DisplayGroupを明示的に同期する必要があります。

See Also:
EOEditingContext.Delegate.editingContextWillSaveChanges(com.webobjects.eocontrol.EOEditingContext), editors(), invalidateAllObjects(), refaultAllObjects()

rootObjectStore

public EOObjectStore rootObjectStore()
オブジェクトストアの階層のルートとなるオブジェクトストアを返します。 通常はオブジェクトストアコーディネータがルートになります。

Returns:
ルートとなるオブジェクトストアを返します。

saveChanges

public void saveChanges()
オブジェクトグラフの変更を保存します。 具体的には各エディタの editingContextWillSaveChanges を実行し、親オブジェクトストアの saveChangesInEditingContext を実行します。 もし親オブジェクトストアがオブジェクトストアコーディネータであれば、コーディネータは各協調オブジェクトストア(EOCooperatingObjectStore、通常はEODatabaseContext)に変更を保存させます。 途中でデータベースがエラーを起こすと例外 RuntimeException を発生します。

See Also:
saveChangesInEditingContext(com.webobjects.eocontrol.EOEditingContext), EOEditingContext.Delegate.editingContextWillSaveChanges(com.webobjects.eocontrol.EOEditingContext), editors()

saveChanges

public void saveChanges(Object sender)
推奨しません。saveChanges() を使ってください。

Parameters:
sender - 無視されます
See Also:
saveChanges()

saveChangesInEditingContext

public void saveChangesInEditingContext(EOEditingContext context)
EOObjectsStoreの同名メソッドをオーバーライドしています。 この編集コンテキストが変更されたことを親オブジェクトストアに知らせます。 また、親オブジェクトストアが編集コンテキスト(ネストしている)ときに子編集コンテキストでこのメソッドが実行されると、親編集コンテキストの同名メソッドも実行されます。 このとき親編集コンテキストは子編集コンテキストからの変更をすべて受け入れ、自身のオブジェクトグラフに反映しますが、すぐにその変更がデータベースに保存されるわけではありません。 その後で親編集コンテキストの saveChanges を実行すると、子編集コンテキストの変更をまとめて親オブジェクトストアに変更を知らせます。

Specified by:
saveChangesInEditingContext in class EOObjectStore
Parameters:
context - 編集コンテキスト
See Also:
saveChanges(), EOObjectStore.saveChangesInEditingContext(com.webobjects.eocontrol.EOEditingContext)

setDefaultFetchTimestampLag

public static void setDefaultFetchTimestampLag(long lag)
編集コンテキストが新しく生成されたときに使うデフォルトフェッチ有効時間を設定します。 初期値は 3,600,000 ミリ秒(1時間)です。

編集コンテキストが生成されるとき、フェッチ時刻は(デフォルトフェッチ有効時間内になるような)現在時刻に設定されます。 有効時間を長く設定すると、すべての編集コンテキストがオブジェクトのキャッシュを古くなっても長時間抱えることになります。 一方有効時間が短すぎると過剰なフェッチを行うことになり、パフォーマンスが低下する可能性があります。 有効時間を設定したくなければ 0 を設定します。

Parameters:
lag - フェッチ有効時間(ミリ秒単位)

setDefaultParentObjectStore

public static void setDefaultParentObjectStore(EOObjectStore store)
デフォルト親オブジェクトストアを設定します。 このメソッドは編集コンテキストをデシリアライズする前にデフォルト親オブジェクトストアを設定することができます。 親には現在と異なるオブジェクトストアコーディネータを設定することもできますし、他の編集コンテキストを設定してネストすることもできます。 デシリアライズ後は null を設定して元々の動作をするように戻すべきです。

一旦デフォルト親オブジェクトストアを変更すると、再度変更するまで使われ続けます。

Parameters:
store - デフォルト親オブジェクトストア
See Also:
defaultParentObjectStore(), setSubstitutionEditingContext(com.webobjects.eocontrol.EOEditingContext), setUsesContextRelativeEncoding(boolean), Serializable

setDelegate

public void setDelegate(Object delegate)
デリゲートを設定します。

Parameters:
delegate - デリゲート

setFetchTimestamp

public void setFetchTimestamp(long timestamp)
フェッチ時刻を設定します。 編集コンテキストがオブジェクトをフェッチするとき、親オブジェクトストアはフェッチ時刻を見て、キャッシュを使うか再度フェッチするかを決めます。 結果的に編集コンテキストはフェッチ時刻が少しでも新しいデータを使うようになります。 ただし、親オブジェクトストアはフェッチ時刻を無視できることにも注意してください。 フェッチ時刻は参考・要求程度のものであって、保証と考えるべきではありません。

注意:フェッチ時刻を変更しても、すでにフェッチ済みのオブジェクトには影響しません。 フェッチ時刻が影響するのは次のフェッチからです。 フェッチ済みのオブジェクトを更新したい場合は、フェッチ時刻を変更する前に refaultAllObjects を実行してください。


編集コンテキストをネストせず生成したときのフェッチ時刻は(デフォルトフェッチ有効時間内になるような)現在時刻に設定されます。 ネストされた編集コンテキストは常に親編集コンテキストのフェッチ時刻を使います。 ネストされた編集コンテキストが setFetchTimestamp を実行すると例外を発生します。

Parameters:
timestamp - フェッチ時刻(ミリ秒単位)

setInstancesRetainRegisteredObjects

public static void setInstancesRetainRegisteredObjects(boolean flag)
(記述なし)
 

setInvalidatesObjectsWhenFinalized

public void setInvalidatesObjectsWhenFinalized(boolean yn)
このメソッドは使わないでください。

Parameters:
yn - 設定しても何も起こりません。

setLocksObjectsBeforeFirstModification

public void setLocksObjectsBeforeFirstModification(boolean yn)

オブジェクトが初めて変更されたとき、編集コンテキストが lockObject を実行してオブジェクトをロックするかどうかを設定します。 デフォルトは false に設定されています。 true に設定すると、オブジェクトの willChange が実行されたときにロックできなければ例外を発生します。 ロックが失敗する可能性は2つあります。1つはデータベース行がすでにロックされている場合、もう1つはスナップショットの有効期限が切れている場合です。 スナップショットの有効期限が切れていたら、EOFetchSpecificationのsetRefreshesRefetchedObjectsを true に設定してオブジェクトを再フェッチします。 例外を捕捉するにはデータベースコンテキストのデリゲート databaseContextShouldRaiseExceptionForLockFailure を実装します。

インタラクティブなアプリケーションでは、このメソッドまたはペシミスティックロックの使用を避けるべきです。 例えばユーザがテキストフィールドの値を変更したにも関わらず保存するのを忘れてしまうと、データベースがロックされたままになってしまいます。 このような場合はオプティミスティックロックを使うかアプリケーションレベルでのチェックを考慮してください。

Parameters:
yn - オブジェクトが初めて変更されたとき、編集コンテキストが lockObject を実行してオブジェクトをロックするかどうか
See Also:
lockObject(com.webobjects.eocontrol.EOEnterpriseObject), EOEnterpriseObject.willChange(), EOFetchSpecification.setRefreshesRefetchedObjects(boolean), locksObjectsBeforeFirstModification()

setMessageHandler

public void setMessageHandler(Object handler)
メッセージハンドラを設定します。

Parameters:
handler - メッセージハンドラとして設定するオブジェクト
See Also:
messageHandler(), EOEditingContext.MessageHandler

setPropagatesDeletesAtEndOfEvent

public void setPropagatesDeletesAtEndOfEvent(boolean propagatesDeletesAtEndOfEvent)

オブジェクトを削除待ちにしたとき、リレーションシップ先のオブジェクトも削除待ちにするか、変更の保存時に削除待ちにするかどうかを設定します。

true を設定すると、オブジェクトを削除待ちにしたときにリレーションシップ先のオブジェクトもたどって削除待ちにします(デフォルトの処理です)。 false を設定すると、saveChanges が実行されるまで削除処理は伝搬されません。

オブジェクトを削除するには deletObject で明示的に削除するか、リレーションシップ先を空にして暗黙的に削除する方法があります。 削除処理の伝搬とは、オブジェクトを削除したときにリレーションシップ先のオブジェクトも一緒に削除するようにすることです。 一緒に削除するオブジェクトは EOClassDescriptionオブジェクトから取得できる削除ルールに基づいて選択されます。 削除処理の伝搬が失敗すると(オブジェクトが削除拒否のルールを設定していたとき)、処理中の変更はすべてロールバックされます。

Parameters:
propagatesDeletesAtEndOfEvent - 変更があったとき、削除処理を伝搬するかどうか
See Also:
saveChanges(), deleteObject(com.webobjects.eocontrol.EOEnterpriseObject), propagatesDeletesAtEndOfEvent()

setRetainsRegisteredObjects

public void setRetainsRegisteredObjects(boolean flag)
(記述なし)
 

setSharedEditingContext

public void setSharedEditingContext(EOSharedEditingContext sharedEC)
共有編集コンテキストを設定します。 編集コンテキストと共有編集コンテキストの両方が同じオブジェクトを持っているか、共有編集コンテキストがEOSharedEditingContextのインスタンスでなければ例外を発生します。

デフォルトでは、編集コンテキストはDefaultSharedEditingContextWasInitializedNotificationsの通知を受け取る共有編集コンテキストを持ちません。 編集コンテキストが何もオブジェクトを持たないときにこの通知がポストされると、デフォルト共有編集コンテキストを新しく生成します。

Invoke this method with null to remove this EOEditingContext as an observer of this notification and to prevent the context from accessing any objects in the default shared editing context.

Parameters:
sharedEC - 共有編集コンテキスト
See Also:
EOSharedEditingContext, EOSharedEditingContext.DefaultSharedEditingContextWasInitializedNotification

setStopsValidationAfterFirstError

public void setStopsValidationAfterFirstError(boolean yn)
オブジェクトの検証時にエラーを見つけた後、検証を中止するなら true を、検証を続けるなら false を返します。

Parameters:
yn - オブジェクトの検証時にエラーを見つけた後、検証を中止するかどうか
See Also:
stopsValidationAfterFirstError()

setSubstitutionEditingContext

public static void setSubstitutionEditingContext(EOEditingContext ec)
デシリアライズ時に置き換える代替編集コンテキストを設定します。 代替編集コンテキストを設定すると、デシリアライズ時に編集コンテキストがすべて代替編集コンテキストに置き換えられます。 このメソッドは、シリアライズされた編集コンテキストの内容を、すでに存在する他の編集コンテキストにデシリアライズするのに便利です。 シリアライズのストリームで一時的な編集コンテキストを用意する必要がありません。

代替編集コンテキストを使ってデシリアライズした後は、代替編集コンテキストを null に設定してデフォルトの挙動に戻す必要があります。

代替編集コンテキストは再度設定するまでグローバルに使われます。 EOFは代替編集コンテキストへのスレッドセーフなアクセスを保証しません。 同時に複数のスレッドで編集コンテキストをデシリアライズする場合は、その編集コンテキストが管理するオブジェクトをロックしておくべきです。

さらに詳しい情報は「Web Objects Frameworkのカスタムオブジェクトのアーカイブ」を参照してください。

Parameters:
ec - 代替編集コンテキスト
See Also:
substitutionEditingContext(), setUsesContextRelativeEncoding(boolean), setDefaultParentObjectStore(com.webobjects.eocontrol.EOObjectStore), Serializable

setUndoManager

public void setUndoManager(NSUndoManager undoManager)
アンドゥマネージャを設定します。 アンドゥが必要ない場合やアンドゥ履歴の負荷を避けたい場合は引数に null を渡します。

Parameters:
undoManager - 新しく設定するアンドゥマネージャ
See Also:
undoManager()

setUsesContextRelativeEncoding

public static void setUsesContextRelativeEncoding(boolean flag)
シリアライズ時に編集コンテキストのエンコーディング方法を使うかどうかを設定します。

さらに詳しい情報は「Web Objects Frameworkのカスタムオブジェクトのアーカイブ」を参照してください。

Parameters:
flag - シリアライズ時に編集コンテキストのエンコーディング方法を使うかどうか
See Also:
usesContextRelativeEncoding(), setSubstitutionEditingContext(com.webobjects.eocontrol.EOEditingContext), setDefaultParentObjectStore(com.webobjects.eocontrol.EOObjectStore), Serializable

sharedEditingContext

public EOSharedEditingContext sharedEditingContext()
Returns:
共有編集コンテキストを返します。

stopsValidationAfterFirstError

public boolean stopsValidationAfterFirstError()
Returns:
オブジェクトの検証時にエラーを見つけた後、検証を中止するなら true を、検証を続けるなら false を返します。
See Also:
setStopsValidationAfterFirstError(boolean)

substitutionEditingContext

public static EOEditingContext substitutionEditingContext()
代替編集コンテキストが設定されていれば返します。 設定されていなければ null を返します。

さらに詳しい情報は「Web Objects Frameworkのカスタムオブジェクトのアーカイブ」を参照してください。

Returns:
代替編集コンテキストを返します。
See Also:
setSubstitutionEditingContext(com.webobjects.eocontrol.EOEditingContext), usesContextRelativeEncoding(), defaultParentObjectStore(), Serializable

tryLock

public boolean tryLock()
(記述なし)
 

tryToSaveChanges

public Throwable tryToSaveChanges()
推奨しません。代わりに saveChanges() を使ってください。


undo

public void undo()
各エディタの editingContextWillSaveChanges を実行し、アンドゥマネージャにオブジェクトグラフを最後に変更した未保存の状態に戻すよう要求します。

See Also:
redo(), editors(), revert()

undoManager

public NSUndoManager undoManager()
Returns:
アンドゥマネージャを返します。
See Also:
setUndoManager(com.webobjects.foundation.NSUndoManager)

unlock

public void unlock()
他のスレッドが編集コンテキストへアクセスできるよう、スレッドのロックを解除します。 共有編集コンテキストがあればその読み取りロックも解除します。

Specified by:
unlock in interface NSLocking
Specified by:
unlock in class EOObjectStore
See Also:
lock(), sharedEditingContext()

unlockObjectStore

public void unlockObjectStore()
(記述なし)
 

updatedObjects

public NSArray updatedObjects()
更新待ちとして登録されているオブジェクトの配列を返します。

Returns:
更新待ちのオブジェクトの配列を返す。
See Also:
deletedObjects(), insertedObjects()

usesContextRelativeEncoding

public static boolean usesContextRelativeEncoding()
シリアライズ時に編集コンテキストのエンコーディング方法を使うならば true を返します。

さらに詳しい情報は「Web Objects Frameworkのカスタムオブジェクトのアーカイブ」を参照してください。

Returns:
シリアライズ時に編集コンテキストのエンコーディング方法を使うならば true を返します。
See Also:
setUsesContextRelativeEncoding(boolean), substitutionEditingContext(), defaultParentObjectStore(), Serializable

Last updated Thu Oct 21 15:04:16 PDT 2004.

Copyright © 2004 Apple Computer, Inc.