|
WebObjects 5.2.3 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.webobjects.eocontrol.EOObjectStore com.webobjects.eocontrol.EOEditingContext
EOEditingContextはアプリケーション内のエンタープライズオブジェクトのグラフを管理します。 オブジェクトグラフは、外部ストア(主にデータベース)のデータに一意性を持たせることができます。
objectsWithFetchSpecification | 外部ストア(データベース)からオブジェクトをフェッチする。 |
insertObject | 変更の保存時、親オブジェクトストアに新しいオブジェクトを登録する。 |
deleteObject | 変更の保存時、親オブジェクトストアからオブジェクトを削除する。 |
saveChanges | 変更を親オブジェクトストアに保存する。 |
faultForGlobalID | グローバルIDに対応するオブジェクトがあれば返す。 なければオブジェクトを生成し、フォールトの状態にして返す。 |
globalIDForObject | オブジェクトのグローバルIDを返す |
revert | 保存していない変更をすべて破棄し、編集コンテキストを保存前の状態に戻す。 |
EOEditingContextオブジェクトは「オブジェクトの空間」あるいは記録のような役割を果たします。 中でも特に重要な役割がオブジェクトグラフの管理です。 オブジェクトグラフとは、外部ストア(主にデータベース)のデータに一意性を持たせたオブジェクトの集合です。
外部ストアからフェッチされたオブジェクトはすべて、グローバルID(外部ストアのオブジェクトに対するID)と関連づけられて編集コンテキストに登録されます。 編集コンテキストの役割は(EOObservingインターフェースに沿って)オブジェクトの変更を監視し、変更の取り消しを可能にするようにスナップショットを記録することです。 オブジェクトは1つの編集コンテキストに1つしか存在せず、重複することはありません。 ただし、他の編集コンテキストならばそのオブジェクトのコピーを保持できます。 このように、オブジェクトの有効範囲は特定の編集コンテキストに限られます。
その他の情報については以下を参照してください。
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 FormNested 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)
context の gid に対応するオブジェクトがロックされていれば 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 |
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 |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final String EditingContextDidSaveChangesNotification
Key | Value |
EOObjectStore.UpdatedKey |
更新されたオブジェクトの配列 |
EOObjectStore.InsertedKey |
挿入されたオブジェクトの配列 |
EOObjectStore.DeletedKey |
削除されたオブジェクトの配列 |
public static final int EditingContextFlushChangesRunLoopOrdering
EOEditingContext also defines String constants for the names of the notifications it posts.
EditingContextDidSaveChangesNotification
,
ObjectsChangedInEditingContextNotification
,
Constant Field Valuespublic static final String ObjectsChangedInEditingContextNotification
Key | Value |
EOObjectStore.UpdatedKey |
更新されたオブジェクトの配列 |
EOObjectStore.DeletedKey |
削除されたオブジェクトの配列 |
EOObjectStore.InsertedKey |
挿入されたオブジェクトの配列 |
EOObjectStore.InvalidatedKey |
無効にされたオブジェクトの配列 |
インターフェースレイヤーのEODisplayGroup関連クラス(WODisplayGroupではありません)ではオブジェクトを再表示するのにこの通知を利用します。
Constructor Detail |
public EOEditingContext(EOObjectStore parent)
parentObjectStore()
,
defaultParentObjectStore()
,
setSharedEditingContext(com.webobjects.eocontrol.EOSharedEditingContext)
,
EOObjectStore
public EOEditingContext()
parentObjectStore()
,
defaultParentObjectStore()
,
setSharedEditingContext(com.webobjects.eocontrol.EOSharedEditingContext)
,
EOObjectStore
Method Detail |
public void addEditor(Object editor)
editor
- the editor to be added to the editors seteditors()
,
removeEditor(java.lang.Object)
,
EOEditingContext.Editor
public NSArray arrayFaultWithSourceGlobalID(EOGlobalID gid, String name, EOEditingContext context)
編集コンテキストをネストしている状況で親編集コンテキストのこのメソッドが実行されると、グローバルIDに対応するオブジェクトが挿入待ちとして親に登録されていれば、そのオブジェクトのリレーションシップ先のオブジェクトの配列を返します。 この配列に含まれるオブジェクトは同時に子編集コンテキストにも登録されます。
arrayFaultWithSourceGlobalID
in class EOObjectStore
faultForGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext)
,
EOObjectStore.arrayFaultWithSourceGlobalID(com.webobjects.eocontrol.EOGlobalID, java.lang.String, com.webobjects.eocontrol.EOEditingContext)
public NSDictionary committedSnapshotForObject(EOEnterpriseObject object)
currentEventSnapshotForObject(com.webobjects.eocontrol.EOEnterpriseObject)
public NSDictionary currentEventSnapshotForObject(EOEnterpriseObject object)
committedSnapshotForObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
processRecentChanges()
public static Object decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver unarchiver)(記述なし)
public static long defaultFetchTimestampLag()
setDefaultFetchTimestampLag(long)
public static EOObjectStore defaultParentObjectStore()
setDefaultParentObjectStore(com.webobjects.eocontrol.EOObjectStore)
,
substitutionEditingContext()
,
usesContextRelativeEncoding()
,
Serializable
public Object delegate()
setDelegate(java.lang.Object)
public void deleteObject(EOEnterpriseObject object)
deletedObjects()
public NSArray deletedObjects()
updatedObjects()
,
insertedObjects()
public void dispose()
dispose
in interface NSDisposable
dispose
in class EOObjectStore
public void editingContextDidForgetObjectWithGlobalID(EOEditingContext context, EOGlobalID gid)
editingContextDidForgetObjectWithGlobalID
in class EOObjectStore
EOObjectStore.editingContextDidForgetObjectWithGlobalID(com.webobjects.eocontrol.EOEditingContext, com.webobjects.eocontrol.EOGlobalID)
public NSArray editors()
addEditor(java.lang.Object)
,
removeEditor(java.lang.Object)
,
EOEditingContext.Editor
public boolean editorsHaveChanges()
true
を返します。
EOEditingContext.Editor
,
addEditor(java.lang.Object)
public static void encodeObjectWithCoder(EOEnterpriseObject object, NSCoder coder)
coder
を使って object
をエンコードするためにobject
から実行されます。
Serializable
,
usesContextRelativeEncoding()
,
initObjectWithCoder(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.foundation.NSCoder)
public void encodeWithKeyValueArchiver(EOKeyValueArchiver archiver)
編集コンテキストでは、このメソッドは何も処理しません。
encodeWithKeyValueArchiver
in interface EOKeyValueArchiving
archiver
- the EOKeyValueArchiverEOKeyValueArchiver
public EOEnterpriseObject faultForGlobalID(EOGlobalID gid, EOEditingContext context)
例えば、特定の "deptID" を持つ部署オブジェクトを取得したいとします。 このとき最も有効な方法は faultForGlobalID でグローバルIDに対応するオブジェクトを探すことです。 部署オブジェクトが編集コンテキストに登録済みならば faultForGlobalID は(データベースに問い合わせずに)オブジェクトを返します。 登録されていなければフォールトが返されるので、あとはオブジェクトを操作した段階で自動的にデータベースに問い合わせられます。 編集コンテキストをネストしている状況で親編集コンテキストのこのメソッドが実行されると、グローバルIDに対応するオブジェクトが挿入待ちとして親に登録されていれば、そのオブジェクトのリレーションシップ先のオブジェクトの配列を返します。 この配列に含まれるオブジェクトは同時に子編集コンテキストにも登録されます。
さらに詳しく知るには「複数の編集コンテキストに渡るオブジェクトの利用」を参照してください。
faultForGlobalID
in class EOObjectStore
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
public EOEnterpriseObject faultForRawRow(NSDictionary row, String entityName, EOEditingContext context)
context
を与えて実行し、row
からフォールトを生成して返します。
faultForRawRow
in class EOObjectStore
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)
public EOEnterpriseObject faultForRawRow(NSDictionary row, String entityName)
row
からフォールトを生成して返します。
このメソッドは faultForRawRow(row, entityName, this)
を実行するのと同じ効果です。
faultForRawRow(NSDictionary row, String entityName, EOEditingContext context)
public long fetchTimestamp()
setFetchTimestamp(long)
protected void finalize() throws Throwable
Throwable
Objectの同名メソッドをオーバーライドしています。
public void forgetObject(EOEnterpriseObject object)
refaultAllObjects()
,
invalidateAllObjects()
,
deleteObject(com.webobjects.eocontrol.EOEnterpriseObject)
public EOGlobalID globalIDForObject(EOEnterpriseObject object)
Parameters:
EOGlobalID
,
objectForGlobalID(com.webobjects.eocontrol.EOGlobalID)
,
insertObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
recordObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID)
,
sharedEditingContext()
public boolean hasChanges()
true
を返します。
public static Object initObjectWithCoder(EOEnterpriseObject object, NSCoder decoder)
decoder
を使って object
を初期化するために、 object
から実行されます。
Serializable
,
usesContextRelativeEncoding()
,
encodeObjectWithCoder(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.foundation.NSCoder)
public void initializeObject(EOEnterpriseObject object, EOGlobalID gid, EOEditingContext context)
gid
に対応するオブジェクトの属性値を生成します。
ネストした編集コンテキストの親編集コンテキストでこのメソッドが実行され、かつグローバルIDが生成されれば、親編集コンテキストは属性値をオブジェクトに設定します。
この属性値は "object" から取得され、さらに子編集コンテキストに合わせて変更されたものとなります。
この処理は、ネストされた編集コンテキストが親編集コンテキストのオブジェクトグラフを操作できることを保証するものです。
もし子編集コンテキストが何もオブジェクトを持っていなければ、この処理は親オブジェクトストアにそのまま転送されます。
initializeObject
in class EOObjectStore
EOObjectStore.initializeObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext)
public void insertObject(EOEnterpriseObject object)
object
を親オブジェクトストアへの挿入待ちとして登録します(内部では insertObjectWithGlobalID
が呼ばれます)。
登録したオブジェクトは変更の保存時に処理されます。
このオブジェクトはテンポラリグローバルIDと関連づけられて登録されます。
insertedObjects()
,
deletedObjects()
,
insertObjectWithGlobalID(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID)
public void insertObjectWithGlobalID(EOEnterpriseObject object, EOGlobalID gid)
true
を返す、つまりテンポラリグローバルIDでなければいけません
外部ストアにオブジェクトをコミットするとき、オブジェクトは永続グローバルIDと合わせて再登録されます。
オブジェクトがすでに挿入待ちの場合はエラーになりますが、一度挿入待ちにしたオブジェクトを削除して再び挿入した場合はエラーになりません。
insertObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
recordObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID)
public NSArray insertedObjects()
deletedObjects()
,
updatedObjects()
public static boolean instancesRetainRegisteredObjects()(記述なし)
public void invalidateAllObjects()
最後にメモリ中のすべてのオブジェクトをフォールトに戻し、次わオブジェクトへのアクセス時に再フェッチされる状態にします。 また、アプリケーション内のすべてのオブジェクトをフォールトに戻すには次のようにしてください。
EOEditingContext.rootObjectStore().invalidateAllObjects();メモリにキャッシュされているオブジェクトを保持したまま未保存の変更だけを破棄したい場合は revert を実行してください。 すべての変更とアンドゥ履歴が取り消されます。
さらに詳しい情報は次を参考にしてください。
invalidateAllObjects
in class EOObjectStore
revert()
,
refaultAllObjects()
,
invalidateObjectsWithGlobalIDs(com.webobjects.foundation.NSArray)
,
EOObjectStore.invalidateAllObjects()
public void invalidateObjectsWithGlobalIDs(NSArray gids)
さらに詳しい情報は次を参考にしてください。
invalidateObjectsWithGlobalIDs
in class EOObjectStore
invalidateAllObjects()
,
EOObjectStore.invalidateObjectsWithGlobalIDs(com.webobjects.foundation.NSArray)
,
processRecentChanges()
public boolean invalidatesObjectsWhenFinalized()
public Object invokeRemoteMethod(EOEditingContext context, EOGlobalID gid, String methodName, Class[] argumentTypes, Object[] arguments)
invokeRemoteMethod
in class EOObjectStore
public boolean isObjectLockedWithGlobalID(EOGlobalID gid, EOEditingContext context)
true
を、そうでなければ false
を返します。
このメソッドは親オブジェクトストアの同名メソッドを実行します。
isObjectLockedWithGlobalID
in class EOObjectStore
true
を返します。
lockObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
lockObjectWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext)
,
locksObjectsBeforeFirstModification()
public void lock()
lock
in interface NSLocking
lock
in class EOObjectStore
unlock()
,
sharedEditingContext()
public void lockObject(EOEnterpriseObject object)
lockObjectWithGlobalID
を実行します。
オブジェクトに対応するグローバルIDがなければ例外 RuntimeException を発生します。
lockObjectWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext)
,
isObjectLockedWithGlobalID(com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext)
,
locksObjectsBeforeFirstModification()
public void lockObjectStore()(記述なし)
public void lockObjectWithGlobalID(EOGlobalID gid, EOEditingContext context)
lockObjectWithGlobalID
in class EOObjectStore
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()
public boolean locksObjectsBeforeFirstModification()
true
を返します。
true
を返します。
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)
public Object messageHandler()
setMessageHandler(java.lang.Object)
,
EOEditingContext.MessageHandler
public EOEnterpriseObject objectForGlobalID(EOGlobalID gid)
EOGlobalID
,
globalIDForObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
sharedEditingContext()
public void objectWillChange(Object object)
objectWillChange
in interface EOObserving
EOEnterpriseObject.willChange()
public NSArray objectsForSourceGlobalID(EOGlobalID gid, String name, EOEditingContext context)
objectsForSourceGlobalID
in class EOObjectStore
EOObjectStore.objectsForSourceGlobalID(com.webobjects.eocontrol.EOGlobalID, java.lang.String, com.webobjects.eocontrol.EOEditingContext)
public NSArray objectsWithFetchSpecification(EOFetchSpecification fetchSpec, EOEditingContext context)
このメソッドが実行されると、ルートオブジェクトストアまで同名のメソッドを実行します。 ほとんどの場合、ルートオブジェクトストアはデータベースコンテキスト(EODatabaseContext)と協調するオブジェクトストアコーディネータ(EOObjectStoreCoordinator)になります。 その場合コーディネータは、フェッチ仕様で指定されたエンティティを管理するデータベースコンテキストにフェッチの要求を送ります。 データベースコンテキストはデータベースチャネル(EODatabaseChannel)を準備してフェッチを行い、フェッチしたオブジェクトを編集コンテキストに登録します。 (EODatabaseContextとEODatabaseChannelがアクセスレイヤーにあることに注意してください)
さらに詳しい情報は「オブジェクトのフェッチ」を参照してください。
objectsWithFetchSpecification
in class EOObjectStore
EOObjectStore.objectsWithFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext)
public NSArray objectsWithFetchSpecification(EOFetchSpecification fetchSpec)
objectsWithFetchSpecification(fetchSpecification, this)
objectsWithFetchSpecification(EOFetchSpecification fetchSpec, EOEditingContext context)
public EOObjectStore parentObjectStore()
public void processRecentChanges()
saveChanges()
,
ObjectsChangedInEditingContextNotification
public boolean propagatesDeletesAtEndOfEvent()
true
を返します。
変更の保存時に削除待ちにするなら false
を返します。
デフォルトでは true
を返します。
true
を返します。
setPropagatesDeletesAtEndOfEvent(boolean)
protected Object readResolve() throws ObjectStreamException(記述なし)
ObjectStreamException
public void recordObject(EOEnterpriseObject object, EOGlobalID gid)
public void redo()
undo()
,
editors()
,
revert()
,
EOEditingContext.Delegate.editingContextWillSaveChanges(com.webobjects.eocontrol.EOEditingContext)
public void refaultAllObjects()
refaultObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
EOObjectStore.refaultObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext)
,
processRecentChanges()
public void refaultObject(EOEnterpriseObject object)(記述なし)
public void refaultObject(EOEnterpriseObject object, EOGlobalID gid, EOEditingContext ctx)
このメソッドの主な目的はオブジェクト間の循環参照を解決することです。 例えば、部署オブジェクトと1対1の関係にある従業員オブジェクトがあるとします。 さらにこの部署オブジェクトは従業員オブジェクトの配列を保持しています。 このような循環参照を解決するためにこのメソッドを使います。 また、編集コンテキストがファイナライズされると循環参照も自動的に解決されます。
さらに詳しい情報は次を参考にしてください。
refaultObject
in class EOObjectStore
EOObjectStore.refaultObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.eocontrol.EOGlobalID, com.webobjects.eocontrol.EOEditingContext)
,
invalidateObjectsWithGlobalIDs(com.webobjects.foundation.NSArray)
public void refaultObjects()
refaultAllObjects()
,
revert()
public void refetch()
refreshAllObjects()
,
refaultAllObjects()
public void refreshAllObjects()
refreshObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
refaultAllObjects()
,
revert()
public void refreshObject(EOEnterpriseObject eo)
setFetchTimestamp(long)
,
refaultObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
refreshAllObjects()
public NSArray registeredObjects()
public void removeEditor(Object editor)
editors()
,
addEditor(java.lang.Object)
public void reset()
挿入待ちのオブジェクトがある編集コンテキストでは、このメソッドを実行するべきではありません。
revert()
,
fetchTimestamp()
public boolean retainsRegisteredObjects()(記述なし)
public void revert()
EOEditingContext.Delegate.editingContextWillSaveChanges(com.webobjects.eocontrol.EOEditingContext)
,
editors()
,
invalidateAllObjects()
,
refaultAllObjects()
public EOObjectStore rootObjectStore()
public void saveChanges()
saveChangesInEditingContext(com.webobjects.eocontrol.EOEditingContext)
,
EOEditingContext.Delegate.editingContextWillSaveChanges(com.webobjects.eocontrol.EOEditingContext)
,
editors()
public void saveChanges(Object sender)
saveChanges()
public void saveChangesInEditingContext(EOEditingContext context)
saveChangesInEditingContext
in class EOObjectStore
saveChanges()
,
EOObjectStore.saveChangesInEditingContext(com.webobjects.eocontrol.EOEditingContext)
public static void setDefaultFetchTimestampLag(long lag)
編集コンテキストが生成されるとき、フェッチ時刻は(デフォルトフェッチ有効時間内になるような)現在時刻に設定されます。 有効時間を長く設定すると、すべての編集コンテキストがオブジェクトのキャッシュを古くなっても長時間抱えることになります。 一方有効時間が短すぎると過剰なフェッチを行うことになり、パフォーマンスが低下する可能性があります。 有効時間を設定したくなければ 0 を設定します。
public static void setDefaultParentObjectStore(EOObjectStore store)
一旦デフォルト親オブジェクトストアを変更すると、再度変更するまで使われ続けます。
defaultParentObjectStore()
,
setSubstitutionEditingContext(com.webobjects.eocontrol.EOEditingContext)
,
setUsesContextRelativeEncoding(boolean)
,
Serializable
public void setDelegate(Object delegate)
public void setFetchTimestamp(long timestamp)
注意:フェッチ時刻を変更しても、すでにフェッチ済みのオブジェクトには影響しません。 フェッチ時刻が影響するのは次のフェッチからです。 フェッチ済みのオブジェクトを更新したい場合は、フェッチ時刻を変更する前に refaultAllObjects を実行してください。 |
public static void setInstancesRetainRegisteredObjects(boolean flag)(記述なし)
public void setInvalidatesObjectsWhenFinalized(boolean yn)
public void setLocksObjectsBeforeFirstModification(boolean yn)
オブジェクトが初めて変更されたとき、編集コンテキストが lockObject を実行してオブジェクトをロックするかどうかを設定します。
デフォルトは false
に設定されています。
true
に設定すると、オブジェクトの willChange が実行されたときにロックできなければ例外を発生します。
ロックが失敗する可能性は2つあります。1つはデータベース行がすでにロックされている場合、もう1つはスナップショットの有効期限が切れている場合です。
スナップショットの有効期限が切れていたら、EOFetchSpecificationのsetRefreshesRefetchedObjectsを true
に設定してオブジェクトを再フェッチします。
例外を捕捉するにはデータベースコンテキストのデリゲート databaseContextShouldRaiseExceptionForLockFailure を実装します。
インタラクティブなアプリケーションでは、このメソッドまたはペシミスティックロックの使用を避けるべきです。 例えばユーザがテキストフィールドの値を変更したにも関わらず保存するのを忘れてしまうと、データベースがロックされたままになってしまいます。 このような場合はオプティミスティックロックを使うかアプリケーションレベルでのチェックを考慮してください。
lockObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
EOEnterpriseObject.willChange()
,
EOFetchSpecification.setRefreshesRefetchedObjects(boolean)
,
locksObjectsBeforeFirstModification()
public void setMessageHandler(Object handler)
messageHandler()
,
EOEditingContext.MessageHandler
public void setPropagatesDeletesAtEndOfEvent(boolean propagatesDeletesAtEndOfEvent)
オブジェクトを削除待ちにしたとき、リレーションシップ先のオブジェクトも削除待ちにするか、変更の保存時に削除待ちにするかどうかを設定します。
true
を設定すると、オブジェクトを削除待ちにしたときにリレーションシップ先のオブジェクトもたどって削除待ちにします(デフォルトの処理です)。
false
を設定すると、saveChanges が実行されるまで削除処理は伝搬されません。
オブジェクトを削除するには deletObject で明示的に削除するか、リレーションシップ先を空にして暗黙的に削除する方法があります。 削除処理の伝搬とは、オブジェクトを削除したときにリレーションシップ先のオブジェクトも一緒に削除するようにすることです。 一緒に削除するオブジェクトは EOClassDescriptionオブジェクトから取得できる削除ルールに基づいて選択されます。 削除処理の伝搬が失敗すると(オブジェクトが削除拒否のルールを設定していたとき)、処理中の変更はすべてロールバックされます。
saveChanges()
,
deleteObject(com.webobjects.eocontrol.EOEnterpriseObject)
,
propagatesDeletesAtEndOfEvent()
public void setRetainsRegisteredObjects(boolean flag)(記述なし)
public void setSharedEditingContext(EOSharedEditingContext sharedEC)
デフォルトでは、編集コンテキストは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.
EOSharedEditingContext
,
EOSharedEditingContext.DefaultSharedEditingContextWasInitializedNotification
public void setStopsValidationAfterFirstError(boolean yn)
true
を、検証を続けるなら false
を返します。
stopsValidationAfterFirstError()
public static void setSubstitutionEditingContext(EOEditingContext ec)
代替編集コンテキストを使ってデシリアライズした後は、代替編集コンテキストを null に設定してデフォルトの挙動に戻す必要があります。
代替編集コンテキストは再度設定するまでグローバルに使われます。 EOFは代替編集コンテキストへのスレッドセーフなアクセスを保証しません。 同時に複数のスレッドで編集コンテキストをデシリアライズする場合は、その編集コンテキストが管理するオブジェクトをロックしておくべきです。
さらに詳しい情報は「Web Objects Frameworkのカスタムオブジェクトのアーカイブ」を参照してください。
substitutionEditingContext()
,
setUsesContextRelativeEncoding(boolean)
,
setDefaultParentObjectStore(com.webobjects.eocontrol.EOObjectStore)
,
Serializable
public void setUndoManager(NSUndoManager undoManager)
undoManager()
public static void setUsesContextRelativeEncoding(boolean flag)
さらに詳しい情報は「Web Objects Frameworkのカスタムオブジェクトのアーカイブ」を参照してください。
usesContextRelativeEncoding()
,
setSubstitutionEditingContext(com.webobjects.eocontrol.EOEditingContext)
,
setDefaultParentObjectStore(com.webobjects.eocontrol.EOObjectStore)
,
Serializable
public EOSharedEditingContext sharedEditingContext()
public boolean stopsValidationAfterFirstError()
true
を、検証を続けるなら false
を返します。
setStopsValidationAfterFirstError(boolean)
public static EOEditingContext substitutionEditingContext()
さらに詳しい情報は「Web Objects Frameworkのカスタムオブジェクトのアーカイブ」を参照してください。
setSubstitutionEditingContext(com.webobjects.eocontrol.EOEditingContext)
,
usesContextRelativeEncoding()
,
defaultParentObjectStore()
,
Serializable
public boolean tryLock()(記述なし)
public Throwable tryToSaveChanges()
public void undo()
redo()
,
editors()
,
revert()
public NSUndoManager undoManager()
setUndoManager(com.webobjects.foundation.NSUndoManager)
public void unlock()
unlock
in interface NSLocking
unlock
in class EOObjectStore
lock()
,
sharedEditingContext()
public void unlockObjectStore()(記述なし)
public NSArray updatedObjects()
deletedObjects()
,
insertedObjects()
public static boolean usesContextRelativeEncoding()
true
を返します。
さらに詳しい情報は「Web Objects Frameworkのカスタムオブジェクトのアーカイブ」を参照してください。
true
を返します。
setUsesContextRelativeEncoding(boolean)
,
substitutionEditingContext()
,
defaultParentObjectStore()
,
Serializable
|
Last updated Thu Oct 21 15:04:16 PDT 2004. | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |