|
Project Wonder 5.0 | |||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.webobjects.eocontrol.EOCustomObject
er.extensions.eof.ERXCustomObject
public class ERXCustomObject
This class contains a bunch of extensions to the
regular EOCustomObject
class. Of notable
interest it contains built in support for generating
primary keys via the ERXGeneratesPrimaryKeyInterface
,
support for an augmented transaction methods like
willUpdate
and didDelete
and a bunch
of handy utility methods like committedSnapshotValueForKey
. At the moment it is required that those wishing to take
advantage of templatized and localized validation exceptions
need to subclass this class. Hopefully in the future we can
get rid of this requirement.
Also, this class supports auto-updating of inverse relationships. You can
simply call eo.setFoo(other), eo.takeValueForKey(other),
eo.addObjectToBothSidesOfRelationshipWithKey(other, "foo")
or eo.addToFoos(other)
and the inverse relationship will get
updated for you automagically, so that you don't need to call
other.addToBars(eo)
or other.setBar(eo)
. Doing so doesn't hurt, though.
Giving a null
value of removing the object from a to-many will result in the inverse
relationship getting cleared.
This feature should greatly help readability and reduce the number errors you make when you
forget to update an inverse relationship. To turn this feature on, you must set the system default
er.extensions.ERXEnterpriseObject.updateInverseRelationships=true
.
Nested Class Summary | |
---|---|
static class |
ERXCustomObject.ERXCustomObjectClazz<T extends com.webobjects.eocontrol.EOEnterpriseObject>
Clazz object implementation for ERXCustomObject. |
Nested classes/interfaces inherited from class com.webobjects.eocontrol.EOCustomObject |
---|
com.webobjects.eocontrol.EOCustomObject._BooleanFieldBinding, com.webobjects.eocontrol.EOCustomObject._FieldBinding, com.webobjects.eocontrol.EOCustomObject._LazyFieldBinding, com.webobjects.eocontrol.EOCustomObject._NumberFieldBinding |
Nested classes/interfaces inherited from interface er.extensions.eof.ERXEnterpriseObject |
---|
ERXEnterpriseObject.Observer, ERXEnterpriseObject.Processor |
Nested classes/interfaces inherited from interface com.webobjects.eocontrol.EOKeyValueCodingAdditions |
---|
com.webobjects.eocontrol.EOKeyValueCodingAdditions.DefaultImplementation, com.webobjects.eocontrol.EOKeyValueCodingAdditions.Utility |
Nested classes/interfaces inherited from interface com.webobjects.eocontrol.EOKeyValueCoding |
---|
com.webobjects.eocontrol.EOKeyValueCoding._BestBindingCreation, com.webobjects.eocontrol.EOKeyValueCoding._KeyBindingCreation, com.webobjects.eocontrol.EOKeyValueCoding._StoredForwardingBinding |
Nested classes/interfaces inherited from interface com.webobjects.foundation.NSKeyValueCoding |
---|
com.webobjects.foundation.NSKeyValueCoding._BooleanFieldBinding, com.webobjects.foundation.NSKeyValueCoding._BooleanMethodBinding, com.webobjects.foundation.NSKeyValueCoding._FieldBinding, com.webobjects.foundation.NSKeyValueCoding._ForwardingBinding, com.webobjects.foundation.NSKeyValueCoding._KeyBinding, com.webobjects.foundation.NSKeyValueCoding._MethodBinding, com.webobjects.foundation.NSKeyValueCoding._NumberFieldBinding, com.webobjects.foundation.NSKeyValueCoding._NumberMethodBinding, com.webobjects.foundation.NSKeyValueCoding._ReflectionKeyBindingCreation, com.webobjects.foundation.NSKeyValueCoding.ErrorHandling, com.webobjects.foundation.NSKeyValueCoding.Null, com.webobjects.foundation.NSKeyValueCoding.UnknownKeyException, com.webobjects.foundation.NSKeyValueCoding.ValueAccessor |
Nested classes/interfaces inherited from interface com.webobjects.foundation.NSValidation |
---|
com.webobjects.foundation.NSValidation._MethodBinding, com.webobjects.foundation.NSValidation._ValidationBinding, com.webobjects.foundation.NSValidation.ValidationException |
Nested classes/interfaces inherited from interface com.webobjects.eocontrol._EOPrivateMemento |
---|
com.webobjects.eocontrol._EOPrivateMemento.DefaultImplementation |
Field Summary | |
---|---|
protected java.lang.String |
_primaryKey
|
java.lang.String |
insertionStackTrace
|
protected boolean |
wasInitialized
|
Fields inherited from class com.webobjects.eocontrol.EOCustomObject |
---|
_CLASS |
Fields inherited from interface com.webobjects.eocontrol.EOEnterpriseObject |
---|
_CLASS |
Fields inherited from interface com.webobjects.foundation.NSKeyValueCodingAdditions |
---|
_KeyPathSeparatorChar, KeyPathSeparator |
Fields inherited from interface com.webobjects.foundation.NSKeyValueCoding |
---|
NullValue |
Constructor Summary | |
---|---|
ERXCustomObject()
|
Method Summary | |
---|---|
boolean |
_setUpdateInverseRelationships(boolean newValue)
Toggles whether or not inverse relationships should be updates. |
void |
addObjectsToBothSidesOfRelationshipWithKey(com.webobjects.foundation.NSArray objects,
java.lang.String key)
Adds a collection of objects to a given relationship by calling addObjectToBothSidesOfRelationshipWithKey for all
objects in the collection. |
void |
addObjectToBothSidesOfRelationshipWithKey(com.webobjects.eocontrol.EORelationshipManipulation eo,
java.lang.String key)
Adds a check to make sure that both the object being added and this object are in the same editing context. |
void |
awakeFromClientUpdate(com.webobjects.eocontrol.EOEditingContext editingContext)
Checks the editing context delegate before calling super's implementation. |
void |
awakeFromFetch(com.webobjects.eocontrol.EOEditingContext editingContext)
Checks the editing context delegate before calling super's implementation. |
void |
awakeFromInsertion(com.webobjects.eocontrol.EOEditingContext editingContext)
Checks the editing context delegate before calling super's implementation. |
void |
batchCheckConsistency()
This method is very similar to the checkConsistency method
except that this method is only called from an outside process, usually
a batch process, to verify that the data this object holds is consistent. |
boolean |
canDelete()
Implementation of ERXGuardedObjectInterface . |
boolean |
canUpdate()
Implementation of ERXGuardedObjectInterface . |
com.webobjects.foundation.NSDictionary |
changesFromCommittedSnapshot()
Computes the current set of changes that this object has from the currently committed snapshot. |
void |
checkConsistency()
Debugging method that will be called on an object before it is saved to the database if the property key: ERDebuggingEnabled is enabled. |
java.lang.Object |
committedSnapshotValueForKey(java.lang.String key)
Determines what the value of the given key is in the committed snapshot |
void |
delete()
Implementation of ERXGuardedObjectInterface . |
java.lang.String |
description()
Cover method to return toString . |
void |
didDelete(com.webobjects.eocontrol.EOEditingContext ec)
Called on the object after is has been deleted. |
void |
didInsert()
Called on the object after is has successfully been inserted into the database. |
void |
didRevert(com.webobjects.eocontrol.EOEditingContext ec)
Called on the object after it has been reverted. |
void |
didUpdate()
Called on the object after is has successfully been updated in the database. |
java.lang.String |
encryptedPrimaryKey()
Takes the primary key of the object and encrypts it with the blowfish cipher using ERXCrypto . |
protected void |
excludeObjectFromPropertyWithKey(java.lang.Object o,
java.lang.String key)
Overridden to support two-way relationship setting. |
void |
flushCaches()
This is called when an object has had changes merged into it by the editing context. |
java.lang.Object |
foreignKeyForRelationshipWithKey(java.lang.String rel)
Returns the foreign key for a given relationship. |
org.apache.log4j.Logger |
getClassLog()
This methods checks if we already have created an Logger for this class If not, one will be created, stored and returned on next request. |
protected void |
includeObjectIntoPropertyWithKey(java.lang.Object o,
java.lang.String key)
Overridden to support two-way relationship setting. |
protected void |
init(com.webobjects.eocontrol.EOEditingContext ec)
used for initialization stuff instead of awakeFromInsertion. |
boolean |
isDeletedEO()
Determines if this object is a deleted object by checking to see if it is included in the deletedObjects array of the editing context or - if it's editing context is null - it already has a global id. |
boolean |
isNewEO()
Deprecated. use ERXGenericRecord#isNewObject |
boolean |
isNewObject()
Determines if this object is a new object and hasn't been saved to the database yet. |
com.webobjects.eocontrol.EOEnterpriseObject |
localInstanceIn(com.webobjects.eocontrol.EOEditingContext ec)
Returns this EO in the supplied editing context. |
com.webobjects.eocontrol.EOEnterpriseObject |
localInstanceOf(com.webobjects.eocontrol.EOEnterpriseObject eo)
Returns an EO in the same editing context as the caller. |
com.webobjects.foundation.NSArray |
localInstancesOf(com.webobjects.foundation.NSArray eos)
Returns an array of EOs in the same editing context as the caller. |
void |
mightDelete()
Called as part of the augmented transaction process. |
boolean |
parentObjectStoreIsObjectStoreCoordinator()
Simple method that will return if the parent object store of this object's editing context is an instance of EOObjectStoreCoordinator . |
java.lang.String |
primaryKey()
Primary key of the object as a String. |
com.webobjects.foundation.NSArray |
primaryKeyAttributeNames()
Returns the names of all primary key attributes. |
com.webobjects.foundation.NSDictionary |
primaryKeyDictionary(boolean inTransaction)
Implementation of the interface ERXGeneratesPrimaryKeyInterface . |
java.lang.String |
primaryKeyInTransaction()
Calling this method will return the primary key of the given enterprise object or if one has not been assigned to it yet, then it will have the adaptor channel generate one for it, cache it and then use that primary key when it is saved to the database. |
java.lang.Object |
rawPrimaryKey()
Gives the raw primary key of the object. |
java.lang.Object |
rawPrimaryKeyInTransaction()
Calling this method will return the primary key of the given enterprise object or if one has not been assigned to it yet, then it will have the adaptor channel generate one for it, cache it and then use that primary key when it is saved to the database. |
ERXEnterpriseObject |
refetchObjectFromDBinEditingContext(com.webobjects.eocontrol.EOEditingContext ec)
Method that will make sure to fetch an eo from the Database and place it in the editingContext provided as an argument |
void |
removeObjectsFromBothSidesOfRelationshipWithKey(com.webobjects.foundation.NSArray objects,
java.lang.String key)
Removes a collection of objects to a given relationship by calling removeObjectFromBothSidesOfRelationshipWithKey for all
objects in the collection. |
void |
removeObjectsFromPropertyWithKey(com.webobjects.foundation.NSArray objects,
java.lang.String key)
Removes a collection of objects to a given relationship by calling removeObjectFromPropertyWithKey for all
objects in the collection. |
ERXEnterpriseObject |
self()
self is usefull for directtoweb purposes |
static boolean |
shouldTrimSpaces()
|
void |
takeStoredValueForKey(java.lang.Object value,
java.lang.String key)
|
void |
takeValueForKey(java.lang.Object value,
java.lang.String key)
|
java.lang.String |
toLongString()
Returns the super classes implementation of toString which prints out the current key-value pairs for all of the attributes and relationships for the current object. |
java.lang.String |
toString()
Overrides the EOGenericRecord's implementation to provide a slightly less verbose output. |
void |
trimSpaces()
This method will trim the leading and trailing white space from any attributes that are mapped to a String object. |
static boolean |
usesDeferredFaultCreation()
|
void |
validateForDelete()
Calls up validateForUpdate() on the class description if it supports it. |
void |
validateForInsert()
Calls up validateForInsert() on the class description if it supports it. |
void |
validateForSave()
This method performs a few checks before invoking super's implementation. |
void |
validateForUpdate()
Calls up validateForUpdate() on the class description if it supports it. |
java.lang.Object |
validateValueForKey(java.lang.Object value,
java.lang.String key)
Overrides the default validation mechanisms to provide a few checks before invoking super's implementation, which incidently just invokes validateValueForKey on the object's class description. |
void |
willDelete()
Called as part of the augmented transaction process. |
void |
willInsert()
Called as part of the augmented transaction process. |
void |
willRevert()
Called on the object before it will be reverted. |
void |
willUpdate()
Called as part of the augmented transaction process. |
Methods inherited from class com.webobjects.eocontrol.EOCustomObject |
---|
__classDescription, __clearPendingChanges, __editingContext, __globalID, __hasAuxillaryObservers, __hasPendingChanges, __hasPendingUpdate, __isInitialized, __isPendingDeletion, __isPendingInsertion, __isShared, __lastSnapshot, __originalSnapshot, __retainCount, __setAuxillaryObservers, __setClassDescription, __setEditingContext, __setGlobalID, __setInitialized, __setLastSnapshot, __setOriginalSnapshot, __setPendingDeletion, __setPendingInsertion, __setPendingUpdate, __setRetainCount, __setShared, _createKeyGetBindingForKey, _createKeySetBindingForKey, _createStoredKeyGetBindingForKey, _createStoredKeySetBindingForKey, _fieldKeyBinding, _forwardingBindingNeededForClass, _keyGetBindingForKey, _keySetBindingForKey, _methodKeyGetBinding, _methodKeySetBinding, _otherStorageBinding, _storedKeyGetBindingForKey, _storedKeySetBindingForKey, addObjectToPropertyWithKey, allPropertyKeys, attributeKeys, canAccessFieldsDirectly, changesFromSnapshot, classDescription, classDescriptionForDestinationKey, clearFault, clearProperties, deleteRuleForRelationshipKey, editingContext, entityName, eoDescription, eoShallowDescription, equals, faultHandler, handleQueryWithUnboundKey, handleTakeValueForUnboundKey, hashCode, inverseForRelationshipKey, invokeRemoteMethod, isFault, isToManyKey, opaqueState, ownsDestinationObjectsForRelationshipKey, prepareValuesForClient, propagateDeleteWithEditingContext, readResolve, reapplyChangesFromDictionary, removeObjectFromBothSidesOfRelationshipWithKey, removeObjectFromPropertyWithKey, shouldUseStoredAccessors, snapshot, storedValueForKey, takeValueForKeyPath, takeValuesFromDictionary, takeValuesFromDictionaryWithMapping, toManyRelationshipKeys, toOneRelationshipKeys, turnIntoFault, unableToSetNullForKey, updateFromSnapshot, userPresentableDescription, validateClientUpdate, validateTakeValueForKeyPath, valueForKey, valueForKeyPath, valuesForKeys, valuesForKeysWithMapping, willChange, willRead, willReadRelationship |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.webobjects.eocontrol.EOEnterpriseObject |
---|
allPropertyKeys, attributeKeys, changesFromSnapshot, classDescription, classDescriptionForDestinationKey, clearProperties, deleteRuleForRelationshipKey, editingContext, entityName, eoDescription, eoShallowDescription, inverseForRelationshipKey, invokeRemoteMethod, isToManyKey, opaqueState, ownsDestinationObjectsForRelationshipKey, prepareValuesForClient, propagateDeleteWithEditingContext, reapplyChangesFromDictionary, snapshot, toManyRelationshipKeys, toOneRelationshipKeys, updateFromSnapshot, userPresentableDescription, willChange |
Methods inherited from interface com.webobjects.eocontrol.EOKeyValueCodingAdditions |
---|
takeValuesFromDictionary, takeValuesFromDictionaryWithMapping, valuesForKeys, valuesForKeysWithMapping |
Methods inherited from interface com.webobjects.foundation.NSKeyValueCodingAdditions |
---|
takeValueForKeyPath, valueForKeyPath |
Methods inherited from interface com.webobjects.eocontrol.EOKeyValueCoding |
---|
storedValueForKey |
Methods inherited from interface com.webobjects.foundation.NSKeyValueCoding |
---|
valueForKey |
Methods inherited from interface com.webobjects.foundation.NSKeyValueCoding.ErrorHandling |
---|
handleQueryWithUnboundKey, handleTakeValueForUnboundKey, unableToSetNullForKey |
Methods inherited from interface com.webobjects.eocontrol.EORelationshipManipulation |
---|
addObjectToPropertyWithKey, removeObjectFromBothSidesOfRelationshipWithKey, removeObjectFromPropertyWithKey |
Methods inherited from interface com.webobjects.eocontrol.EOValidation |
---|
validateClientUpdate |
Methods inherited from interface com.webobjects.foundation.NSValidation |
---|
validateTakeValueForKeyPath |
Methods inherited from interface com.webobjects.eocontrol.EODeferredFaulting |
---|
willReadRelationship |
Methods inherited from interface com.webobjects.eocontrol.EOFaulting |
---|
clearFault, faultHandler, isFault, turnIntoFault, willRead |
Field Detail |
---|
public java.lang.String insertionStackTrace
protected boolean wasInitialized
protected java.lang.String _primaryKey
Constructor Detail |
---|
public ERXCustomObject()
Method Detail |
---|
public static boolean shouldTrimSpaces()
public boolean _setUpdateInverseRelationships(boolean newValue)
ERXEnterpriseObject
_setUpdateInverseRelationships
in interface ERXEnterpriseObject
newValue
- whether or not inverse relationships should be updated
public org.apache.log4j.Logger getClassLog()
ERXEnterpriseObject
getClassLog
in interface ERXEnterpriseObject
Logger
for this objects classpublic ERXEnterpriseObject self()
ERXEnterpriseObject
self
in interface ERXEnterpriseObject
public boolean canDelete()
ERXGuardedObjectInterface
. This is checked
before the object is deleted in the willDelete
method
which is in turn called by ERXEditingContextDelegate
. The default
implementation returns true
.
canDelete
in interface ERXGuardedObjectInterface
public boolean canUpdate()
ERXGuardedObjectInterface
. This is checked
before the object is deleted in the willUpdate
method
which is in turn called by ERXEditingContextDelegate
. The default
implementation returns true
.
canUpdate
in interface ERXGuardedObjectInterface
public void delete()
ERXGuardedObjectInterface
.
This is used to work around a bug in EOF that doesn't refresh the relationship in the parent
editingContext for the object.
delete
in interface ERXGuardedObjectInterface
public void mightDelete()
ERXEnterpriseObject
mightDelete
in interface ERXEnterpriseObject
public void willDelete() throws com.webobjects.foundation.NSValidation.ValidationException
ERXEnterpriseObject
validateForDelete
is called on this
object. This method is called by the editing context
delegate ERXDefaultEditingContextDelegate
.
willDelete
in interface ERXEnterpriseObject
NSValidation.ValidationException
- to stop the object
from being deleted.public void willInsert()
ERXEnterpriseObject
validateForInsert
is called on this
object. This method is called by the editing context
delegate ERXDefaultEditingContextDelegate
.
willInsert
in interface ERXEnterpriseObject
public void willUpdate()
ERXEnterpriseObject
validateForSave
is called on this
object. This method is called by the editing context
delegate ERXDefaultEditingContextDelegate
.
willUpdate
in interface ERXEnterpriseObject
public void flushCaches()
ERXEnterpriseObject
ERXDefaultEditingContextDelegate
after it merges changes. Any caches that an object
keeps based on any of it's values it should flush.
The default implementation of this method does
nothing.
flushCaches
in interface ERXEnterpriseObject
public void didDelete(com.webobjects.eocontrol.EOEditingContext ec)
ERXEnterpriseObject
ec
is a child context when doing something here that
can't be undone.
didDelete
in interface ERXEnterpriseObject
ec
- editing context that used to be associated
with the object.public void didUpdate()
ERXEnterpriseObject
didUpdate
in interface ERXEnterpriseObject
public void didInsert()
ERXEnterpriseObject
didInsert
in interface ERXEnterpriseObject
public void willRevert()
ERXEnterpriseObject
willRevert
in interface ERXEnterpriseObject
public void didRevert(com.webobjects.eocontrol.EOEditingContext ec)
ERXEnterpriseObject
flushCaches
.
didRevert
in interface ERXEnterpriseObject
ec
- editing context that is either currently associated
with the object if the object was marked as changed or deleted before
the revert, otherwise the editing context that was associated with the object
before the revert.public void addObjectsToBothSidesOfRelationshipWithKey(com.webobjects.foundation.NSArray objects, java.lang.String key)
ERXEnterpriseObject
addObjectToBothSidesOfRelationshipWithKey
for all
objects in the collection.
addObjectsToBothSidesOfRelationshipWithKey
in interface ERXEnterpriseObject
objects
- objects to add to both sides of the given relationshipkey
- relationship keypublic void removeObjectsFromBothSidesOfRelationshipWithKey(com.webobjects.foundation.NSArray objects, java.lang.String key)
ERXEnterpriseObject
removeObjectFromBothSidesOfRelationshipWithKey
for all
objects in the collection.
removeObjectsFromBothSidesOfRelationshipWithKey
in interface ERXEnterpriseObject
objects
- objects to be removed from both sides of the given relationshipkey
- relationship keypublic void removeObjectsFromPropertyWithKey(com.webobjects.foundation.NSArray objects, java.lang.String key)
ERXEnterpriseObject
removeObjectFromPropertyWithKey
for all
objects in the collection.
removeObjectsFromPropertyWithKey
in interface ERXEnterpriseObject
objects
- objects to be removed from both sides of the given relationshipkey
- relationship keypublic void awakeFromClientUpdate(com.webobjects.eocontrol.EOEditingContext editingContext)
_checkEditingContextDelegate
for an explanation
as to what this check does.
awakeFromClientUpdate
in interface com.webobjects.eocontrol.EOEnterpriseObject
awakeFromClientUpdate
in class com.webobjects.eocontrol.EOCustomObject
editingContext
- to be checked to make sure it has the
correct type of delegate set.public void awakeFromInsertion(com.webobjects.eocontrol.EOEditingContext editingContext)
_checkEditingContextDelegate
for an explanation
as to what this check does.
awakeFromInsertion
in interface com.webobjects.eocontrol.EOEnterpriseObject
awakeFromInsertion
in class com.webobjects.eocontrol.EOCustomObject
editingContext
- to be checked to make sure it has the
correct type of delegate set.protected void init(com.webobjects.eocontrol.EOEditingContext ec)
awakeFromInsertions
is buggy because if an EO is
deleted and then its EOEditingContext is reverted using 'revert'
for example then EOF will -insert- this EO again in its EOEditingContext
which in turn calls awakeFromInsertion again.
ec
- the EOEditingContext in which this new EO is insertedpublic void awakeFromFetch(com.webobjects.eocontrol.EOEditingContext editingContext)
_checkEditingContextDelegate
for an explanation
as to what this check does.
awakeFromFetch
in interface com.webobjects.eocontrol.EOEnterpriseObject
awakeFromFetch
in class com.webobjects.eocontrol.EOCustomObject
editingContext
- to be checked to make sure it has the
correct type of delegate set.public void addObjectToBothSidesOfRelationshipWithKey(com.webobjects.eocontrol.EORelationshipManipulation eo, java.lang.String key)
addObjectToBothSidesOfRelationshipWithKey
in interface com.webobjects.eocontrol.EORelationshipManipulation
addObjectToBothSidesOfRelationshipWithKey
in class com.webobjects.eocontrol.EOCustomObject
eo
- enterprise object to be added to the relationshipkey
- relationship to add the object to.public java.lang.String primaryKey()
ERXEnterpriseObject
primaryKey
in interface ERXEnterpriseObject
public java.lang.Object rawPrimaryKeyInTransaction()
ERXEnterpriseObject
rawPrimaryKey
.
rawPrimaryKeyInTransaction
in interface ERXEnterpriseObject
public java.lang.String primaryKeyInTransaction()
ERXEnterpriseObject
primaryKey
.
primaryKeyInTransaction
in interface ERXEnterpriseObject
public java.lang.Object rawPrimaryKey()
ERXEnterpriseObject
rawPrimaryKey
in interface ERXEnterpriseObject
public java.lang.String encryptedPrimaryKey()
ERXEnterpriseObject
ERXCrypto
.
encryptedPrimaryKey
in interface ERXEnterpriseObject
public java.lang.Object foreignKeyForRelationshipWithKey(java.lang.String rel)
ERXEnterpriseObject
foreignKeyForRelationshipWithKey
in interface ERXEnterpriseObject
rel
- relationship key
public com.webobjects.foundation.NSArray primaryKeyAttributeNames()
ERXEnterpriseObject
primaryKeyAttributeNames
in interface ERXEnterpriseObject
public com.webobjects.foundation.NSDictionary primaryKeyDictionary(boolean inTransaction)
ERXGeneratesPrimaryKeyInterface
.
This implementation operates in the following fashion. If it is called
passing in 'false' and it has not yet been saved to the database, meaning
this object does not yet have a primary key assigned, then it will have the
adaptor channel generate a primary key for it. Then when the object is saved
to the database it will use the previously generated primary key instead of
having the adaptor channel generate another primary key. If 'true' is passed in
then this method will either return the previously generated primaryKey
dictionary or null if it does not have one. Typically you should only call
this method with the 'false' parameter seeing as unless you are doing something
really funky you won't be dealing with this object when it is in the middle of
a transaction. The delegate ERXDatabaseContextDelegate
is the only class
that should be calling this method and passing in 'true'.
primaryKeyDictionary
in interface ERXGeneratesPrimaryKeyInterface
inTransaction
- boolean flag to tell the object if it is currently in the
middle of a transaction.
public java.lang.Object committedSnapshotValueForKey(java.lang.String key)
ERXEnterpriseObject
committedSnapshotValueForKey
in interface ERXEnterpriseObject
key
- to be checked in committed snapshot
public com.webobjects.eocontrol.EOEnterpriseObject localInstanceOf(com.webobjects.eocontrol.EOEnterpriseObject eo)
ERXEnterpriseObject
localInstanceOf
in interface ERXEnterpriseObject
public com.webobjects.eocontrol.EOEnterpriseObject localInstanceIn(com.webobjects.eocontrol.EOEditingContext ec)
ERXEnterpriseObject
localInstanceIn
in interface ERXEnterpriseObject
public com.webobjects.foundation.NSArray localInstancesOf(com.webobjects.foundation.NSArray eos)
ERXEnterpriseObject
localInstancesOf
in interface ERXEnterpriseObject
public com.webobjects.foundation.NSDictionary changesFromCommittedSnapshot()
ERXEnterpriseObject
changesFromCommittedSnapshot
in interface ERXEnterpriseObject
public boolean parentObjectStoreIsObjectStoreCoordinator()
ERXEnterpriseObject
EOObjectStoreCoordinator
. The reason this is important
is because if this condition evaluates to true then when changes are saved in this
editing context they will be propagated to the database.
parentObjectStoreIsObjectStoreCoordinator
in interface ERXEnterpriseObject
public ERXEnterpriseObject refetchObjectFromDBinEditingContext(com.webobjects.eocontrol.EOEditingContext ec)
ERXEnterpriseObject
refetchObjectFromDBinEditingContext
in interface ERXEnterpriseObject
ec
- the editing context in which the result will be placed
public java.lang.String toString()
toLongString
. To restore the original
verbose logging in your subclasses override this method and
return toLongString.
toString
in class com.webobjects.eocontrol.EOCustomObject
public java.lang.String description()
ERXEnterpriseObject
toString
.
description
in interface ERXEnterpriseObject
public java.lang.String toLongString()
ERXEnterpriseObject
toLongString
in interface ERXEnterpriseObject
toString
.public void trimSpaces()
ERXEnterpriseObject
trimSpaces
in interface ERXEnterpriseObject
public boolean isDeletedEO()
ERXEnterpriseObject
isDeletedEO
in interface ERXEnterpriseObject
public boolean isNewEO()
ERXGenericRecord#isNewObject
public boolean isNewObject()
ERXEnterpriseObject
isNewObject
in interface ERXEnterpriseObject
public java.lang.Object validateValueForKey(java.lang.Object value, java.lang.String key) throws com.webobjects.foundation.NSValidation.ValidationException
ERXEntityClassDescription
or subclass.
It is that class that provides the hooks to convert model
throw validation exceptions into ERXValidationException
objects.
validateValueForKey
in interface com.webobjects.foundation.NSValidation
validateValueForKey
in class com.webobjects.eocontrol.EOCustomObject
value
- to be validated for a given attribute or relationshipkey
- corresponding to an attribute or relationship
NSValidation.ValidationException
- if the value fails validationpublic void validateForSave() throws com.webobjects.foundation.NSValidation.ValidationException
checkConsistency
will be called on this object.
validateForSave
in interface com.webobjects.eocontrol.EOValidation
validateForSave
in class com.webobjects.eocontrol.EOCustomObject
NSValidation.ValidationException
- if the object does not
pass validation for saving to the database.public void validateForInsert() throws com.webobjects.foundation.NSValidation.ValidationException
validateForInsert
in interface com.webobjects.eocontrol.EOValidation
validateForInsert
in class com.webobjects.eocontrol.EOCustomObject
NSValidation.ValidationException
- if the object does not
pass validation for saving to the database.public void validateForUpdate() throws com.webobjects.foundation.NSValidation.ValidationException
validateForUpdate
in interface com.webobjects.eocontrol.EOValidation
validateForUpdate
in class com.webobjects.eocontrol.EOCustomObject
NSValidation.ValidationException
- if the object does not
pass validation for saving to the database.public void validateForDelete() throws com.webobjects.foundation.NSValidation.ValidationException
validateForDelete
in interface com.webobjects.eocontrol.EOValidation
validateForDelete
in class com.webobjects.eocontrol.EOCustomObject
NSValidation.ValidationException
- if the object does not
pass validation for saving to the database.public void checkConsistency() throws com.webobjects.foundation.NSValidation.ValidationException
ERXEnterpriseObject
checkConsistency
in interface ERXEnterpriseObject
NSValidation.ValidationException
- if the object is not consistentpublic void batchCheckConsistency() throws com.webobjects.foundation.NSValidation.ValidationException
ERXEnterpriseObject
checkConsistency
method
except that this method is only called from an outside process, usually
a batch process, to verify that the data this object holds is consistent.
JUnit tests are great for testing that all of the methods of a single
object function correctly, batch checking of consistency is a good way
of checking that all of the data in a given database is consistent. Hopefully
in the future we will add a batch check consistency application to demonstrate
the use of this method.
batchCheckConsistency
in interface ERXEnterpriseObject
NSValidation.ValidationException
- if the object fails consistencyprotected void includeObjectIntoPropertyWithKey(java.lang.Object o, java.lang.String key)
includeObjectIntoPropertyWithKey
in class com.webobjects.eocontrol.EOCustomObject
protected void excludeObjectFromPropertyWithKey(java.lang.Object o, java.lang.String key)
excludeObjectFromPropertyWithKey
in class com.webobjects.eocontrol.EOCustomObject
public void takeValueForKey(java.lang.Object value, java.lang.String key)
takeValueForKey
in interface com.webobjects.foundation.NSKeyValueCoding
takeValueForKey
in class com.webobjects.eocontrol.EOCustomObject
public void takeStoredValueForKey(java.lang.Object value, java.lang.String key)
takeStoredValueForKey
in interface com.webobjects.eocontrol.EOKeyValueCoding
takeStoredValueForKey
in class com.webobjects.eocontrol.EOCustomObject
public static boolean usesDeferredFaultCreation()
|
Last updated: Tue, Feb 21, 2017 05:45 PM CET | |||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |