2005-02-16 David Ayers * EOControl/EOClassDescription.m ([NSObject-snapshot]): Return valid dictionary for EONull. * EOControl/EONSAddOns.h/m ([NSString-hasShellPatternCharacter]): Remove. * EOControl/EOPriv.h/m (GDL2_shellPatternCharacterSet): Remove. (GDL2PrivInit): Remove usage of GDL2_shellPatternCharacterSet. * EOControl/EOMutableKnownKeyDictionary.m ([EOMKKDInitializer-arrayMappingForKeys:]): Correct call to GDL2ObjectAtIndexWithImp. ([EOMKKDInitializer-subsetMappingForSourceDictionaryInitializer: sourceKeys:destinationKeys:]): Ditto. 2005-02-15 David Ayers * EOAccess/EOAttribute.h/m (EOAdaptorUnknownType): Remove. (protoOverride): Increase range. (isAttributeValueInitialized): New flag. (extraRefCount): Make standalone instance variable. (setValueClassName:): Use isAttributeValueInitialized flag instead of EOAdaptorUnknownType. (adaptorValueType): Use isAttributeValueInitialized flag instead of EOAdaptorUnknownType. * EOAdaptors/Postgres95/Postgres95Values.m (newValueForBytes:length:attribute:): Remove reference to EOAdaptorUnknownType. * EOAdaptors/Postgres95/Postgres95SQLExpression.m (externalNameQuoteCharacter): Remove. 2005-02-14 David Ayers * EOAccess/EOModel.m (-writeToFile:): Clairfy documentation about setting receivers name and path. * EOControl/EOCheapArray.h/m (-initWithArray:): Correct signature and only initialize instance variable if call to super init was successfull. (-shallowCopy): Correct signature. * EOControl/EOClassDescription.m (-dictionaryForInstanceProperties): Remove casts. ([NSObject-shallowCopy], [NSObject-snapshot]) ([NSObject-updateFromSnapshot:]): Ditto. ([NSObject-validateValue:forKey:]): Correct key determination and use GSSelectorFromName instead of sel_get_any_uid. ([NSObject-addObject:toPropertyWithKey:]): Use GSSelectorFromName instead of sel_get_any_uid. Minor optimization. ([NSObject-removeObject:fromPropertyWithKey:]): Ditto. * EOControl/EOEditingContext.h/m (_objectBasedChangeInfoForGIDInfo:) Only generate an entry for objects that the reciever actually maps. (-recordForGID:, -recordForObject:) Remove unused undocumented methods. (-updatedObjects, -insertedObjects, -deletedObjects): Reimplement. (-unprocessedObjects, -unprocessedInfo, -pendingInfo) (-hasUnprocessedChanges): Remove. * EOControl/EONull.h/m ([NSObject isEONull], [NSObject isNotEONull]) (isNilOrEONull): Remove. * EOControl/EOPriv.h (_isNilOrEONull): Make static inline function. 2005-02-13 Manuel Guesdon * EOControl/EOClassDescription.m: o use IMPs o avoid NSString build in -addObject:toPropertyWithKey: o avoid NSString build in -removeObject:fromPropertyWithKey: * EOAccess/EODatabaseContext.m: o added and use EODatabaseContext_globalIDForObjectWithImpPtr o use IMPs * EOAccess/EOEntity.m: o use IMPs * EOAccess/EOAttribute.m: o use IMPs o optimized -validateValue * EOAccess/EODatabaseContextPriv.h: o added EODatabaseContext_globalIDForObjectWithImpPtr * EOControl/EOPriv.[hm]: o added more helpers * EOControl/EOEditingContext.m: o use IMPs * EOControl/EOGenericRecord.m: o use IMPs in descriptions * EOAdaptors/Postgres95Values.m: o use GDL2StringDefaultCStringEncoding() in +newValueForCharactersType:length:attribute: * EOAdaptors/Postgres95Channel.m: o IMP optimizations * EOAdaptors/Postgres95Adaptor.m: o IMP optimizations 2005-02-11 Manuel Guesdon * EOAccess/EOAdaptor.m: o optimization in 'for' loops * EOAccess/EODatabase.m: o include o replaced isNilOrEONull() by _isNilOrEONull() * EOAccess/EODatabaseContext.h: o added _snapshotForGlobalIDIMP * EOAccess/EODatabaseContext.m: o commented NSEmitTODO in -objectsForSourceGlobalID:relationshipName:editingContext: o added beter exception format in qualifierForLockingAttributes:primaryKeyAttributes:entity:snapshot: o fix compiler warning in -relayPrimaryKey:object:entity: o logs o optimizations in -objectsWithFetchSpecification:editingContext: o replaced isNilOrEONull() by _isNilOrEONull() o replace [EOFault isFault:] by _isFault() o use _snapshotForGlobalIDIMP o IMP usage optimization * EOAccess/EOAttribute.[hm]: o added EOAdaptorUnknownType o added _adaptorValueType and avoid recomputing it each time o added _valueTypeChar to avoid string comparaisons o use EOPriv classes declarations o Temporary reverted David changes in -adaptorValueByConvertingAttributeValue * EOAccess/EOAttributePriv.h: o added _valueTypeChar to avoid string comparaisons * EOAccess/EOEntityPriv.h: o moved -attributeForPath: and -relationshipForPath: to EOEntityGDL2Additions category * EOAccess/EOEntity.h: o moved private -attributeForPath: and -relationshipForPath: to EOEntityGDL2Additions category * EOAccess/EOEntity.m: o better exception in classProperties o fix compiler warning in -setClassProperties:, -setPrimaryKeyAttributes:, -setAttributesUsedForLocking: o moved -attributeForPath: and -relationshipForPath: to EOEntityGDL2Additions category o include o replaced [EONull null] by GDL2EONull * EOAccess/EOSQLExpression.m: o optimization in -tableListWithRootEntity: o optimization in -formatSQLString:format: o optimization in +sqlPatternFromShellPattern: o optimization in +sqlPatternFromShellPattern:withEscapeCharacter: o fix in -sqlStringForKeyValueQualifier: o added log in -sqlStringForKeyValueQualifier: for not handled readFormat o added log -addInsertListAttribute:value: for not handled writeFormat o added log -addUpdateListAttribute:value: for not handled writeFormat o changed EOFLOGObjectFnStart to EOFLOGObjectFnStartCond o changed EOFLOGObjectFnStop to EOFLOGObjectFnStopCond o include o replaced [EONull null] by GDL2EONull * EOAccess/EOSQLQualifier.m: o implemented EOKeyComparisonQualifier -schemaBasedQualifierWithRootEntity * EOAccess/EOUtilities.m: o include o replaced [EONull null] by GDL2EONull * EOControl/EOPriv.[hm]: o added. Contains various classes/selectors/IMPs * EOControl/EOClassDescription.m: o handle EONull case in -propagateDeleteForObject:editingContext:, -addObject:toPropertyWithKey:, -snapshot, -removeObject:fromPropertyWithKey:, _setObject:forBothSidesOfRelationshipWithKey:, addObject:toBothSidesOfRelationshipWithKey:, -removeObject:fromBothSidesOfRelationshipWithKey: o fix compiler warning in -dictionaryForInstanceProperties, -shallowCopy, -updateFromSnapshot:, -snapshot o include o replaced [EONull null] by GDL2EONull o replaced isNilOrEONull() by _isNilOrEONull() o fix in -validateForSave o rewritten -validateValue:forKey: selector build * EOControl/EOEditingContext.h: o added -hasUnprocessedChanges * EOControl/EOEditingContext.m: o added -hasUnprocessedChanges o added NS_DURING,... to catch exceptions o replace [EOFault isFault:] by _isFault() o IMP usage optimization * EOControl/EOKeyGlobalID.m: o replaced isNilOrEONull() by _isNilOrEONull() o include * EOControl/EOGenericRecord.m: o partially rewritten -description o include o replaced isNilOrEONull() by _isNilOrEONull() o replace [EOFault isFault:] by _isFault() o changed variable name type of _infoForInstanceVariableNamed:retType:retSize:retOffset: o rewritten valueForKey:,... to use cString NSKeyValueCoding * EOControl/EOKeyValueCoding.m: o changed NSAssert in NSArray -valueForKey: o optimization in NSDictionary -takeValue:forKeyPath:isSmart: o optimization in NSDictionary -takeStoredValue:forKeyPath: o include o replaced [EONull null] by GDL2EONull o include * EOControl/EOKeyValueQualifier.m: o fixes for EONull/nil in -evaluateWithObject: o replaced [EONull null] by GDL2EONull o include * EOControl/EOSortOrdering.m: o include o replaced [EONull null] by GDL2EONull * EOAdaptors/Postgres95SQLExpression.m: o float formatting in +formatValue:forAttribute: o added -externalNameQuoteCharacter o added +sqlPatternFromShellPattern: o added +sqlPatternFromShellPattern:withEscapeCharacter: o replaced isNilOrEONull() by _isNilOrEONull() * EOAdaptors/Postgres95Channel.m: o logs * EOAdaptors/Postgres95Values.m: o logs o fix in +setPostgres95Format: o fix calendard format to handle timezone (%z) o optimizations * EOControl/EOMutableKnownKeyDictionary.m o removed EOMKKDArrayMapping +dictionaryFromDictionary:subsetMapping: o include o replaced isNilOrEONull() by _isNilOrEONull() * EOControl/EONSAddOns.[hm]: o added NSString(ShellPattern) 2005-02-10 David Ayers * EOControl/EOEditingContext.m (_globalIDChanged:): Make assert more accurate. (-_invalidatedAllObjectsInStore:): Implement. (+setUsesContextRelativeEncoding:): Implement. (+usesContextRelativeEncoding): Implement. (+initialize): Set default value of usesContextRelativeEncoding depending on whether we are a gsweb application. * EOControl/EOObjectStoreCoordinator.m (_invalidatedAllObjectsInSubStore:): Implement. 2005-02-08 Matt Rice * EOControl/EOEditingContext.m (-_globalIDChanged:): Add key to the snapshot dict before removing the temporary gid. Assert that the temporary gid and the new gid are not equal. 2005-02-08 David Ayers * EOAccess/EOModel.m (-init): Initialize _storedProcedures. (-storedProcedureNames): Simplify. (-storedProcedureNamed:): Reimplement. (-storedProcedures): Simplify. (-writeToFile:): Call _setPath: after preliminary testing. Write stored procedures. (-initWithTableOfContentsPropertyList:path:): Reimplement stored procedure handling. (-encodeTableOfContentsIntoPropertyList:): Handle stored procedures. (-encodeIntoPropertyList:): Fix encoding title for stored procedures. (-addStoredProcedure:, -removeStoredProcedure:) Make more thread safe. (-loadAllModelObjects): Implement. * EOAccess/EOStoredProcedure.m (-initWithPropertyList:): Call awakeWithPropertyList: to finish initialization. (-encodeIntoPropertyList:): Implement. (-description): Implement. (-_setIsEdited): Implement. * EOControl/EOEditingContext.m (-_objectBasedChangeInfoForGIDInfo:): Make a little more gdb friendly. 2005-02-07 Matt Rice * EOControl/EOObjectStore.m: Assign correct key names for EOUpdatedKey, EOInsertedKey, EODeletedKey, EOInvalidatedKey. * EOAccess/EODatabaseContext.m (-_objectsChanged:, -commitChanges): Use EOUpdatedKey, EOInsertedKey, EODeletedKey, EOInvalidatedKey, instead of hard coded keys. * EOControl/EOEditingContext.m (-didSaveChanges, pendingInfo): Ditto. 2005-02-03 David Ayers * EOAccess/EODatabaseContext.h/m:(_numLocked): Removed. (_lockedObjects): Use hash table instead of plain memory. (-_registerDatabaseContext:) Only attempt to retrieve entities with valid names. (-dealloc): Update _lockedObjects usage. (-lockObjectWithGlobalID:editingContext:): Inialize local variable. Fire fault if necessary to obtain snapshot and raise upon failure. (-registerLockedObjectWithGlobalID:): Use new hash table. (-isObjectLockedWithGlobalID:): Ditto. (-_cleanUpAfterSave): Ditto. (-invalidateAllObjects): Call -invalidateResultCache and make more gdb friendly. (-invalidateObjectsWithGlobalIDs:): Call forgetSnapshotsForGlobalIDs: on self instead of the _database. (-commitChanges): Execute the commit if a transaction is open to insure held locks are freed server side. (-snapshotForGlobalID): Move implementation to ... (-snapshotForGlobalID:after:): ... here and call this version in the _database. (-forgetSnapshotsForGlobalIDs:): Implement. (-forgetAllLocks): Ditto. (-forgetLocksForObjectsWithGlobalIDs:) Ditto. * EOAccess/EODatabaseDataSource.m (-insertObject): Do not insert object into the editing context. * EOAdaptors/Postgres95/Postgres95Adaptor.m (externalTypeNames): Add new types. * EOControl/EOEditingContext.h (_objectsById): Rename to _globalIDsByObject. (ignoreSharedContextNotifications, isSharedContextLocked): Added. (_sharedContext, fetchTimestamp): Ditto. (-_insertObject:withGlobalID:, -_observeUndoManagerNotifications) (-_processDeletedObjects) (-_processOwnedObjectsUsingChangeTable:deleteTable:) (-_registerClearStateWithUndoManager): Remove public declarations of private methods. (-didMergeChangedObjectsInEditingContext:) Rename to -editingContextDidMergeChanges:. * EOControl/EOEditingContext.m: Update header dependencies. Declare private methods locally. (EOThreadSafeQueue): New local class. (null, EOEditingContextClass, EOAssociationClass) (ecDeallocHT, assocDeallocHT): New static local variables. (EOConstObject, EOConstChanges, EOConstKey, EOConstValue) (EOConstAdd, EOConstDel): Added experimental variables. (_mergeValueForKey): New function. (-_mergeObject:withChanges:): Implement. (-_objectBasedChangeInfoForGIDInfo:): Ditto. (-_processObjectStoreChanges:): Implement. (-_objectsChangedInStore:): Reimplement. (-_changesFromInvalidatingObjectsWithGlobalIDs:): Implement. (-_uncommittedChangesForObject:fromSnapshot:): Implement. (-_mutableSetFromToManyArray:): Implement. (-_globalIDChanged:): Reimplement. (-_processNotificationQueue): Implement. (-_sendOrEnqueueNotification:selector:): Implement. (-invalidateAllObjects): Reimplement. (-_forgetObjectWithGlobalID:): Implement. (-_invalidateObject:withGlobalID:) Implement. (-_invalidateObjectWithGlobalID:) Implement. (-_invalidateObjectsWithGlobalIDs:) Implement. (-invalidateObjectsWithGlobalIDs:) Reimplement. (-_resetAllChanges:): Implement. (-_resetAllChanges): Implement. (-_enqueueEndOfEventNotification): Reimplement. (-_processEndOfEventNotification): Reimplement. (-noop:): Implement. (-_undoManagerCheckpoint:): Remove TODO. (-processRecentChanges): Ditto. (-_processRecentChanges:): Reimplement. (-_clearChangedThisTransaction:): Implement. (+initialize): Initialize some static variables. (+objectDeallocated:): Implemented. (_objectsById): Update usages with _globalIDsByObject. Do not retain objects but rely on new objectDeallocated: mechanism. (-initWithParentObjectStore:): Initialize undo manager. (-init): Make more gdb friendly. (-insertObject:): Use standard autorelease macro. (-_insertObject:withGlobalID:) Always insert the a new object into the inserted objects independent of previous GID mappings. (-hasChanges): Also check unprocessed changes. (-revert): Enable undo manager handling. (-objectWillChange:): Register for revert. (-recordObject:globalID:): Initialize ecDeallocHT and insert objects that are registered. (-forgetObject:): Remove objects from ecDeallocHT. ([NSObject-dealloc]): Added hack to automagically deregister objects fromm the editing context and association mappings. * EOControl/EOFetchSpecification.h/m (allVariablesRequiredFromBindings): Rename to requiresAllQualifierBindingVariables. (-setRequiresAllQualifierBindingVariables:) (-requiresAllQualifierBindingVariables): Implement. (-setAllVariablesRequiredFromBindings:) (-allVariablesRequiredFromBindings): Deprecate. Update various setter methods to make them promotion safe. * EOControl/EOObjectStoreCoordinator.m (requestStoreForGlobalID:fetchSpecification:object): Add all information to the notfication. (-invalidateObjectsWithGlobalIDs:): Reimplement via map table. (-lockObjectWithGlobalID:editingContext:): Implement. (-isObjectLockedWithGlobalID:editingContext:): Implement. * EOControl/EOObserver.m (+addObserver:forObject:): Cairify documentation. 2005-02-02 Matt Rice * EOAccess/EOEntity.m (-setName:): Validate the new name and remove the checks from here. (-validateName): Don't check if an attribute or a relationship with the name exist. Check if an entity of the same name exists. Return an exception with a valid reason in all cases. * EOAccess/EOAttribute.m (validateName): Return an exception with a valid reason in all cases. Don't check if a relationship with the name exists. * EOAccess/EOAttribute.m (validateName): Return an exception with a valid reason in all cases. Don't check if a attribute with the name exists. 2005-01-27 David Ayers * EOAccess/EODatabase.h/m:(EODistantPastTimeInterval): Added global variable. (snapshotForGlobalID:after:): Implemented. 2005-01-27 David Ayers * EOControl/EOEditingContext.h/m (setDefaultFetchTimestampLag:, defaultFetchTimestampLag): Implemented. 2005-01-26 David Ayers * EOAccess/EOUtilities.m (NSObjectNotAvailableException): Reactivate correct exception name. Correct a few whitespace issues. 2005-01-26 Juergen Lorenz Simon David Ayers * EOAccess/EOEntity.m (-initWithPropertyList:owner:): Correct test for file existance and reformat. * EOControl/EOFetchSpecification.h/m (-fetchSpecificationByApplyingBindings:) Remove obsolete method. (-fetchSpecificationWithQualifierBindings:) Implement. * EOControl/EOQualifier.m (initWithKeyValueUnarchiver:): Implement. (-encodeWithKeyValueArchiver:): Ditto. 2005-01-22 David Ayers * EOControl/EOQualifer.m (getKey): Allow literal numbers without class declarations. Reported by Dirk Lattermann. 2005-01-18 Peter Cooper * EOAdaptors/Postgres95/Postgres95Channel.m ([-_describeBasicEntityWithName:forModel:]): Ignore droped columns. 2004-11-23 Matt Rice * EOControl/EOQualifier.m ([-filteredArrayUsingQualifier]): Handle nil qualifier argument. 2004-11-04 David Ayers * EOAccess/EOModelGroup.m ([+globalModelGroup]): Search for .eomodel files as well and call -addModelWithFile: with full path. * EOAccess/EOModel.m ([-initWithContentsOfFile:]): Add assert if file could not be read. * EOControl/EOKeyGlobalID.m ([-hash]): Improve quality of hash values. 2004-11-03 David Ayers * EOAccess/EOAdaptorContext.h: Only use ASCII characters. * EOAccess/EOSQLQualifier.m: Ditto. 2004-11-02 David Ayers * GDL2.gsdoc: New file for documentation project. * GNUmakefile: Build documentation project. * EOAccess/gdl2.gsdoc: Rename to ... * EOAccess/EOAccess.gsdoc: ... new name. * EOControl/gdl2control.gsdoc: Rename to ... * EOControl/EOControl.gsdoc: ... new name. * EOAccess/GNUmakefile: Update documentation project name. * EOControl/GNUmakefile: Ditto. * README: Remove reference to potentially obsolete name. * Tools/eomodeltemplate.gsdoc: Update encoding, DTD reference and minor reformatting. * Tools/gdl2gsdoc.gsdoc: Update DTD reference and add myself as coauthor. * EOAccess/EODatabaseContext.h/m: (EOStoredProcedureNameHintKey, EOCustomQueryExpressionHintKey): Define missing keys. * EOControl/EODeprecated.h: (EOPrefetchingRelationshipHintKey) (EOFetchLimitHintKey, EOPromptAfterFetchLimitHintKey): Ditto. * EOControl/EOFetchSpecification.m: (EOPrefetchingRelationshipHintKey, EOFetchLimitHintKey) (EOPromptAfterFetchLimitHintKey): Ditto. Use globally defined keys instead of local strings. * EOAccess/EODatabaseChannel.m (_selectWithFetchSpecification:editingContext:) Use globally defined keys instead of local strings. * EOControl/EOQualifier.m (+[stringForOperatorSelector:]): Return selector name instead of nil if not given a standard EOQualifierOperator selector. 2004-10-20 David Ayers * EOInterface/EODetailSelectionAssociation.h/m: New files. * EOInterface/EOMasterCopyAssociation.h/m: Ditto. * EOInterface/EOMasterDetailAssociation.h/m: Ditto. * EOInterface/EOMasterPeerAssociation.m: Ditto. * EOInterface/EOMatrixAssociation.h/m: Ditto. * EOInterface/EOPickTextAssociation.h/m: Ditto. * EOInterface/EOPopUpAssociation.h/m: Ditto. * EOInterface/EORadioMatrixAssociation.h/m: Ditto. * EOInterface/EORecursiveBrowserAssociation.h/m: Ditto. * EOInterface/EOTextAssociation.h/m: Ditto. * EOInterface/EODeprecated.h: Ditto. * EOInterface/EOInterface.h: Added new header files. * EOInterface/GNUmakefile: Added new files. * EOInterface/EODisplayGroup.m: Update includes. (setSortOrdering:, sortOrdering): Add deprecated methods. * EOInterface/EOAssociation.h: Remove redundant include. 2004-10-17 David Ayers * EOInterface/EOComboBoxAssociation.h/m: New files. * EOInterface/EOControlAssociation.h/m: Ditto. * EOInterface/EOGenericControlAssociation.m: Ditto. * EOInterface/EOActionCellAssociation.m: Ditto. * EOInterface/NSImage+Additions.m: Ditto. * EOInterface/EOInterface.h: Added new headers. * EOInterface/GNUmakefile: Use new files. Remove superfluous header files directory variable. 2004-10-16 David Ayers * EOInterface/EOActionAssociation.h/m: New files. * EOInterface/EOActionInsertionAssociation.h/m: Ditto. * EOInterface/EOColumnAssociation.h/m: Ditto. * EOInterface/EOTableViewAssociation.m: Ditto. * EOInterface/EOInterface.h: Added new headers. * EOInterface/GNUmakefile: Use new files. * EOInterface/EOAssociation.m: (-[debugDescription]): Remove debug method. 2004-10-15 David Ayers * EOInterface/EOAssociation.h/m: New files. * EOInterface/EOInterface.h: Add EOAssocitaion. * EOInterface/GNUmakefile: Ditto. * EOInterface/EODisplayGroup.h: Add missing forward declaration. * EOInterface/EODisplayGroup.m: ([-insertObjectAtIndex]): avoid warning. 2004-10-14 David Ayers * EOInterface: New directory. * EOInterface/GNUmakefile: New file. * EOInterface/Makefile.preamble: Ditto. * EOInterface/EOInterface.h: Ditto. * EOInterface/EODisplayGroup.h: Ditto. * EOInterface/EODisplayGroup.m: Ditto. 2004-10-07 David Ayers * EOAccess/EOAttribute.m (encodeIntoPropertyList:): Encode numeric values as stings for WO45 EOModel format compatibility. 2004-09-28 David Ayers * EOAccess/EOEntity.m ([EOEntityClassDescription awakeObject:fromInsertionInEditingContext:]): Only process class properties. Remove inactive code. Document. * EOControl/EOObserver.m ([EOObserverCenter observersForObject:]): Document as final. Return immutable copy if observers. ([EOObserverCenter observerForObject:ofClass:]): Revert to using internal map. Avoid allocating spurious enumerator. Update documentation. * EOControl/EODebug.m (TypeToNSString): Use #ifdef to test for _C_LNG_LNG handling. * EOControl/EOFault.m: Include limits.h for UINT_MAX. * EOControl/EOGenericRecord.m: Ditto. * EOControl/EONSAddOns.m: Ditto. 2004-09-26 David Ayers * EOControl/EOObserver.m: Update includes. Document classes and methods. (+[EOObserverCenter addObserver:forObject:]): Do not retain object. Add logging. (+[EOObserverCenter removeObserver:forObject:]): Do not release object. (+[EOObserverCenter observerForObject:]): Use +observersForObject: to obtain the observers for overriding subclasses. (+[EOObserverCenter enableObserverNotification]): Raise NSInternalInconsistencyException when called to often. (-[EODelayedObserver objectWillChange:]): Use the receivers observerQueue for overriding subclasses. (-[EODelayedObserver discardPendingNotification]): Ditto. (-[EODelayedObserverQueue enqueueObserver:]): Relocate assertion to safer place. (-[EOObserverProxy initWithTarget:action:priority:]): Implement. (-[EOObserverProxy dealloc],-[EOObserverProxy priority]) (-[EOObserverProxy subjectChanged]): Ditto. * EOAccess/EOEntity.m (-[setName:]): Skip the uniqueing if the name is the same. 2004-09-25 David Ayers * EOControl/EOObserver.m (-[EODelayedObserverQueue _notifyObservers:]): Fix prototype set queue flag. (-[EODelayedObserverQueue enqueueObserver:]): Fix setting of queue flag and registering observers. (-[EODelayedObserverQueue dequeueObserver:]): Break linked list. Correct highestNonEmptyQueue setting. Fix setting of queue flag. (-[EODelayedObserverQueue notifyObserversUpToPriority]): Dequeue observers during processing. 2004-09-24 David Ayers * EOAccess/EOEntity.m (-[setName:],-[setExternalName:]) (-[setExternalQuery:],-[setClassName:],-[setDocComment]): Use ASSIGNCOPY instead of ASSIGN to deal with mutable strings. 2004-09-09 Simon Stapleton David Ayers * config.h.in (HAVE_DECL_PQFREEMEM, HAVE_DECL_PQUNESCAPEBYTEA): Added new test markers. * config/postgres.m4; Add tests for new markers. * configure: Regenerated. * EOAdaptors/Postgres95/Postgres95Compatibility.h: New file. * EOAdaptors/Postgres95/Postgres95Adaptor.m: Change default data type for NSData to bytea. * EOAdaptors/Postgres95/Postgres95SQLExpression.m ([Postgres95SQLExpression formatValue:forAttribute:]) Format bytea data. * EOAdaptors/Postgres95/Postgres95Values.m ([Postgres95Values newValueForBytesType:length:attribute:]): Decode bytea data. 2004-09-08 David Ayers * EOAccess/EOAttribute.m (-[copyWithZone:]): Override implementation of GCObject as it isn't safe to copy EOAttributes. * EOAccess/EOEntity.m (-[addAttribute:]); Use NSAsserts to check integrity of parameters. Insure that attribute is not used by other entity or stored procedure. (-[_setModel:]): Rename from -setModel:. Assert that entity is not used by another model. * EOAccess/EOEntityPriv.h (-[_setModel:]): Rename from -setModel:. * EOAccess/EOModel.m (-[_addEntity:]): Use -_setModel: instead of -setModel:. (-[removeEntity:]): Ditto. (-[addEntity:)): Use NSAssert to insure that entity name is unique and that the entity is not being used by other mode. Use -_setModel: instead of -setModel:. 2004-09-07 David Ayers * EOAccess/EOAttribute.h * EOAccess/EOAttribute.m (_parent, -[setParent:]): Do not retain backward reference. (-[setName:]): Mark as editited if parent is an entity. * EOAccess/EOModel.m (-[_updateCache]): New method. (-[_addEntity:]): Set model via public API. * EOAccess/EOEntity.m * EOAccess/EOEntityPriv.h (-[EOModel _updateCache]): Declare private EOModel method. (-[setName:]): Insure model updates its cache. (-[setModel:]): Set instance variable directly without retaining it. (-[_setModel:]): Remove. (-[gcDecrementRefCountOfContainedObjects]): Do not decrement backward reference to owning model. * EOAccess/EORelationship.m (-[setDefinition:]): Allow definition to unset. (-[setEntity:]): Mark both old and new entity as edited. * EOAccess/EOStoredProcedure.m (-[initWithPropertyList:]): Make return type explicit. * EOControl/EOGenericRecord.m (-[_infoForInstanceVariableNamed:retType:retSize:retOffset:]): Replace usage of deprecated GSFindInstanceVariable with GSObjCFindVariable. (-[_getValueForKey:selector:type:size:offset:]): Replace usage of deprecated GSGetValue with GSObjCGetValue. (-[_setValueForKey:object:selector:type:size:offset:]): Replace usage of deprecated GSSetValue with GSObjCSetValue. * EOControl/EOFault.m (+/-[respondsToSelector:]): Replace usage of deprecated GSGetInstanceMethod with GSGetMethod. 2004-06-23 David Ayers * EOAccess/EOAccessFault.m: Include privat headers locally. * EOAccess/EOAdaptor.m: Ditto. * EOAccess/EOAdaptorChannel.m: Ditto. * EOAccess/EOAdaptorContext.m: Ditto. * EOAccess/EOAttribute.m: Ditto. * EOAccess/EODatabaseChannel.m: Ditto. * EOAccess/EODatabaseContext.m: Ditto. * EOAccess/EODatabaseOperation.m: Ditto. * EOAccess/EOModel.m: Ditto. * EOAccess/EORelationship.m: Ditto. * EOAccess/EOSQLExpression.m: Ditto. * EOAccess/EOSQLQualifier.m: Ditto. * EOAccess/EOEntity.h: Remove declarations of privat methods. Reorder declaraions. (+[entity], +[entityWithPropertyList:owner:]): Deprecate. (-[sharedObjectFetchSpecificationNames]): New method. (-[setSharedObjectFetchSpecificationsByName:]: Ditto. (-[addSharedObjectFetchSpecificationByName:]: Ditto. (-[removeSharedObjectFetchSpecificationByName:]: Ditto. * EOAccess/EOEntityPriv.h: Add declarations of privat methods. Reorder declarations. * EOAccess/EOEntity.m: Reorder implementations according to headers. Include privat headers locally. (+[entity], +[entityWithPropertyList:owner:]): Deprecate. (-[sharedObjectFetchSpecificationNames]): New method. (-[setSharedObjectFetchSpecificationsByName:]: Ditto. (-[addSharedObjectFetchSpecificationByName:]: Ditto. (-[removeSharedObjectFetchSpecificationByName:]: Ditto. * EOAccess/EOEntity.m: Adapt usage of deprecated -[entity...] and privat methods. * EOAccess/EOModel.m: Ditto. * EOAdaptors/Postgres95/Postgres95SQLExpression.m: Ditto. * TODO: Add comment. 2004-06-21 David Ayers * EOControl/EONSAddOns.h/m (GDL2_ActivateCategory, GDL2_ActivateAllGDL2Categories) (GDL2_DumpMethodList): New functions. * EOControl/EOKeyValueCoding.m (initialize): Make order of initialization more thread safe. (NilToNull): Remove helper class. ([NSObject -unableToSetNilForKey:]): Implement. ([NSObject -GDL2KVCNSObjectICategoryID]): New method. ([NSObject +load]): Ditto. ([NSDictionary -GDL2KVCNSDictionaryICategoryID]): Ditto. ([NSDictionary +load]): Ditto. ([NSMutableDictionary -GDL2KVCNSDictionaryICategoryID]): Ditto. ([NSMutableDictionary +load]): Ditto. * EOControl/EOClassDescription.m ([NSObject -GDL2CDNSObjectICategoryID]): New method. ([NSObject +load]): New method. ([NSObject -validateValue:forKey:]) Introduce temporary variable to allow correct formatting. ([NSObject -snapshot]): Reformat log string. ([NSObject -addObject], [NSObject -removeObject]) ([NSObject _setObject], [NSObject -editingContext]): Reformat. 2004-06-04 Simon Stapelton * EOControl/EOAndQualifier.m, * EOControl/EOKeyComparisonQualifier.m, * EOControl/EOOrQualifier.m: ([-initWithKeyValueUnarchiver]): Implement. 2004-05-16 David Ayers * EOAccess/EODatabaseContext.m: Replace EOFLOGObjectLevel and EOFLOGObjectLevelArgs with NSDebugMLLog. Remove some superfluos NSLogs and replace others woth NSDebugMLLogs. Reformat. * EOAccess/EOEntity.m ([EOEntity primaryKeyForGlobalID:]): Ditto. 2004-05-15 Matt Rice * EOAdaptors/Postgres95/Postgres95Channel.m ([Postgres95Channel describeModelWithTableNames:]): Set class properties. 2004-05-15 David Ayers * EOAdaptors/Postgres95/Postgres95Values.m (-[NSCalendarDate postgres95Format]): Return ISO date format. (-[NSCalendarDate setPostgres95Format:]): Deprecate method. * EOAdaptors/Postgres95/Postgres95Channel.m (-[Postgres95Channel _setDateStyle]): New method to request ISO date format. (-[Postgres95Channel openChannel]): Call -_setDateStyle to set ISO date fromat. * EOAccess/EOAttribute.m ([EOAttribute initialize]): Implement class caching. ([EOAttribute *]): Use cached classes. ([EOAttribute adaptorValueByConvertingAttributeValue:]): Only convert attributes when necessary. 2004-05-14 David Ayers * EOControl/EOEditingContext.m (-[EOEditingContext validateChangesForSave]): Use processed changes instead of unprocessed changes. 2004-05-12 Matt Rice * EOControl/EOQualifier.h: Add NSMutableSet class declaration. 2004-05-12 David Ayers * EOAccess/EOModel.m ([EOModel entityNamed:]): Fix typo. * EOControl/EOQualifier.h/m ([EOQualifier allQualifierKeys]) ([EOQualifier addQualifierKeysToSet:]): Implement new methods. * EOControl/EOAndQualifier.m * EOControl/EOKeyComparisonQualifier.m * EOControl/EOKeyValueQualifier.m * EOControl/EONotQualifier.m * EOControl/EOOrQualifier.m ([EO*Qualifier addQualifierKeysToSet:]): Implement new method. 2004-05-07 David Ayers Alexander Malmberg * EOControl/EONSAddOns.h/m ([NSString initialCapitalizedString]): New method. * EOControl/EOKeyValueCoding.m ([NSArray-valueForKey:]): Allow ommitting keys for computational key paths. Correct key capitalization. Update documentation. ([NSArray-valueForKeyPath]): Ditto. 2004-04-23 David Ayers * EOAccess/EOAdaptor.m ([EOAdaptor availableAdaptorNames]): Return unique names if multiple Adaptors are found. Document. Reported by Matt Rice . 2004-04-21 David Ayers * README: New file. * INSTALL: New file. * NEWS: New file. * Version: Update to 0.9.1. 2004-04-20 David Ayers * EOAdaptors/Postgres95/LoginPanel/GNUmakefile * EOAdaptors/Postgres95/LoginPanel/Makefile.postamble: Allow clean and distclean targets when -gui is not available. 2004-04-18 David Ayers * EOControl/EOGlobalID.h: Correct size of _bytes. * EOControl/EOGlobalID.m: Update includes. (sequence): Define plattform independently. (sequenceRev): Remove. ([EOGlobalID isEqual:]): Fix declaration. ([EOTemporaryGlobalID init]): Ditto. ([EOTemporaryGlobalID isEqual:]): Ditto. Remove access instance variable directly instead of relying on superflous accessor method. ([EOTemporaryGlobalID assignGloballyUniqueBytes]): Rewrite and document. ([EOTemporaryGlobalID _bytes]): Remove. ([EOTemporaryGlobalID encodeWithCoder:]): Encode contents of bytes instead of pointer value. ([EOTemporaryGlobalID decodeWithCoder:]): Decode contents of bytes instead of pointer value. 2004-04-17 David Ayers * EOAdaptors/Postgres95/LoginPanel/Postgres95LoginPanel.m (vfmaxf) Make static. Reformat. ([Postgres95LoginPanel dealloc]): Use DESTROY in favor of RELEASE. ([Postgres95LoginPanel init]): Minor reformatting and more tempRect usage. * EOAccess/EODatabase.m ([EODatabase dealloc]): Use DESTROY in favor of release. * EOAccess/EOExpressionArray.m ([EOExpressionArray dealloc]): Ditto. * EOAdaptors/Postgres95/Postgres95Adaptor.m ([Postgres95Adaptor dealloc]): Ditto. * EOControl/EOCheapArray.h ([EOCheapArray dealloc]) Remove declaration. * EOControl/EOKeyValueArchiver.m ([EOKeyValueArchivingContainer dealloc]): Ditto. * EOControl/EOMutableKnownKeyDictionary.h ([EOMKKDInitializer dealloc]), ([EOMKKDKeyEnumerator dealloc]), ([EOMKKDSubsetMapping dealloc]), ([EOMKKDArrayMapping dealloc]), ([EOMutableKnownKeyDictionary dealloc]) Ditto. 2004-04-17 Matt Rice * EOAdaptors/Postgres95/LoginPanel/Postgres95LoginPanel.m (vfmaxf) New function. ([Postgres95LoginPanel init]): Redo UI layout. ([Postgres95LoginPanel _databaseNames]): Reformat. 2004-04-17 David Ayers * */*.h: Format declarations consistently. Add -*-objc-* shabang line. Replace remaining extern declarations with GDL2*_EXPORT. 2004-04-16 David Ayers * EOAccess/EOModel.m ([EOModel writeToFile:]) Set path (and name implicitly) of the receiver. Create backup file when necessary after removing the potentially existing backup file. Raise NSInvalidArgumentExceptions upon failures. Add support for .eomodel files. Document. ([EOModel _verifyBuiltEntityObject:named:]): Add support for .eomodel files. 2004-04-15 David Ayers * EOAdaptors/Postgres95/Makefile.preamble: Add link flags for Darwin. * EOAdaptors/Postgres95/LoginPanel/GNUmakefile: Ditto. * EOAdaptors/Postgres95/LoginPanel/Postgres95LoginPanel.m: Include GNUstep headers for non-*-gnu-* configurations. * config/postgres.m4: Generalize test for PostgreSQL. * configure: Regenerated. * Makefile.postamble: Remove autom4te.cache on distclean. * TODO: Start tracking major TODO's until formal auditing is available. * EOAccess/EODatabase.m * EOControl/EOGlobalID.h: Added documentation about EOGlobalIDChangedNotification semantics. * EOControl/EOSortOrdering.m: Removed superfluous define. 2004-04-12 David Ayers * EOAdaptors/Postgres95/LoginPanel/Makefile.postamble: Create symlink before building. Error reported by Ludovic Marcotte and Matt Rice . 2004-03-29 David Ayers * EOAdaptors/Postgres95/Postgres95SQLExpression.m ([Postgres95SQLExpression columnTypeStringForAttribute:]): Implement special handling for text types to ignore precision and width as suggested by Matt Rice . * EOAccess/EOModelGroup.m ([EOModelGroup globalModelGroup]): Create single global model group and cache it to allow persistant manual adding of models. 2004-03-19 David Ayers * *.[hm] Use GNUSTEP in favor of NeXT_Foundation_LIBRARY as requested by Marcus Mueller . 2004-03-10 David Ayers * EOAdaptors/Postgres95/LoginPanel/Makefile.postamble: Don't remove GNUmakefile on distclean. * EOAdaptors/Postgres95/LoginPanel/GNUmakefile: Add include directive for local GDL2 headers. 2004-03-08 Matt Rice * EOAdaptors/Postgres95/Postgres95Channel.h ([Postgres95Channel describeDatabaseNames]): Declare method. ([Postgres95Channel userNameIsAdministrative:]): Ditto. * EOAdaptors/Postgres95/LoginPanel/Postgres95LoginPanel.m ([Postgres95LoginPanel init]): Added parentheses to assignment to quiet compiler warning. 2004-03-08 David Ayers * EOAdaptors/Postgres95/Postgres95Adaptor.m ([Postgres95Adaptor createPGconn]): Insure cleanup code gets executed before exception is raised. * EOAdaptors/Postgres95/LoginPanel/Makefile.postamble: New file to create symlink to be able to include local adaptor headers. 2004-03-06 David Ayers * configure.ac: Replace generation of EOAdaptors/Postgres95/Makefile.preamble with EOAdaptors/Postgres95/config.mak. * configure: Regenerate. * EOAdaptors/Postgres95/Makefile.postamble: Replace removal of EOAdaptors/Postgres95/Makefile.preamble with EOAdaptors/Postgres95/config.mak. * EOAdaptors/Postgres95/Makefile.preamble: New file replacing... * EOAdaptors/Postgres95/Makefile.preamble.in: ...this file. * EOAdaptors/Postgres95/config.mak.in: New file. * EOAdaptors/Postgres95/LoginPanel/GNUmakefile: Correct comment identifier. Include config.mak and other potential makefiles. * EOAdaptors/Postgres95/Postgres95SQLExpression.m ([Postgres95SQLExpression dropDatabaseStatementsForConnectionDictionary: administrativeConnectionDictionary:]): Remove excess quotes. 2004-03-06 Matt Rice * EOAccess/EOAdaptor.m ([EOAdaptor dropDatabaseWithAdministrativeConnectionDictionary: administrativeConnectionDictionary:]): Correct documentation. ([EOAdaptor administrativeConnectionDictionaryForAdaptor:]): Documented. * EOAdaptors/Postgres95/GNUmakefile.in: Added LoginPanel subproject. * EOAdaptors/Postgres95/Postgres95Adaptor.m ([Postgres95Adaptor assertConnectionDictionaryIsValid]): Added test to insure channel is open befor attempting to close. ([Postgres95Adaptor createPGconn]): Added exception to raise. * EOAdaptors/Postgres95/Postgres95Channel.m ([Postgres95/Postgres95Channel describeDatabaseNames]): Implemented new method. ([Postgres95 userNameIsAdministrative]): Ditto. * EOAdaptors/Postgres95/LoginPanel/GNUmakefile: New file. * EOAdaptors/Postgres95/LoginPanel/Postgres95LoginPanel.h/m: Ditto. 2004-03-06 David Ayers * EOControl/Makefile.preamble: Fix --disable-flattend. 2004-02-26 David Ayers * EOControl/EODebug.h: Include missing header for non-*-gnu-*. * EOAccess/EOAdaptor ([EOAdaptor _performAdministativeStatementsForSelect: connectionDictionary:administrativeConnectionDictionary]): Add cast to silence warning. * EOControl/EOCheapArray.m ([EOCheapArray autorelease]): Replace objc_thread_id with GSCurrentThread. ([EOCheapArray release]): Ditto. ([EOCheapArray retainCount]): Ditto. ([EOCheapArray retain]): Ditto. ([EOCheapArray dealloc]): Ditto. ([EOCheapArray shallowCopy]): Ditto. * EOControl/EOFault.m: Include missing header. ([EOFault dealloc]): Replace objc_thread_id with GSCurrentThread. * Tools/EOModel+GSDoc.m: Fix include. 2004-02-26 Matt Rice * EOAdaptors/Postgres95/Postgres95Channel.m: Added missing include. ([Postgres95Channel _describeForeignKeysForEntity:forModel:]): Fix typo to unsure using correct entity. 2004-02-25 David Ayers * EOControl/EOCheapArray.m ([EOCheapArray dealloc]): Replace usage of objc_thread_id with GSCurrentThread. * EOControl/EODebug.m: Include headers for non *-gnu-*. Format function headers according to GNU standards. (objectDescription): Make static and return something meaningfull on failure. (IVarInString, TypeToNSString, DumpIVar): Make static and format function headers according to GNU standards. (EOFLogDumpObject_, EOFLogAssertGood_): Format function headers according to GNU standards. * EOAccess/EOSQLExpression.m ([EOSQLExpression foreignKeyConstraintStatementsForRelationship:]): Create constraint even though no inversRelationship exists. ([EOSQLExpression foreignKeyConstraintStatementsForEntityGroup:]): Create constraints for all entities in the group which have no parent entity. ([EOSQLExpression foreignKeyConstraintStatementsForEntityGroups:]): Reformat for source level debuging. ([EOSQLExpression tableListWithRootEntity:]): Honor EOAdaptorQuotesExternalNames. ([EOSQLExpression createTableStatementsForEntityGroup:]): Ditto. ([EOSQLExpression dropTableStatementsForEntityGroup:]): Ditto. ([EOSQLExpression primaryKeyConstraintStatementsForEntityGroup:]): Ditto. ([EOSQLExpression primaryKeySupportStatementsForEntityGroup]): Ditto. ([EOSQLExpression dropPrimaryKeySupportStatementsForEntityGroup:]): Ditto. ([EOSQLExpression prepareConstraintStatementForRelationship: sourceColumns:destinationColumns:]): Ditto. * EOAdaptors/Postgres95/Postgres95SQLExpression.h/m ([Postgres95SQLExpression externalNameQuoteCharacter]): Remove. ([Postgres95SQLExpression createDatabaseStatementsForConnectionDictionary: administrativeConnectionDictionary]): Honor EOAdaptorQuotesExternalNames. ([Postgres95SQLExpression dropDatabaseStatementsForConnectionDictionary: administrativeConnectionDictionary:]): Ditto. ([Postgres95SQLExpression dropTableStatementsForEntityGroup:]): Ditto. ([Postgres95SQLExpression tableListWithRootEntity:]): Ditto. * EOAdaptors/Postgres95/Postgres95Channel.m: Define EOAdaptorDebugLog convinience macro and use it throughout the file. ([Postgres95Channel _describeResults]): Rename externalName to externalType. Avoid nested messages for source level debugging. ([Postgres95Channel _describeBasicEntityWithName:forModel:]): New support method derived from describeModelWithEntityNames:. ([Postgres95Channel _describeForeignKeysForEntity:forModel:]): Ditto. ([Postgres95Channel describeModelWithEntityNames:]): Use new support methods in an autotelease pool. ([Postgres95Channel primaryKeyForNewRowWithEntity:]): Honor EOAdaptorQuotesExternalNames. * EOAdaptors/Postgres95/Postgres95Adaptor.m: Reorder external type mappings to correspond to EOAdaptorValueTypes. * EOAccess/EOModel.m ([EOModel beautifyNames]): Remove log and reformat comments. 2004-02-23 David Ayers * EOAccess/EOAdaptor.m ([EOAdaptor sharedLoginPanelInstance]): Maintain instances on a per class basis as reported by Matt Rice. 2004-02-22 David Ayers * EOAccess/EOAdaptor.h/m: New globals for GDL2 specific administrative key handling. ([EOAdaptor sharedLoginPanelInstance]): Implemented. * EOAccess/EOSQLExpression.m ([EOSQLExpression _administrativeDatabaseStatementsForSelector:forEntityGroup:], [EOSQLExpression _dropDatabaseStatementsForEntityGroups:], [EOSQLExpression _createDatabaseStatementsForEntityGroups:]): Implemented new private support methods. ([EOSQLExpression schemaCreationStatementsForEntities:options:]): Added support for EODropDatabaseKey and EOCreateDatabaseKey. 2004-02-19 David Ayers * EOControl/Makefile.postamble: Remove obsolete dependency and target. Add dependancy and targets for target specific config.h file. * EOAccess/Makefile.preamble: Add include option for target specific config.h file. * EOAdaptors/Postgres95/Makefile.preamble.in: Ditto. * EOModeler/Makefile.preamble: Ditto. * Tools/Makefile.preamble: Ditto. * EOAccess/Makefile.postamble: Comment empty target. * EOControl/EODebug.m (EOFLogC_): Log thread in a portable fashion. 2004-02-14 Matt Rice * EOAdaptors/Postgres95/Postgres95Channel.m ([Postgres95Channel describeModelWithTableNames:]): Implemented. 2004-02-12 David Ayers * EOAccess/EOAdaptor.h ([EOLoginPanel administrativeConnectionDictionaryForAdaptor]): Correct spelling. ([EOLoginPanel runPanelForAdaptor:validate:]): Move to EODeprecated.h. ([EOLoginPanel runPanelForAdaptor:validate:allowsCreation:]): Declared. * EOAccess/EOAdaptor.m: ([EOAdaptor adaptorWithModel:]): Reformat. ([EOAdaptor adaptorWithName:]): Do not append EOAdaptor redundantly. ([EOAdaptor _performAdministativeStatementsForSelector: connectionDictionary:administrativeConnectionDictionary:]): Implemented. ([EOAdaptor createDatabaseWithAdministrativeConnectionDictionary:]): Documented and implemented. ([EOAdaptor dropDatabaseWithAdministrativeConnectionDictionary]): Ditto. ([EOAdaptor runLoginPanelAndValidateConnectionDictionary]): Ditto. ([EOAdaptor runLoginPanel]): Ditto. ([EOAdaptor assignExternalInfoForAttribute:]): Ditto. ([EOAdaptor assignExternalInfoForEntity]): Ditto. ([EOAdaptor assignExternalInfoForEntireModel:]): Ditto. ([EOAdaptor internalTypeForExternalType:model:]): Documented. ([EOAdaptor externalTypesWithModel]): Ditto. ([EOAdaptor assignExternalTypeForAttribute]): Ditto. ([EOLoginPanel runPanelForAdaptor:validate:allowsCreation:]): Implemented. ([EOLoginPanel runPanelForAdaptor:validate:]): Deprecated. * EOAccess/EODeprecated.h ([EOLoginPanel runPanelForAdaptor:validate:]): Deprecated. * EOAdaptors/Postgres95/Postgres95Adaptor.m ([Postgres95Adaptor createDatabaseWithAdministrativeConnectionDictionary:]): Removed. ([Postgres95Adaptor dropDatabaseWithAdministrativeConnectionDictionary:]): Ditto. * EOAdaptors/Postgres95/Postgres95SQLExpression.m ([Postgres95SQLExpression createDatabaseStatementsForConnectionDictionary: administrativeConnectionDictionary:]): Implemented. ([Postgres95SQLExpression dropDatabaseStatementsForConnectionDictionary: administrativeConnectionDictionary:]): Ditto. * EOControl/EOClassDescription.m ([EOClassDescription initialize]): Use local GSLazyRecursiveLock instead of old locking mechanism. ([EOClassDescription classDelegate]): Ditto. * EOControl/EOGenericRecord.m: Use GSLazyRecursiveLock instead of NSRecursiveLock. * EOControl/EONSAddOns.h/m (GDL2GlobalLock, GDL2GlobalRecursiveLock) Remove. (GDL2GlobalLockVendor) Ditto. (GSUseStrictWO451Compatibility): Use local GSLazyRecursiveLock instead of old locking mechanism. * EOControl/EOFault.m: Remove superfluous include. * EOControl/EOKeyValueQualifier.m ([EOKeyValueQualifier initWithKey:operatorSelector:value:]): Use EONull instance if value is nil. ([EOKeyValueQualifier evaluateWithObject:]): Use EONull instance if object is nil. * EOControl/EOQualifier.m (getKey): Always interpret 'attName = nil' qualifiers as EOKeyValueQualifiers. * EOControl/EODebug.h/m(EOFLogAssertGood_): Remove dependancy on superfluous category. ([NSObject isa]): Remove category. 2004-02-01 David Ayers * EOAccess/EOAdaptor.m ([EOAdaptor adaptorWithName:]): Use NSSearchPathForDirectoriesInDomains() instead of GNUstep specific environment variable. 2004-01-31 David Ayers * EOAccess/EOAccessFault.m: Add #includes for non *-gnu-*. * EOAccess/EOAdaptorOperation.m: Ditto. * EOAccess/EOAttribute.m: Ditto. * EOAccess/EODatabaseDataSource.m: Ditto. * EOAccess/EODatabaseOperation.m: Ditto. * EOAccess/EOEntity.m: Ditto. * EOAccess/EOExpressionArray.m: Ditto. * EOAccess/EOJoin.m: Ditto. * EOAccess/EORelationship.m: Ditto. * EOAccess/EOSQLExpression.m: Ditto. * EOAdaptors/Postgres95/Postgres95Adaptor.m: Ditto. * EOAdaptors/Postgres95/Postgres95Channel.m: Ditto. * EOAdaptors/Postgres95/Postgres95Context.m: Ditto. * EOAdaptors/Postgres95/Postgres95SQLExpression.m: Ditto. * EOAdaptors/Postgres95/Postgres95Values.m: Ditto. * EOControl/EOCheapArray.m: Ditto. * EOControl/EODetailDataSource.m: Ditto. * EOControl/EOGenericRecord.m: Ditto. * EOControl/EOKeyComparisonQualifier.m: Ditto. * EOControl/EOKeyGlobalID.m: Ditto. * EOControl/EOKeyValueQualifier.m: Ditto. * EOControl/EOMutableKnownKeyDictionary.m: Ditto. * EOControl/EONSAddOns.m: Ditto. * Tools/EOModel+GSDoc.m: Remove usage of -version. 2004-01-30 David Ayers * GNUmakefile: Build EOControl before EOAccess. * EOAccess/GNUmakefile: Remove LIBRARIES_DEPEND_UPON handling. * EOControl/GNUmakefile: Ditto. * EOModeler/GNUmakefile: Ditto. * Tools/GNUmakefile: Ditto. * EOAccess/Makefile.preamble: Correct LIBRARIES_DEPEND_UPON handling. * EOControl/Makefile.preamble: Ditto. * EOModeler/Makefile.preamble: Ditto. * Tools/Makefile.preamble: Ditto. Add -lgnustep-baseadd as ADDITIONAL_TOOL_LIBS for non-*-gnu-*. 2004-01-29 David Ayers * EOAccess/GNUmakefile: Test FOUNDATION_LIB to determine whether to link -base or -baseadd. * EOControl/GNUmakefile: Ditto. * EOModeler/GNUmakefile: Ditto. * Tools/GNUmakefile: Ditto. Update title. * EOAccess/EOAdaptor.m: Include GNUstep-specific headers for non-GNUstep systems. * EOAccess/EOAdaptorChannel.m: Ditto. * EOAccess/EOAdaptorContext.m: Ditto. * EOAccess/EOAttribute.m: Ditto. * EOAccess/EODatabaseChannel.m: Ditto. * EOAccess/EODatabaseDataSource.m: Ditto. * EOAccess/EOEntity.m: Ditto. * EOAccess/EOModel.m: Ditto. * EOAccess/EOModelGroup.m: Ditto. * EOAccess/EORelationship.m: Ditto. * EOAccess/EOSQLQualifier.m: Ditto. * EOAccess/EOUtilities.m: Ditto. * EOControl/EOAndQualifier.m: Ditto. * EOControl/EOClassDescription.m: Ditto. * EOControl/EODataSource.m: Ditto. * EOControl/EOEditingContext.m: Ditto. * EOControl/EOFault.m: Ditto. * EOControl/EOFaultHandler.m: Ditto. * EOControl/EOFetchSpecification.m: Ditto. * EOControl/EOKeyValueArchiver.m: Ditto. * EOControl/EOKeyValueQualifier.m: Ditto. * EOControl/EOMutableKnownKeyDictionary.m: Ditto. * EOControl/EONSAddOns.m: Ditto. * EOControl/EOObjectStore.m: Ditto. * EOControl/EOObjectStoreCoordinator.m: Ditto. * EOControl/EOObserver.m: Ditto. * EOControl/EOOrQualifier.m: Ditto. * EOControl/EOQualifier.m: Ditto. * EOControl/EOUndoManager.m: Ditto. * EOModeler/EOModelExtensions.m: Ditto. * EOAccess/EOModel.h/m (+/-[EOModel version]) Remove. ([EOModel init]): Handle version internally. ([EOModel encodeTableOfContentsIntoPropertyList:]): Ditto. ([EOModel encodeIntoPropertyList:]): Ditto. * EOAccess/EODatabaseContext.m ([EODatabaseContext dealloc]): Use NSCountHashTable instead of NSCountMapTable on hash table. * EOAccess/EOAttribute.m ([EOAttribute newValueForBytes:length:]): Added casts to avoid warnings. 2003-11-28 Manuel Guesdon * EOAccess/EOAttribute.m: o introducing new number types: ('u' for long long / int8 and 'U' for unsigned long long) * EOAdaptors/Postgres95/Postgres95Adaptor.m: o added int8, bigint * EOAdaptors/Postgres95/Postgres95Channel.m: o handling bigint o fixed types for int2 and int8 * EOAdaptors/Postgres95/Postgres95Values.m: o added missing number types o introducing new number types: ('u' for long long / int8 and 'U' for unsigned long long) * EOControl/EONSAddOns.m/.h o added number accessors for NSString o added NSObject -performSelector:withObject:withObject:withObject: * EOAccess/EODatabaseContext.m: o in -prepareForSaveWithCoordinator:editingContext: Try harder to find primary key (for linked objects with more than one attribute for PK) * EOAccess/EODatabaseContextPriv.h o added -_primaryKeyForObject:raiseException: * EOAccess/EOEntity.m/.h: o added _instanceDictionaryInitializer. Permit to have a restricted dictionary initializer (i.e. propertyDictionaryInitializer minus instance object ivars). o added NSObject +_instanceDictionaryInitializerExcludedPropertyNames o more information in log/exception in _parseRelationshipPath o added -_instanceDictionaryInitializer o added - _dictionaryForInstanceProperties o added -_classForInstances * EOAccess/EOModel.m: o added asserts o clean warnings * EOAccess/EORelationship.m: o asserts o fix in -isReciprocalToRelationship: * EOAccess/EOSQLExpression.m/.h: o renamed _useAliases to _flags.useAliases o added _flags.hasOuterJoin o call qualifier -sqlStringForSQLExpression: instead of switching on qualifier class in -sqlStringForArrayOfQualifiers:operation: o asserts o fill _contextStack o added outer joins checks in -_flattenRelPath:entity: (Used in Postgresql) * EOAdaptors/Postgres95/Postgres95SQLExpression.m: o subclass joinExpression to avoid building join expression (it's now build in -tableListWithRootEntity o sublass -tableListWithRootEntity to add joins in it. * EOAccess/EOSQLQualifier.m o fix in EOOrQualifier -sqlStringForSQLExpression: use sqlExpression -sqlStringForDisjoinedQualifiers: (problem was missing () around expression) * EOControl/EOAndQualifier.m: o implemented -_addBindingsToDictionary: o implemented -qualifierWithBindings:requiresAllVariables: o implemented -validateKeysWithRootClassDescription: * EOControl/EOKeyValueQualifier.m: o implemented -validateKeysWithRootClassDescription: o implemented -initWithKeyValueUnarchiver: o removed duplicate -initWithKeyValueUnarchiver: and -encodeWithKeyValueArchiver o implemented -_addBindingsToDictionary: o implemented - qualifierWithBindings:requiresAllVariables: * EOControl/EOOrQualifier.m: o implemented -_addBindingsToDictionary: o implemented -qualifierWithBindings:requiresAllVariables: o implemented -validateKeysWithRootClassDescription: * EOControl/EONotQualifier.m: o implemented -_addBindingsToDictionary: o implemented -validateKeysWithRootClassDescription: o implemented -qualifierWithBindings:requiresAllVariables: * EOControl/EOQualifier.m: o implemented _validateKey:withRootClassDescription: o implemented -validateKeysWithRootClassDescription: o implemented -bindingKeys o implemented -keyPathForBindingKey: o added EOQualifierVariableSubstitutionException; * EOControl/EOClassDescription.m/h: o added -dictionaryForProperties o added EOEntityClassDescription -dictionaryForProperties wich use entity -_dictionaryForProperties * EOControl/EOGenericRecord.m/h: o use EOClassDescription -dictionaryForProperties instead of building itself it's dictionary so we can always use the same EOMKKDInitializer to save (lots of) memory. * EOControl/EOEditingContext.m/.h: o added -setLevelsOfUndo: (for GNustepWeb) * EOControl/EOFetchSpecification.m/.h: o implemented -encodeWithKeyValueArchiver: * EOControl/EOKeyValueArchiver.m: o cleaned 2003-10-24 David Ayers * EOControl/EONSAddOns.h (GDL2_BUFFER): Added experimental macro. * EOControl/EOQualifier.m (_isLike): New static function to implement -isLike: and -isCaseInsensitiveLike:. (-[NSString isLike:]): Implemented. (-[NSString isCaseInsensitiveLike:]): Ditto. (-[NSArray filteredArrayUsingQualifier:]): Adapted to use experimental GDL2_BUFFER macro. 2003-10-23 David Ayers * EOControl/EOFetchSpecification.m (-[EOFetchSpecification fetchSpecificationNamed:entityNamed:]}: Implemented upon bug report by Philip Moetteli. * EOAccess/EOAttributePriv.h (-[EOAttribute _valueClass]): Declare new private method. * EOAccess/EOAttribute.m: Remove declaration of unsused static variable. Format documentation. (-[EOAttribute serverTimeZone]): Remove duplicate implementation which is always overriden by the category and correct the category implementation. (-[EOAttribute valueClassName]): Minor optimisation. (-[EOAttribute externalType]): Ditto. (-[EOAttribute valueType]): Ditto. (-[EOAttribute newValueForBytes:length:]): Use -_valueClass method to insure correct valueClass usage. Bug reported by Philip Moetteli. (-[EOAttribute newValueForBytes:length:encoding:]): Ditto. (-[EOAttribute adaptorValueType]): Ditto. (-[EOAttribute validateValue:]): Ditto. Use -width method to insure correct usage of width with respect to prototypes. (-[EOAttribute _valueClass]): New private method. 2003-09-29 Philip Moetteli * EOControl/EOClassDescription.m (+[EOClassDescription initialize]): Initialize model group after callback tables are initilized. 2003-09-10 David Ayers * EOControl/EOFault.m (+[EOFault respondsToSelector:]): Use GSObjCRuntime functions and correct casts. (-[EOFault respondsToSelector:]): Correct casts. * EOControl/EOKeyComparisonQualifier.m * EOControl/EOKeyValueCoding.m * EOControl/EOKeyValueQualifier.m * EOControl/EOQualifier.m * EOControl/EOSortOrdering.m (-[NSObject compare:]): Add declaration to prepare for removal of declaration from -base. (-[EOKeyComparisonQualifier evaluateWithObject:]): Adapt vraiables and casts to use correct prototype. (-[EOKeyValueQualifier evaluateWithObject:]): Ditto (-[NSArray computeMaxForKey:]): Ditto. (-[NSArray computeMinForKey:]): Ditto. 2003-08-25 Matt Rice * *.h/m: Updated to new header layout. * Tools/eoutil.m: Added missing include. 2003-08-23 David Ayers * EOControl/EOKeyValueCoding.h/m: Rewritten and documented. Declared and documented EOKeyValueCoding categories currently implemented by gnustep-base/Foundation in NSKeyValueCoding. Removed FOUNDATION_HAS_KVC conditionals as gnustep-base/Foundation implement NSKeyValueCoding. (-[NSObject takeStoredValuesFromDictionary:]): Added declaration reportedly missing in Apple's headers to compelte EOKeyValueCoding declarations. Most implementations rewritten. * EOControl/EONull.h/m: Define EONull to NSNull to allow pointer equality checks. Implement EONull as NSNull subclass that returns the NSNull instance. Remove old assertions. 2003-07-11 David Ayers * *.m: Include GNUstep.h if GNUSTEP is not defined for OS X. 2003-06-26 Manuel Guesdon * config.h.in: o added EMIT_TODO control * EOAccess/EOAccessFault.m: o commented debug logs * EOAccess/EODatabaseContext.m: o more information in asserts o asserts o fix in -relayPrimaryKey:object:entity: for nil 1:1 relationship value o add -forgetSnapshotForGlobalID call in -refaultObject:withGlobalID:editingContext: o add -forgetSnapshotForGlobalID database call in -forgetSnapshotForGlobalID: * EOAccess/EOEntity.m: o logs o fix in -awakeObject:fromInsertionInEditingContext: to avoid setting already present values o reverted code in -awakeObject:fromInsertionInEditingContext: My (old) tests show that we create 1: object not on mandatory property but on propagatesPrimaryKey one if someone has an example of EOF creating an object here without propagatesPrimaryKey, please send it to me. * EOAccess/EOModelGroup.m: o don't autorelease return model group in -globalModelGroup as it will crash. I haven't find why :-( o logs * EOAccess/EOSQLExpression.m: o fix bug in -assembleSelectStatementWithAttributes:lock:qualifier: fetchOrder:selectString:columnList:tableList: whereClause:joinClause:orderByClause:lockClause: by adding () around where and join clause o add detail in sqlStringForSelector:value: exception * EOAdaptors/Postgres95/PostPostgres95Channel.m: o add more information on exceptions * EOAdaptors/Postgres95/Postgres95SQLExpression.m: o fix escaping string in -formatValue:forAttribute: o fix bug in -assembleSelectStatementWithAttributes:lock:qualifier: fetchOrder:selectString:columnList:tableList: whereClause:joinClause:orderByClause:lockClause: by adding () around where and join clause * EOAdaptors/Postgres95/Postgres95Value.m: o Change log in +newValueForDateType:length:attribute: * EOControl/EOCheapArray.m o removed some logs * EOAccess/EOClassDescription.m: o fix in -validateForUpdate o logs * EOControl/Debug.h: o donditional define of NSEmitTODO() * EOControl/EODetailDataSource.h/.m: o added -setDetailKey: * EOControl/EOEditingContext.m o logs * EOControl/EOFetchSpecification.m o logs * EOControl/EOKeyValueCoding.m: o fix in computeSum, computeAverage * EOControl/EOQualifier.m o logs * EOControl/EOSortOrdering.m o use valueForKeyPath: instead of valueForKey: to allow sort on related objects * EOControl/EOUndoManager.h o protection of include 2003-06-23 David Ayers * EOControl/EONSAddOns.h/m: ([NSString -parsedFirstVersionSubstring]): New method. * EOAdaptors/Postgres95/Postgres95Adaptor.h/m: Added include of pg_config.h to access PG_VERSION. Added databaseVersion to list of meaningful connectionDictionary keys. (postgresClientVersion): New function. * EOAdaptors/Postgres95/Postgres95Channel.h/m: Added instance variable to hold the version of the database server. (pgResultDictionary): New static function for debuging. ([Postgres95Channel -_readServerVersion]): New method to set Server Version. ([Postgres95Channel -openChannel]): Call _readServerVersion method. ([Postgres95Channel -describeTableNames]): Adapt select statement according to database version. * Postgres95/Postgres95SQLExpression.m: ([Postgres95SQLExpression +dropTableStatementsForEntityGroup:]): Adapt select statement according to database version supplied in connectionDictionary of the entites model. 2003-06-22 David Ayers * EOControl/EOFault.m ([EOFault -respondsToSelector:]): Adapt to current GSObjCRuntime API. * EOControl/EOUndoManager.h: Correct includes. * EOAdaptors/Postgres95/Postgres95Channel.m ([Postgres95Channel -describeTableNames]): Removed incorrect code left by copy and paste action. Reported by Markus Hitter . 2003-06-01 David Ayers * gdl2.make.in: Set GDL2 as auxiliary preprocessor flag. 2003-05-22 David Ayers * config/postgres.m4: Added /usr/include/postgresql to include search path. * EOControl/EOClassDescription.m ([EOClassDescription +classDescriptionForClass:): Replaced deprecated GSObjCName() with GSNameFromClass(). * EOControl/EOQualifier.m ([EOQualifier +qualifierWithQualifierFormat:varargList:]): Replaced deprecated GSObjCSelectorName() with GSNameFromSelector(). 2003-05-20 David Ayers * EOControl/EOFault.m ([EOFault respondsToSelector:]): Temporarily add private declaration of GSObjCGetMethod() until the replacement is in place. 2003-05-16 David Ayers * EOAccess/EOAttribute.m ([EOAttribute -encodeIntoPropertyList:]): Encode missing aattributes as reported by Dirk Lattermann. Also corrected encoding of parameterDirection. ([EOAttribute initWithPropertyList:owner:]): Corrected parsing of parameterDirection to account for WO 4.5 compatibility and previous encodings. 2003-05-14 David Ayers * EOAccess/EODatabaseDataSource.m ([EODatabaseDataSource -initWithEditingContext:entityName:fetchSpecificationName:]): Create default fetch specification if we cannot obtain one from the entity by name as reported by Dirk Lattermann. * EOAccess/EOEntity.h/m ([EOEntity -addFetchSpecification:withName:]): Corrected name and initialization as reported by Dirk Lattermann. 2003-05-08 David Ayers * EOControl/EOObjectStoreCoordinator.m ([EOObjectStoreCoordinator +initialize]): Insure EODatabaseContext is setup to receive notifications. * EOControl/EOKeyGlobalID.m ([EOKeyGlobalID +globalIDWithEntityName:keys:keyCount:zone:]): Use AUTORELEASE instead of autorelease. * EOControl/EOFault.m ([EOFault +initialize]): Fix initialization of cached class variable. * EOAccess/EODatabaseContext.m ([EODatabaseContext -dealloc]): Corrected debug logs. ([EODatabaseContext +databaseContextWithDatabase:]): Use AUTORELEASE instead of autorelease. ([EODatabaseContext -initWithDatabase:]): Ditto. ([EODatabaseContext -objectsWithFetchSpecification:editingContext:]): Ditto. ([EODatabaseContext -_dbOperationWithGlobalID:object:entity:operator:]): Ditto. ([EODatabaseContext -recordChangesInEditingContext]): Ditto. ([EODatabaseContext -relayAttributesInRelationship:sourceObject:destinationObject:]): Ditto. ([EODatabaseContext -createAdaptorOperationsForDatabaseOperation:attributes:]): Ditto. ([EODatabaseContext -_fireFault:]): Ditto. ([EODatabaseContext -_batchToOne:withHandler:]): Ditto. ([EODatabaseContext -_commitTransaction]): Ditto. ([EODatabaseContext -handleDroppedConnection]): Use RELEASE instead of release. ([EODatabaseContext -databaseOperationForObject:]): Ditto. ([EODatabaseContext -_fireArrayFault:]): Ditto. 2003-05-05 David Ayers * EOAccess/EOEntity.m: Replaced autorelease with AUTORELEASE. ([EOEntity -addRelationship:]): Update _relationshipByName cache. 2003-05-02 David Ayers * EOControl/EOKeyValueCoding.h: Use base/Foundation NSUnknownKeyException for EOUnknownKeyException to allow use of base/Foundation NSKeyValueCoding. * EOControl/EOKeyValueCoding.m: Add EOTargetObjectUserInfoKey and EOUnknownUserInfoKey. ([NSObject +flushAllKeyBindings]): Add method. * GNUmakefile: Remove setting of GNUSTEP_MAKEFILES. * EOAccess/GNUmakefile: Ditto. * EOAdaptors/GNUmakefile.in: Ditto. * EOAdaptors/Postgres95/GNUmakefile.in: Ditto. * EOControl/GNUmakefile: Ditto. * EOModeler/GNUmakefile: Ditto. * Tools/GNUmakefile: Ditto. * EOAccess/EOSQLExpression.m: Import GSCategories.h only for NeXT_Foundation_Library. * EOControl/EOKeyValueCoding.m: Ditto. * EOAccess/EODatabaseContext.m ([EODatabaseContext -setDelegate:]): Fixed assignment in while loop as reported by Stephane Corthesy. * EOControl/EOAndQualifier.m ([EOAndQualifier +qualifierWithQualifiers:]), ([EOAndQualifier -initWithQualifiers:]): Use GS_USEIDLIST to optimize vararg list to array conversion. * EOControl/EOOrQualifier.m ([EOOrQualifier +qualifierWithQualifiers:]), ([EOOrQualifier -initWithQualifiers:]): Ditto. * EOControl/EOClassDescription.m ([EOClassDescription +classDelegate]): Make access to static variable thread safe. * EOControl/EOEdtitingContext.m: Added declarations to avoid compiler warnings. 2003-05-02 Stephane Corthesy * EOControl/EOControl.h: Added inclusion of EOArrayDataSource.h. * EOControl/EOEdtitingContext.m: Added declaration of +[EOEditingContext(EOEditingContextPrivate) _observeUndoManagerNotifications] to avoid compiler warnings. * EOControl/EONSAddOns.m ([NSObject -resultsOfPerformingSelector:withEachObjectInArray:defaultResult:]): Added cast to avoid compiler warning. 2003-04-18 Mirko Viviani * EOAccess/EOAttribute.m ([EOAttribute -awakeWithPropertyList:]): set the prototype. ([EOAttribute -encodeIntoPropertyList:]): likewise. ([EOAttribute -serverTimeZone]): return the value from the prototype. ([EOAttribute -columnName]): likewise. ([EOAttribute -readFormat]): likewise. ([EOAttribute -writeFormat]): likewise. ([EOAttribute -scale]): likewise. ([EOAttribute -precision]): likewise. ([EOAttribute -width]): likewise. ([EOAttribute -allowsNull]): likewise. ([EOAttribute -isReadOnly]): likewise. ([EOAttribute -valueClassName]): likewise. ([EOAttribute -externalType]): likewise. ([EOAttribute -valueType]): likewise. * EOAccess/EOAttribute.h: removed ivar _prototypeName. * EOAccess/EOModel.m ([EOModel -prototypeAttributeNamed:]): implemented. * EOAccess/EOAdaptor.m|.h ([EOAdaptor -prototypeAttributes]): renamed from +prototypes and implemented. 2003-04-15 Mirko Viviani * EOAccess/EOAdaptorContext.h: include EODefines.h and NSString.h 2003-04-01 David Ayers * EOControl/EODeprecated.h: Replaces EODepricated.h. The original post was correct. Sorry! * EOAccess/EODeprecated.h: Ditto. * EOAccess/GNUmakefile: Ditto. * EOControl/EOUndoManager: Ditto. * EOControl/EOClassDescription: Added some comments. Tidied line breakage. ([EOClassDescription +delegete]): Moved to category named Deprecated. ([EOClassDescription +setDelegate:]): Ditto. ([EOClassDescription -displayNameForKey:]): Use AUTORELEASE macro. ([NSObject -snapshot]): Ditto. ([NSObject -updateFromSnapshot]): Ditto. ([NSObject -addObject:toPropertyWithKey:]): Ditto. ([NSObject -removeObject:fromPropertyWithKey:]): Ditto. ([NSException +validateExceptionWithFormat:]): Ditto. ([NSException +aggregateExceptionWithExceptions:]): Ditto. ([NSException -exceptionAddingEntriesToUserInfo:]): Ditto. * EOControl/EOKeyValueCoding.h/m: ([NSObject unableToSetNullForKey:]): Implemented. 2003-03-31 David Ayers * EOControl/EOFault.m ([EOFault respondsToSelector:]): Replaced usage of potential future runtime function name with current function name. 2003-03-30 David Ayers * *.h/m, *.h/m): Used #include instead of depricated #import. Avoid including entire library headers. Use export macro where applicable. * EOControl/GNUmakefile: Removed EOKeyValueCodingBase.m/h and EOUndoMananger.h. Added EOArrayDataSource.m/h, EODefines.h and EODepricated.h. * EOControl/EODefines.h: Updated for GDL2 & gnustep-make. * EOControl/EODebug.h: Updated. * EOControl/EODepricated.h: Updated for current state of GDL2. ([NSObject +flushClassKeyBindings]): Added declaration. ([EOClassDescription +setDelegate:]): Added declaration. ([EOClassDescription +delegate]): Added declaration. (EOUndoManager): Moved declaration of interface here. * EOControl/EOKeyValueCoding.m ([EOClassDescription +flushClassKeyBindings]): Added empty implementation. ([NSObject takeStoredValuesFromDictionary:]): Cache EONull instance and use it instead of isKindOfClass:. * EOControl/EOEditingContext.m ([EOEditingContext +initialize]): Tidied. ([EOEditingContest -deleteObject]): Use NSUndoManager instead of EOUndoManager. * EOControl/EOQualifier.m ([NSArray -filteredArrayUsingQualifier:]): Added minor optimization tweak. * EOControl/EOClassDescription.m: Removed inactive commented code. Added private declerations of EOAccess methods to avoid compiler warnings. ([EOClassDescription +initialize]): Tidied. ([EOClassDescription -classDescriptionForClass:]): Use GSObjCName() instead of objc runtime routines. * EOControl/EOFault.m: Exchanged direct usages of ObjC runtime routines with NS/GSObjCRuntime abstraction API. ([EOFault +superclass]): Ditto. ([EOFault +targetClassForFault:]): Ditto. ([EOFault -respondsToSelector:]): Ditto. ([EOFault +initialize]): Cache static class variable. ([EOFault +isKindOfClass]): Use static class variable. ([EOFault +handlerForFault:]): Ditto. ([EOFault +targetClassForFault:]): Ditto. ([EOFault -dealloc]): Ditto. * EOControl/EOGenericRecord.m: ([EOGenericRecord +initialize]): Tidied. * EOControl/EOKeyComparisonQualifier.m: Tidied documentation. * EOControl/EOKeyValueQualifier.m: Ditto. * EOControl/EONSAddOns.h/m: Added declarations to surpress compiler warnings. ([NSObject -eoCompareOnName:]): Adjusted casts to surpress compiler warnings. (GSUseStrictWO451Compatibility): Added function. (GDL2GlobalLock, GDL2GlobalRecursive): Ditto. * EOControl/EONull: Remove implementations for foundation libraries without key value coding and fully rely on NSNull. Added assertions in all intance methods as instances should never be created. ([EONull +allocWithZone:]) Corrected method name so it will actually be used. * EOControl/EOSortOrdering.m ([NSArray sortedArrayUsingKeyOrderArray:]): Tidied. ([NSMutableArray sortUsingKeyOrderArray:]): Ditto. ([EONull compareAscending:]): Sync with referencs implementation. ([EONull compareDescending:]): Ditto. ([EONull compareCaseInsensitiveAscending:]): Ditto. ([EONull compareCaseInsensitiveDescending:]): Ditto. * EOAccess/EOAdaptor.h: Added comment about API compatibility. * EOAccess/EOAdaptor.m ([EOAdaptor -contexts]): Return array of adaptor contexts rather tham GC-wrapper objects containing adaptor contexts. ([EOAdaptor -databaseEncoding]): Use GSEncodingName() instead of GetEncodingName(). * EOAccess/EODatabaseContext.m ([EODatabaseContext -_turnFault:gid:editingContext:isComplete:]): Use GSObjCClass() instead of trying to access isa by dereferencing from id with incorrect member. * EOAccess/EOModel.m ([EOModel -entityNames]): Sort returned array to insure comparable output. * EOAccess/EOSQLExpression.m ([EOSQLExpression sqlStringForArrayOfQualifiers:operation:]): Added cast to surpress compiler warning. * EOAccess/EOUtilities.m ([EOObjectStoreCoordinator setModelGroup:]): Ditto. * EOAccess/EORelationship.h ([EORelationship -docComment]): Added declaration. * EOAccess/GNUmakefile: Added EODefines.h and EODepricated.h. * Tools/*.m: Use RCS_ID macro. * Tools/EOAttribute+GSDoc.h: ([EOAttribute gsdocContentWithTagName:idPtr:]): Corrected Typo. * Tools/EOModel+GSDoc.h/m: ([EOModel gsdocContentSplittedByEntities:idPtr:]): Ditto. * Tools/EORelationship+GSDoc.m: ([EORelationship gsdocContentWithTagName:idPtr:]): Change variable type to supress compiler warnings. * Tools/eoutil.m (dump): Initialize variables to supress compiler warnings. * Tools/gsdoc-model.m: Include GSCategories.h to supress compiler warnings. (main): Added cast to supress compiler warning. Fixed typo in method invocation. 2003-03-25 Stephane Corthesy * EOControl/EODefines.h: Added new file for export/win32 support. * EOControl/EODepricated.h: Added new file for depricated features. * EOControl/EOControl.h: Added EOArrayDataSource.h and EODefines.h. * EOControl/EOArrayDataSource.h/m: Added new files. Some methods ( and qualifier bindings) are empty stubs. * EOControl/EODebug.h: Use export macro instead of explicit extern for function and symbol declarations. * EOControl/EOGlobalID.h: Ditto. * EOControl/EONull.h: Ditto. * EOControl/EOObjectStore.h: Ditto. * EOControl/EOOrQualifier.m: Replaced autorelease by AUTORELEASE and fixed typo. * EOControl/EOQualifier.m ([NSArray -filteredArrayUsingQualifier:]): Implemented. * EOControl/EONSAddOns.m: Use volatile in some exception handlers (man longjmp for more info). * EOControl/EOSortOrdering.h/m ([EOSortOrdering -copyWithZone:]): Implemented . ([EOSortOrdering -encodeWithKeyValueArchiver:]): Implemented. * EOAccess/EODefines.h: Added new file for export/win32 support. * EOAccess/EODepricated.h: Added new file for depricated features. * EOAccess/EOAccess.h: Added EODefines.h. * EOAccess/EOSQLExpression.h/m: Fixed typo for EOPrimaryKeyConstraintKey. * EOAccess/EOExpressionArray.h/m: Use volatile for variables usein in exception handlers. (man longjmp for more info) * EOAccess/EODatabase.h: Use export macro instead of explicit extern for function and symbol declarations. * EOAccess/EOEntity.h: Ditto. * EOAccess/EOModel.h: Ditto. * EOAccess/EOSchemaGeneration.h: Ditto. * EOAccess/EOSQLExpression.h: Ditto. * EOAccess/EOUtilities.h: Ditto. * Tools/eoutil.m (dump): Implemented use of -postinstall option. Corrected bug when getting adaptor's expression class. Renamed symbol EOPrimaryKeyContraintsKey into EOPrimaryKeyConstraintsKey. 2003-03-21 Manuel Guesdon * EOAccess/EODatabaseContext.m: o added assert in _primaryKeyForObject: o in -recordChangesInEditingContext test nil/eonull on relationshipCommitedSnapshotValue and relationshipSnapshotValue instead of only nil testing o in -recordChangesInEditingContext fix for value changing testing when commitedSnapshotValue is nil/EONull * EOAccess/EOEntity.m: o logs o fix in inverseRelationshipClassPropertyNames to test on destination entity property names * EOControl/EOClassDescription.m: o logs * EOControl/GNUmakefile: o added EONSAddOns.h * EOCOntrol/EOKeyValueCoding.m: o fixes in NSArray -computeXXForKey: * EOAccess/EOSQLExpression.m: o assert in -sqlStringForKeyValueQualifier: o -sqlStringForArrayOfQualifiers:operation: hanlde different qualifier cases using isKindOfClass: may probably be improved o logs * EOControl/EOEditingContext.m: o fix in unprocessedInfo (invert/change swap). * EOControl/EOQualifier.m o -qualifierWithQualifierFormat:varargList: raise exception if operator is unknwon * EOControl/EOMutableKnownKeyDictionary.m: o add precision in exception message * EOAccess/EORelationship.m: o more info in some logs o fix in -_sourceRowToForeignKeyMapping for foreign keys which are not in primaryKey. * EOControl/EODatabaseOperation.m: o in -setDatabaseOperator: Don't Delete a not inserted object * EOControl/EOAccessFault.m: o logs o EOAccessFaultHandler: -dealloc fix: call super dealloc o implement faultWillFire: This fix a hard memory problem * EOControl/EOFault.m: o -dealloc: fix possible infinite loop o logs * EOCheapCopyArray.m: o ucomment retain/release/... o fix shallowCopy for memory management. This was causing hard memory trouble 2003-03-12 Mirko Viviani * EOControl/EOClassDescription.m ([EOClassDescription +initialize]): initialize (if present) the default model group. This helps +classDescriptionFor* to work correctly. 2003-03-06 David Ayers * config/postgres.m4: Updated CPPFLAGS and LIBS to account for distributions default installations. * configure: Regenerated. * Tools/EOAttribute+GSDoc.m ([EOAttribute -gsdocContentWithPtr:]): Removed superfluous semicolon in method definition. * EOAccess/EODatabaseContext.m: Fixed minor typo in comment. * EOAccess/EOEntity.m ([EOEntity -description]): Return the description of the encoded property list. ([EOEntity -debugDescription]): Implements original description method. ([EOEntity -classProperties]): Added cast to supress compiler warning. 2003-02-24 Mirko Viviani * EOAccess/EOUtilities.h: added EOObjectStoreCoordinator. 2003-02-17 David Ayers * EOControl/EOSortOrdering.m: Added documentation. Check FOUNDATION_HAS_KVC to determine whether EONull categories should be applied to NSNull instead. ([EOSortOrdering +sortOrderingWithKey:selector:]): Use AUTORELEASE instead of -autorelease. ([EOSortOrdering -initWithKey:selector:]): Use ASSIGNCOPY instead of ASSIGN to set key to insure immutability. ([EOSortOrdering -description]): Implemented. ([NSArray (EOKeyBasedSorting) compareUsingSortOrderings()): New function. ([NSArray (EOKeyBasedSorting) -sortedArrayUsingKeyOrderArray:]): Reimplemented using [NSArray -sortedArrayUsingFunction:context:] with new compareUsingSortOrderings() function. ([NSMutableArray (EOKeyBasedSorting) -sortUsingKeyOrderArray:]): Reimplemented using [NSMutableArray -sortUsingFunction:context:] with new compareUsingSortOrderings() function. ([NSMutableArray -_sortUsingKeyOrder:fromIndex:count:]): Removed. 2003-02-13 David Ayers * EOControl/EOAndQualifier.m: Added documentation. ([EOAndQualifier +qualifierWithQualifiers:]), ([EOAndQualifier -initWithQualifiers:]): Synchronize implementation. ([EOAndQualifier -initWithQualifierArray:]): Change ASSIGN to ASSIGNCOPY when setting qualifier array (insuring immutability). ([EOAndQualifier -copyWithZone:]): remove (use implementation from superclass). * EOControl/EOKeyComparisonQualifier.m: Added documentation. ([EOKeyComparisonQualifier +qualifierWithLeftKey:operatorSelector:rightKey:]): Use AUTORELEASE() instead of -autorelease. ([EOKeyComparisonQualifier -initWithLeftKey:operatorSelector:rightKey:]): Use ASSIGNCOPY instead of ASSIGN to insure immutable keys. Added comment about possible selector assertion. ([EOKeyComparisonQualifier -copyWithZone:]): remove (use implementation from superclass). ([EOKeyComparisonQualifier -evaluateWithObject:]): Try to call the receivers selector before attempting to fallback on other mechanisms to evaluate the object. Adjusted local variable names and fixed fallback Equal, NotEqual and Contains comparisons. ([EOKeyComparisonQualifier -description]): Fall back to NSStringFromSelector() if +stringForOperatorSelector returns nil. * EOControl/EOKeyValueQualifier.m: Added documentation ([EOKeyValueQualifier +qualifierWithKey:operatorSelector:value:]): Use AUTORELEASE() instead of -autorelease. ([EOKeyValueQualifier -initWithKey:operatorSelector:value:]): Use ASSIGNCOPY instead of ASSIGN to insure immutable key. Added comment about possible selector assertion. ([EOKeyValueQualifier -copyWithZone:]): remove (use implementation from superclass). ([EOKeyValueQualifier -evaluateWithObject:]): Try to call the receivers selector before attempting to fallback on other mechanisms to evaluate the object. Adjusted local variable names and fixed fallback Equal, NotEqual and Contains comparisons. ([EOKeyValueQualifier -description]): Fall back to NSStringFromSelector() if +stringForOperatorSelector returns nil. * EOControl/EONotQualifier.m: Added documentation. ([EONotQualifier -copyWithZone:]): remove (use implementation from superclass). ([EONotQualifier -evaluateWithObject:]): Implemented. * EOControl/EOOrQualifier.m: Added documentation. ([EOOrQualifier +qualifierWithQualifiers:]), ([EOORQualifier -initWithQualifiers:]): Synchronize implementation. ([EOOrQualifier -copyWithZone:]): remove (use implementation from superclass). ([EOOrQualifier -evaluateWithObject:]): Corrected implementation. * EOControl/EOQualifier.m: Added documentation ([EOQualifier +initialize]), (getKey()): Replace autorelease with AUTORELEASE(). ([EOQualifier -copyWithZone:]): RETAIN() instead of NSCopyObject(). ([EOQualifier +variableWithKey:]): Corrected implementation. 2003-02-06 David Ayers * EOAccess/EOModel.m ([EOModel -encodeTableOfContentsIntoPropertyList:]), ([EOModel -initWithPropertyList:owner:]), ([EOModel -encodeIntoPropertyList:]), ([EOModel -addEntity:]), ([EOModel -removeEntity:]), ([EOModel -beautifyNames]), ([EOModel -setCreateMutableObjects:]): Do not access _entities until cache is triggered. * EOAccess/EOModel.m ([EOModel +findPathForModelNamed:]), ([EOModel -gcDecrementRefCountOfContainedObjects]), ([EOModel -storedProcedures]), ([EOModel -initWithContentsOfFile:]), ([EOModel -initWithTableOfContentsPropertyList:path:]), ([EOModel -initWithPropertyList:owner:]), ([EOModel -_classDescriptionNeeded:]), ([EOModel -_entityForClass:]), ([EOModel -_addEntityWithPropertyList:]), ([EOModel -_addEntity:]), ([EOModel -_verifyBuiltEntityObject:named:]): replaced NSDebugMLLog with EOFLOGObject/ClassLevelArgs. * EOAccess/EOModel.m ([EOModel -description]), ([EOModel -addEntity]), ([EOModel removeEntity]): Make temporary objects autoreleased versions instead explicit release handling. * EOAccess/EOAdaptor.m ([EOAdaptor +adaptorWithName:]): reinserted accessing adaptor class by principal class of bundle as fallback in case EOAdaptorClassName isn't found. Raise an exception if the provided class is not a subclass of EOAdaptor. * EOAccess/EOAdaptor.m ([EOAdaptor +adaptorWithName:]), ([EOAdaptor -fetchedValueForValue:attribute]), ([EOAdaptor -fetchedValueForStringValue:attribute]): replaced NSLog/NSDebugMLLog with EOFLOGObject/ClassLevelArgs. * EOAccess/EOAdaptor.m ([EOAdaptor +adaptorWithModel:]), ([EOAdaptor +adaptorWithName:]), ([EOAdaptor +availableAdaptorNames]): replaced autorelease with AUTORELEASE(). * EOAdaptors/Postgres95Adaptor/Info.plist: Added EOAdaptorClassName entry. 2003-02-04 Stephane Corthesy * Tools/eoutil.m: implemented. * EOAndQualifier.m: replaced autorelease by AUTORELEASE * EOClassDescription.m: added #include and note about subclassing NSClassDescription * EOEditingContext.m: removed EOAccess inclusion; note that we need to rewrite -faultForRawRow:entityNamed:editingContext: to break dependency to EOAccess * EOFault.m: implemented +doesNotRecognizeSelector: * EOFaultHandler.m: added #include and #include * EOFetchSpecification.m: added #import * EOGenericRecord.h: declaration of -valueForKey: and -takeValue:forKey: needs to be done only when !FOUNDATION_HAS_KVC * EOGenericRecord.m: removed #import and #import ; added #include ; declared +eoCalculateSizeWith:forArray:; corrected +initialize (doesn't return a value); renamed +removeDestoyedObject: to +removeDestroyedObject:; modified -initWithEditingContext:classDescription:globalID: to no longer depend on EOAccess via EOEntity; some methods need to be implemented only when !FOUNDATION_HAS_KVC (else they are already correctly implemented in NSObject), some others only when FOUNDATION_HAS_KVC (-handleQueryWithUnboundKey: and handleTakeValue:forUnboundKey:); in -smartTakeValue:forKey:, removed dependency to EOAccess via EORelationship; corrected problem with macro NSDebugMLog, which should be replaced by other macro anyway; modified -eoCalculateSizeWith: to no longer depend on EOAccess via EOEntity * EOGlobalID.m: added #include and #include ; added cast in +assignGloballyUniqueBytes: * EOKeyComparisonQualifier.m: added casts * EOKeyGlobalID.m: replaced retain by RETAIN * EOKeyValueCoding.h: removed #import ; added - (id)storedValueForKeyPath: (NSString *)key; declared some methods only when !FOUNDATION_HAS_KVC; declared hidden methods for MacOS X. * EOKeyValueCoding.m: added #include ; implemented some methods only when !FOUNDATION_HAS_KVC; corrected problem with macros NSDebugMLog/NSWarnLog, which should be replaced by other macro anyway; declared -[NSMutableDictionary(EOKeyValueCodingPrivate) takeValue:forKeyPath:isSmart:]; corrected zombie in -[NSMutableDictionary(EOKeyValueCoding) takeValue:forKeyPath:isSmart:] * EOKeyValueQualifier: added casts * EOMutableKnownKeyDictionary.m: added #warning about missing method; moved method implementation to avoid warning * EONSAddOns.m: added casts * EOObjectStoreCoordinator.m: corrected problem with macro NSDebugMLog, which should be replaced by other macro anyway * EOQualifier.m: added #include ; corrected problem with macro NSDebugLog, which should be replaced by other macro anyway; replaced retain by RETAIN; in -doesContain:, no need to test against NSMutableArray class * EOSortOrdering.m: replaced retain by RETAIN; avoid autoreleased objects; replaced mutableCopy by initWithArray:copyItems: 2003-02-03 Stephane Corthesy * Postgres95Adaptor.m: made some changes to externalTypeNames (needs to be reviewed completely!); avoided needless autoreleased object * Postgres95Channel.m: avoided needless autoreleased object ; added arg to NSDebugMLLog (should be replaced by other log macro); use macros RETAIN, AUTORELASE; when invoking PQexec, added ending ";" to statement (necessary for inserts, at least) * Postgres95SQLExpression.m: replaced #import by smaller #imports; commented out use of external type 'datetime' (obsolete?); corrected bug in +formatValue:forAttribute: (error when escaping special characters); overloaded +dropTableStatementsForEntityGroup: to append CASCADE (maybe this should be done in EOSQLExpression class?), else it is not possible to drop tables which contain foreign key constraints; overloaded +prepareConstraintStatementForRelationship:sourceColumns: destinationColumns: to append DEFERRABLE INITIALLY DEFERRED (maybe this should be done in EOSQLExpression class?) * Postgres95Values.h: made Postgres95Values inherit from NSObject, else ObjC runtime doesn't like it and crashes! * EOAdaptor.m: added #import ; corrected bug when instantiating adaptor: class name needs to be taken exclusively from infoDictionary, because a framework's principalClass is indeterminate (is it?); corrected var type; added empty implementation of EOLoginPanel class (is the method named "administraticeConnectionDictionaryForAdaptor:" correct? Shouldn't it be "administrativeConnectionDictionaryForAdaptor:" ??) * EOAttribute.m: added #include ; use -[NSTimeZone name] instead of -[NSTimeZone timeZoneName] (also on GNUstep?) * EODatabaseChannel.m: corrected bug with macro NSDebugMLog (which should be replaced by other macro...); in -fetchObject, added support for raw rows (works for me, but I'm not sure whether it is totally correct: _fetchSpecifications ivar is used nowhere!); avoided use of autoreleased objects; in -_selectWithFetchSpecification:editingContext:, uncommented last part to allow support for raw rows. * EODatabaseContext.h: added #import * EODatabaseContext.m: #import only when FOUNDATION_HAS_KVC? ; added declaration of -entityForGlobalID:; replaced some retain by RETAIN; in objectsWithFetchSpecification:editingContext:, added support for raw rows (adapted code of non raw rows => needs refactoring); added missing cast; corrected bug with macro NSDebugMLog (which should be replaced by other macro...) * EODatabaseDatasource.m: added #import ; added declaration of -_partialInitWithEditingContext:entityName:fetchSpecificationName: * EOEntity.m: corrected bugs with lazy loading of ivars by using _flags.updating, in -initWithPropertyList:owner:, and by using methods instead of direct access to ivars; in -classProperties, corrected problem with vars containing sometimes strings, sometimes EOAttribute/EORelationship! (very weird way of lazy initialization... Should be reviewed); added use of _flags.updating in -relationships and -attributes; in -isPrimaryKeyValidInObject:, no longer tests against [NSNull null], because [EONull null] == [NSNull null]; replaced some retain by RETAIN; in -addAttribute:, -removeAttribute:, -addRelationship: and -removeRelationship:, corrected nasty bug due to mutableCopy: now we are independant of mutableCopy implementation (deep or shallow copy), as implementation changed these last days and might change again. Added -_setClassName: to allow modification without calling willChange, when necessary (init); modified _setIsEdited to test _flags.updating; in -awakeObject:fromInsertionInEditingContext:, corrected conditions to create relationship (propagatesPrimaryKey has nothing to do with it, whereas isMandatory is important) * EOModel.m: added #include and #import ; changed search strategy for models by using NSSearchPathForDirectoriesInDomains(); replaced some retain by RETAIN; avoided use of mutableCopy and copy * EORelationship.m: replaced some retain by RETAIN; avoided use of mutableCopy and copy * EOSQLExpression.m: added declaration of +sqlExpressionWithEntity:; added +foreignKeyConstraintStatementsForEntityGroup: and +foreignKeyConstraintStatementsForEntityGroups:; in +createTableStatementsForEntityGroup:, corrected call to listString; in +schemaCreationStatementsForEntities:options:, reordered defaults[] to allow correct SQL generation (you drop first, then create) and corrected method to invoke for EOForeignKeyConstraintsKey; corrected -columnTypeStringForAttribute: and -addCreateClauseForAttribute: * EOSchemaGeneration.h: corrected documentation * EOStoredProcedure.m: added #import * EOUtilities.h: removed duplicate delcaration of -objectsOfClass: * EOUtilities.m: added #import ; corrected bug with macro NSDebugMLog (which should be replaced by other macro...); corrected type casting; added type casting. 2003-02-02 Mirko Viviani * EOControl/EOGenericRecord.m ([EOGenericRecord +initialize]): import NSAutoreleasePool. * EOControl/EOGlobalID.m ([EOGlobalID +initialize]): removed dependency from EOAccess. * EOControl/EOFetchSpecification.m ([EOFetchSpecification +initialize]): likewise. ([EOFetchSpecification +fetchSpecificationNamed:entityNamed:]): readded since it is replaced by the category in EOUtilitites ! 2003-01-31 Manuel Guesdon * EOAccess/EOAdaptorChannel.m: o replaced NSDebugMLLog by EOFLOGObjectLevel/EOFLOGObjectLevelArgs * EOAccess/EOAttribute.m: o replaced NSDebugMLLog by EOFLOGObjectLevel/EOFLOGObjectLevelArgs * EOAccess/EODatabaseChannel.m: o replaced NSDebugMLLog by EOFLOGObjectLevel/EOFLOGObjectLevelArgs o Move registration for EODatabaseChannelNeddedNotification from +load to +initialize. (David Ayers ) * EOAccess/EODatabaseContext.m: o Move registration for EODatabaseChannelNeddedNotification from +load to +initialize. (David Ayers ) * EOAccess/EOEntity.m: o in - (void) _setIsEdited, autorelease instead of destroy * EOAccess/EORelationship.m o -validateValue: don't raise not implemented exception o initialize variables in -foreignKeyInDestination * EOAccess/EOSQLExpression.m: o added NSAsserts o use anyRelationshipNamed: instead of relationshipNamed: to find hidden relationships * EOControl/EOClassDescription.m o -displayNameForKey: use -stringWithCapacity instead of +alloc -initWithCapacity (missing autorelease) o -validationExceptionWithFormat: initialize variables o -aggregateExceptionWithExceptions: initialize variables o -aggregateExceptionWithExceptions: autorelease copied value o -exceptionAddingEntriesToUserInfo: initialize variables o -exceptionAddingEntriesToUserInfo: autorelease copied userInfo o -snapshot autorelease copied value o -updateFromSnapshot: autorelease copied value * EOControl/EOFetchSpecification.h: o added +fetchSpecificationWithEntityName:qualifier:sortOrderings:usesDistinct:isDeep:hints: o added +fetchSpecificationWithEntityName:qualifier:sortOrderings:usesDistinct: * EOControl/EOFetchSpecification.m: o added +fetchSpecificationWithEntityName:qualifier:sortOrderings:usesDistinct:isDeep:hints: o added +fetchSpecificationWithEntityName:qualifier:sortOrderings:usesDistinct: o removed +fetchSpecificationNamed:entityNamed: (implemented in EOUtilities) o Insure that EODatabaseContext is initialized early. (David Ayers ) * EOControl/EOGenericRecord.m o in -eoFormatSizeDictionary: handle /0 o in +eoCalculateAllSizeWith: don't de-fault objects o in +eoCalculateAllSizeWith: manage a local autorelease pool * EOControl/EOKeyValueCoding.h: o added -smartTakeValue:forKey: o -smartTakeValue:forKeyPath: o -storedValuesForKeyPaths: * EOControl/EOGlobalID.m: o Insure that EODatabaseContext is initialized early. (David Ayers ) * EOControl/EOQualifier.m: o +operatorSelectorForString:]): Parse 'doesContain' instead of 'contains' (David Ayers ) * EOControl/EODebug.m: o include NSDebug.h 2003-01-21 David Ayers * EOControl/EOQualifier.m ([EOQualifier +allQualifierOperators]): ([EOQualifier +relationalQualifierOperators]): ([EOQualifier +stringForOperatorSelector:]): fixed array initialization and renamed 'contains' to 'doesContain'. 2003-01-16 Mirko Viviani * EOControl/EOObserver.m: Added implementation for EODelayedObserver and EODelayedObserverQueue. 2003-01-16 David Ayers * EOAdaptors/Postgres95/Postgres95Adaptor.m: Added import of NSDebug.h/EODebug.h Removed NSLog of connection information * EOAdaptors/Postgres95/Postgres95Channel.m * EOAdaptors/Postgres95/Postgres95Context.m * EOAdaptors/Postgres95/Postgres95Expression.m * EOAdaptors/Postgres95/Postgres95Value.m: Added import of NSDebug.h/EODebug.h * EOControl/EOControl.h: Added import of EOUndoManager.h * EOControl/EOObserver.m: Added empty implementation for EOObserverProxy 2002-12-31 Mirko Viviani * EOControl/EOFault.m ([EOFault -editingContext]): simplified. Converted NSDebug* to EOFLOGObjectLevel. * EOAccess/EOUtilities.m|.h ([EOObjectStoreCoordinator -modelGroup]), ([EOObjectStoreCoordinator -setModelGroup:]): moved from EOControl/ EOObjectStoreCoordinator.m * EOAccess/EOUtilities.m|.h ([EOFetchSpecification +fetchSpecificationNamed:entityNamed:]): moved from EOControl/ EOFetchSpecification.m * EOControl/EOFetchSpecification.m ([EOFetchSpecification +fetchSpecificationNamed:entityNamed:]): return nil. * EOAccess/EOAccessFault.m|.h ([EOFault -databaseContext]): moved from EOControl/EOFault.m * added missing include, include config.h in all .m files. * EOControl/EOEditingContext.m ([EOEditingContext -tryToSaveChanges]), ([EOEditingContext -saveChanges:]): use respondsToSelector: 2002-12-30 Markus Hitter * EOAdaptors/Postgres95/Postgres95Channel.m ([Postgres95Channel -describeTableNames]): implemented. 2002-12-30 Mirko Viviani * EOAccess/EOSQLExpression.h: added missing declaration. * EOAccess/EORelationship.m ([EORelationship -removeJoin:]): added cast. * EOAccess/EOModel.m ([EOModel -dealloc]): removes observer correctly. * EOAccess/EODatabaseContext.h: added missing declaration. * EOControl/EOFetchSpecification.m ([EOFetchSpecification -copyWithZone:]): fixed cast. ([EOFetchSpecification -hints]): added cast. * EOControl/EOClassDescription.m ([NSException +validationExceptionWithFormat:]), ([NSException +aggregateExceptionWithExceptions:]), ([NSException -exceptionAddingEntriesToUserInfo:]): renamed local variables. * rearranged header inclusion in all sources. 2002-12-29 Mirko Viviani * EOAccess/EODatabaseContext.m ([EODatabaseContext -initializeObject: row:entity:editingContext:]): set nil instead of EONull * EOControl/EONull.m: included config.h 2002-12-17 Mirko Viviani * EOAccess/EOEntity.m ([EOEntityClassDescription -inverseForRelationshipKey:]): Fixed to return a relationship name that is a class property. 2002-12-14 Mirko Viviani * EOAccess/EORelationship.m ([EORelationship -foreignKeyInDestination]): use destinationEntity to search for pk. * EOAccess/EODatabaseContext.m ([EODatabaseContext -_buildPrimaryKeyGeneratorListForEditingContext:]): check if the relationship propagates the pk to an entity pk. ([EODatabaseContext -relayAttributesInRelationship:sourceObject: destinationObject:]): record updates for relationship with fk and the ones that propatates pk. 2002-12-08 Mirko Viviani * EOAccess/EOEntity.m ([EOEntity -classDescriptionForInstances]): retain newly created classDescription. * EOAccess/EOAdaptor.m ([EOAdaptor -isValidQualifierType:model:]): implemented. * EOControl/GNUmakefile (libgnustep-db2control_HEADER_FILES): removed GCObject.h * EOAccess/EODatabaseContext.m: * EOAccess/EORelationship.m: * EOAccess/EOEntity.m: * EOControl/EOMutableKnownKeyDictionary.m: * EOControl/EOEditingContext.m: replaced EOFLOGObjectLevelArgs with EOFLOGObjectLevel in absence of args. (fixed problems with gcc 2.95) 2002-12-07 Mirko Viviani * EOAccess/EOEntity.m ([EOEntity -isPrimaryKeyValidInObject:]): check for NSNull objects. 2002-12-06 Mirko Viviani * EOAccess/EOUtilities.h: added prototype. 2002-12-05 Mirko Viviani * EOAccess/EODatabaseContext.m ([EODatabaseContext +_registerDatabaseContext:]): added a warning if the specified model is not found. * EOAdaptors/Postgres95/Makefile.preamble.in (LIBRARIES_DEPEND_UPON): added postgres libs here. 2002-12-04 Mirko Viviani * EOModeler/EOModelExtensions.m ([EOEntity -classAttributes]): ([EOEntity -classScalarAttributes]): ([EOEntity -classNonScalarAttributes]): ([EOEntity -classToManyRelationships]): ([EOEntity -classToOneRelationships]): fixed to use class properties. * EOAccess/EOEntity.m ([EOEntity -initWithPropertyList:owner:]): read .fspec only if exists. * EOControl/EOKeyValueCoding.m ([NSArray -valueForKeyPath:]): implemented the case of invoking an aggregate function using a simple key. * EOControl/EOGenericRecord.m ([EOGenericRecord -_infoForInstanceVariableNamed:retType:retSize:retOffset:]): renamed GSObjCFindInstanceVariable in GSFindInstanceVariable * config/postgres.m4: check in /usr/local/include and /usr/local/lib * EOModeler/GNUmakefile: install headers in EOModeler/ 2002-12-01 Manuel Guesdon * EOAccess/EODatabase.m o in -entityForObject: test for EONull or nil instead of just nil * EOAccess/EODatabaseContext.m: o in -valuesForKeys:object: test for EONull or nil instead of just nil * EOControl/EOGenericRecord.m: o replaced GSObjCFindVariable by GSObjCFindInstanceVariable o replaced GSObjCGetValue by GSGetValue o replaced GSObjCSetValue by GSSetValue * EOAccess/EOSQLExpression.m: o changed assertion message in -sqlStringForAttributeNamed: * EOAccess/EOSQLQualifier.m: o finished EOAndQualifier -schemaBasedQualifierWithRootEntity implementation o done EOOrQualifier -schemaBasedQualifierWithRootEntity implementation o modified EOKeyValueQualifier -schemaBasedQualifierWithRootEntity: to use EONull for EONull value relationship attribute value so it will make sql like is null instead of = NULL which doesn't work on Postgresql. 2002-11-30 Manuel Guesdon * EOAccess/EODatabaseContext.m o logs o changes in _primaryKeyForObject: to handle inserted "child" of already existing object case * EOControl/EODetailDataSource.m: o implemented -description 2002-11-28 Richard Frith-Macdonald * EOAccess/EOEntity.m: Patch by David Ayers. * EOAccess/EOExpressionArray.m: Update for latest GSObjCRuntime stuff. * EOControl/EOGenericRecord.m: ditto * Tools/Makefile.preamble: Fix library lookup for link 2002-11-27 Richard Frith-Macdonald * gdl2.make.in: simplify libraries ... let which_lib sort them out. * Tools/GNUmakefile.preamble: ditto 2002-11-27 Manuel Guesdon * EOAccess/EOModel.m: o fixed typo in -entityNamed: 2002-11-27 Richard Frith-Macdonald * EOAccess/EOModel.h: * EOAccess/EOModel.m: Appplied David Ayers patch for programmatic model manipulation. Fixed typo. Use NSFileManager rather than mkdir(). Tidied some use of autorelease for memory efficiency etc. * EOControl/EOGenericRecord.m: update to use GSFindInstanceVariable() 2002-11-26 Manuel Guesdon * EOAccess/EOEntity.m: o implemented flattened relationship handling in -EOEntity _parseRelationshipPath: * EOAccess/EOAccessFault.m: o fixed logs in -EOAccesFaultHandler dealloc o added [super dealloc] in -EOAccesFaultHandler dealloc o added logs in -EOAccessArrayFaultHandler dealloc * EOAdaptors/Postgres95/Postgres95Channel.m: o removed log * EOAccess/EOAdaptorChannel.m o Handle direct SQL query case in -dictionaryWithObjects:forAttributes:zone: * EOAccess/EOClassDescription.m o implement some cases in -addObject:toBothSidesOfRelationshipWithKey: * EOControl/EOGenericRecord.m: o avoid infinit loop in -description * EOAccess/EODatabaseContext.m o implement some cases in -entitiesOnWhichThisEntityDepends: o changed return type of -entitiesOnWhichThisEntityDepends: 2002-11-25 Richard Frith-Macdonald Tagged all files as 'with-extensions' Committed new versions of very many files with dependency on the obsolete extensions library removed. gdl2 should now only need the base library (or perhaps MacOS-X foundation plus a port of the Additions library from the base library package, when someone wants to do the port). 2002-11-24 Richard Frith-Macdonald * EOAdaptors/Makefile.postamble: New file to clean configure generated files. * EOAdaptors/Postgres95/Makefile.postamble: New file to clean configure generated files. * EOAdaptors/Postgres95/Makefile.preamble: remove .. generated automatically. Fixes suggested by David Ayers 2002-11-18 Mirko Viviani * EOControl/EOKeyValueQualifier.m: * EOControl/EOAndQualifier.m: * EOControl/EOKeyComparisonQualifier.m: * EOControl/EONotQualifier.m: * EOControl/EOOrQualifier.m: remove references to EOAccess. 2002-11-16 Richard Frith-Macdonald * EOAccess/EOExpressionArray.m: Correct reference to obsolete behavior function call (removed from public api a few years back and recently removed from internal code too). * EOControl/EOFault.m: Remove GNU property list method no longer used/nneeded. 2002-11-14 Manuel Guesdon * EOAcces/EODatabaseDataSource.m: o corrected bug in -description * EOAdaptors/Postgres95/Postgres95SQLExpression.m o change in +formatValue:forAttribute: to handle string value for dates 2002-11-14 Mirko Viviani * EOAdaptors/*, EOAccess/*, EOControl/*: removed some warnings. 2002-11-13 Manuel Guesdon * EOAcces/EODatabaseContext.m: o corrected bug o logs * EOAccess/EODatabaseOperation.m: o -setDatabaseOperator: change to not update deleted objetcs * EOAccess/EOEntity.m: o -_attributesToFetch added exception handling * EOAccess/EOSQLExpression: o use sqlExpressionWithEntity instead of alloc/init * EOControl/EOEditingContext.m: o _processOwnedObjectsUsingChangeTable:deleteTable: bug correction in new/existing value handling o doc * EOControl/EOGenericRecord.m: o log changes * EOControl/EOKeyValueCoding.m: o added -takeStoredValue:forKeyPath: o added -storedValuesForKeyPaths: o corrected bug in NSArray -valueForKey: o corrected bugs in NSArray -valueForKeyPath: * EOAccess/EOUtilities.m o handle nil value in rawRowsMatchingValue:forKey:entityNamed: o handle nil value in objectsMatchingValue:forKey:entityNamed: o handle nil value in objectWithPrimaryKeyValue:entityNamed: * EOAccess/EOAttribute.m o destroy docComment in -dealloc * EOAdaptors/Postgres98/Postgres95Values.m: o comment o use stringWithCString.. instead of alloc/init/release * EOControl/EOMultipleKnownKeyDictionary.h o added -debugDescription * EOControl/EONull.m: o added -NSNull -valueForKey: * EOAccess/EOQualifier.m: o in getKey: autorelease key o in -qualifierWithQualifierFormat:varargList: user [NSMutableArray array] instead [NSMutableArray new]/DESTROY to avoid memory leak if an exception is raised 2002-11-04 David Ayers * EOControl/EOSortOrdering.m: o changed -sortedArrayUsingKeyOrderArray: * EOControl/EOQualifier.m: o improved -qualifierWithQualifierFormat: parsing 2002-10-31 David Ayers * EOControl/EOQualifier.m: o improved -qualifierWithQualifierFormat: parsing o added NSNumber -initWithString as EOQualiferExtra * EOControl/EOKeyValueQualifier.m: o changed -description * EOControl/EOKeyComparisonQualifier.m: o changed -description 2002-09-22 Mirko Viviani * Makefile.postamble: install gdl2.make. 2002-09-22 Mirko Viviani * configure.ac: added adaptors configuration. * config/postgres.m4: check for postgres db. * EOAdaptors/Postgres95/GNUmakefile.in: new file. * EOAdaptors/Postgres95/Makefile.preamble.in: new file. 2002-09-20 Mirko Viviani * configure.ac: new file. * gdl2.make.in: new file. * config.h.in: new file. 2002-09-20 Mirko Viviani * Indented all the sources and removed many warnings. * Moved EOCheapArray.m|h, EONSAddOns.m|h and EODebug.m|h to EOControl. * Moved EOUtilities.m|h to EOAccess. * Moved EOQualifierSQLGeneration in EOAccess/EOSQLQualifier 2002-06-03 Manuel Guesdon * EOAdaptors/Postgres95/Postgres95SQLExpression.m: o NSWarn -> NSWarnLog * EOControl/EOKeyValueArchiver.m: o added -isThereValueForKey: in EOKeyValueUnarchiver * EOControl/EOKeyValueArchiver.h: o added -isThereValueForKey: in EOKeyValueUnarchiver * EOControl/EOSQLExpression.m: o changes for usesDistincts o logs * EOAccess/EODatabaseChannel.m: o fix for refetched objects * EOAccess/EODatabaseContext.m: o fixes in recordChangesInEditingContext * EOAccess/EODatabaseDataSource.m: o logs * EOAccess/EONSAddOns.h/.m o added NSArray -arrayExcludingObject: o added NSArray -containsIdenticalObjectsWithArray: * EOAccess/EORelationship.h/.m: o added isBidirectional: and associated methods (for use with smartTakeValue:forKey:) * EOControl/EOClassDescription.h/.m: o added -relationshipNamed: o added -anyRelationshipNamed: * EOControl/EOGenericRecord.m: o added -smartTakeValue:forKey: * EOControl/EOObjectStoreCoordinator.m: o logs 2002-05-14 Manuel Guesdon * EOControl/EOEditingContext.m: o changes in -saveChangesInEditingContext: to avoid return in the middle of the method o logs * EOAccess/EODatabaseContext.m: o add rollbackChanges on exception in -saveChangesInEditingContext: o corrected bug in initializeObject:row:entity:editingContext: o logs * EOControl/EOKeyValueQualifier.m: o implementation of flatten case in -schemaBasedQualifierWithRootEntity: o logs * EOControl/EODetailDataSource.m o correct bugs by using -decodeObjectForKey: in -initWithKeyValueUnarchiver: o changed _masterEntityName to _masterClassDescriptionName o added -classDescriptionForObjects o logs * EOControl/EODetailDataSource.h: o changed _masterEntityName to _masterClassDescriptionName o added -classDescriptionForObjects * EOControl/EODataSource.m: o logs * EOControl/EOGenericRecord.m: o added -willChange call in _setValueForKey:object:selector:type:size:offset: * EOControl/EOMutableKnownKeyDictionary.m: o corrected bug in -containsObjectsNotIdenticalTo: o logs * EOAccess/EOSQLExpression.m: o logs * EOAdaptors/Postgres95/Postgres95SQLExpression.m: o logs o corrected bugs for empty strings in +formatValue:forAttribute: * EOAccess/EODatabaseDataSource.m o logs * EOAccess/EOEntity.m o logs * EOControl/EOQualifier.m: o logs * EOControl/EOOrQualifier.m: o logs * EOControl/EOAndQualifier.m: o logs * EOControl/EOObserver.m: o logs * EOAccess/EODatabase.m: o logs o avoid fault access in -entityForObject: 2002-04-15 Manuel Guesdon * EOAccess/EOFetchSpecification.m: o changed -fetchSpecification into +fetchSpecification * EOAccess/EOKeyValueCoding.m: o logs o corrected bug: added special case "count" in NSArray -valueForKeyPath: * EOAccess/EOGenericRecord.m: o logs * EOControl/EODetailDataSource.h: o added -initWithKeyValueUnarchiver: * EOControl/EODetailDataSource.m: o added -initWithKeyValueUnarchiver: * EOControl/EOKeyValueArcher.m: o added EOKeyValueArchivingContainer +keyValueArchivingContainer o corrected not autorelease bug in -_objectForPropertyList: o logs * EOControl/EODatabaseDataSource.m: o logs 2002-04-01 Manuel Guesdon * EOAccess/EOModel.h: o added +version * EOAccess/EOStoredProcedure.h: o added +storedProcedureWithPropertyList:owner: * EOAccess/EOEntity.h: o added +entityWithPropertyList:owner: o added -setDocComment: o added +entityClassDescriptionWithEntity: * EOAccess/EOEntity.m: o corrected bug in _keyMapForIdenticalKeyRelationshipPath: (dictionary construction) * EOAccess/EOEntityPriv.h: o retyped -_parseDescription:isFormat:arguments:; * EOAccess/EORelationship.h: o added +relationshipWithPropertyList:owner: * EOAccess/EOAttribute.h: o added +attributeWithPropertyList:owner: o added -setInternalInfo: o added -_normalizeDefinition:path: * EOAccess/EOAttribute.m: o use an id instead of a string for userInfo,... o added -setInternalInfo: * EOAccess/EOExpressionArray.h: o added -valueForSQLExpression: 2002-04-01 Manuel Guesdon * EOControl/EODetailDataSource.h/.m: o added +detailDataSourceWithMasterDataSource:detailKey: * EOAccess/EODatbaseDataSource.m: o changed allocations * EOAccess/EODatabase.m: o changed allocations * EOAccess/EOEntity.m: o changed allocations o corrected not autorelease bug in EOEntity -classDescriptionForInstances * EOControl/EOGlobalID.h/.m: o added EOTemporaryGlobalID +temporaryGlobalID * EOControl/EIEditingContext.m: o changed allocations * EOControl/EOKeyValueQualifier.m: o changed allocations * EOControl/EOObjectStoreCoordinator.m: o changed allocations * EOKeyComparisonQualifier.m: o added +qualifierWithLeftKey:operatorSelector:rightKey: * EONotQualifier.m: o added +qualifierWithQualifier: * EOQualifier.m: o changed allocations * EOAccess/EOAdaptorContext.h/.m: o added +adaptorContextWithAdaptor: * EOAdaptors/Postgres95/Postgres9Adaptor.m: o changed allocations * EOAdaptors/Postgres95/Postgres9Channel.m: o changed allocations * EOAdaptors/Postgres95/Postgres9Context.m: o changed allocations * EOAccess/EOModel.h/.m: o added +model * EOAccess/EOAdaptorChannel.h/.m o added +adaptorChannelWithAdaptorContext: * EOAdaptors/Postgres95/Postgres9Values.m: o changed allocations 2002-03-29 Manuel Guesdon * EOAccess/EODatabaseOperation.m o logs * EOAccess/EODatabaseContext.h/.m o logs o added +databaseContextWithDatabase: o change allocations * EOAccess/EORelationship.m o logs o corrected not autorelease bug in _foreignKeyForSourceRow: o added +relationshipWithPropertyList:owner: * EOAccess/EOJoin.h/.m: o added +joinWithSourceAttribute:destinationAttribute: * EOAccess/EOSQLExpression.m: o added +sqlExpressionWithEntity: * EOAccess/EOAttribute.m: o added +attributeWithPropertyList:owner: * EOAdaptors/Postgres95/Postgres95Channel.m o logs * EOAccess/EODatabaseChannel.m o logs o added +databaseChannelWithDatabaseContext: * EOAccess/EOFault.m: o logs * EOAccess/EOFetchSpecification.m/.h o added +fetchSpecification * EOControl/EOUtilities.m: o corrected not autorelease bug in -objectsMatchingValues:entityNamed: o change qualifiers allocations * EOAccess/EOAndQualifier.m: o added EOAndQualifier +qualifierWithQualifierArray: o added EOAndQualifier +qualifierWithQualifiers: * EOAccess/EOOrQualifier.m: o added EOOrQualifier +qualifierWithQualifierArray: * EOAccess/EOQualifier.h o added EOAndQualifier +qualifierWithQualifierArray: o added EOOrQualifier +qualifierWithQualifierArray: * EOAccess/EOEntity.m: o changed EOMutableKnownKeyDictionary allocation in -_dictionaryForProperties * EOAccess/EOMutableKnownKeyDictionary.h/.m: o added +dictionaryFromDictionary:subsetMapping: * EOAccess/EOModel.h/.m o added +modelWithContentsOfFile: o corrected not autorelease bug o allocation changes * EOAccess/EOModelGroup.m: o Changed EOModel allocation * EOAccess/EODatabase.h/.m: o added +databaseWithModel: * EOAccess/EOAccessFault.h/.m o added EOAccessFaultHandler +accessFaultHandlerWithGlobalID:databaseContext:editingContext: o added EOAccessArrayFaultHandler +accessArrayFaultHandlerWithSourceGlobalID:relationshipName:databaseContext:editingContext: * EOAccess/EODatabaseOperation.h/.m: o added EODatabaseOperation +databaseOperationWithGlobalID:object:entity: * EOAccess/EOAdaptorOperation.h/.m: o added EOAdaptorOperation +adaptorOperationWithEntity: * EOAccess/EODatabaseDataSource.m: o allocation changes * EOAccess/EOStoredProcedure.m: o corrected not autorelease bug in -initWithPropertyList:owner: 2002-03-28 Manuel Guesdon * EOAccess/EODatabaseChannel.m o removed logs o changed logs * EOAdaptors/Postgres95/Postgres95Channel.m o removed logs * EOAccess/EORelationship.m: o NSAssert o added _docComment and associated methods * EOAccess/EORelationship.h: o added _docComment and associated methods * EOAccess/EOSQLExpression.m: o NSAssert o logs * EOAccess/EOEntity.m: o doc o logs o added _docComment and associated methods * EOAccess/EOEntity.h: o added _docComment and associated methods * EOAccess/EOModel.h/.m: o added -adaptorClassname o added _version and -version o added _docComment and associated methods * EOAccess/EOAttribute.h/.m: o added _docComment and associated methods * EOAccess/EOAdaptorChannel.m o logs * EOAdaptors/Postgres95/Postgres95SQLExpression.m: o corrected bug in formatValue:forAttribute: * added Tools/ 2002-03-25 Manuel Guesdon * EOAccess/GNUmakefile: o removed -SystemProjects System o added -Declared EOAccess * EOControl/GNUmakefile: o removed -SystemProjects System o added -Declared EOControl * EOAdaptors/Postgres95/GNUmakefile: o removed -SystemProjects System o added -Declared EOAdaptors/PostgreSQL * EOControl/EOGenericRecord.m: logs * EOAccess/EODebug.h: added EOFLOGClassFnStartCond EOFLOGClassFnStopCond * EOAccess/EODatabaseChannel.m: logs * EOAccess/EORelationship.m: o setDefinition o corrected bug in _makeFlattenedInverseRelationship * EOAccess/EOEntity.m o logs * EOControl/EOQualifier.h o added qualifierWithKey:operatorSelector:value: * EOControl/EOKeyValueQualifier.m: o added qualifierWithKey:operatorSelector:value: * EOAccess/EOModel.m: o removed assert for non EOGenericRecord class in -_classDescriptionNeeded: 2002-03-07 Manuel Guesdon Too much changes 2001-04-10 Mirko Viviani * EOAccess/EOSQLExpression.m ([EOSQLExpression +foreignKeyConstraintStatementsForRelationship:]): implemented. 2001-04-07 Mirko Viviani * EOControl/EOKeyValueCoding.m: import EOControl.h * EOControl/EONull.m: likewise. * EOAccess/EOModel.m ([EOModel -writeToFile:]): implemented. ([EOModel -encodeTableOfContentsInfoPropertyList:]): implemented. * EOAccess/EORelationship.m ([EORelationship -setEntity:]): remove self from previous entity. ([EORelationship -setDefinition:]): remove joins. 2001-01-12 Mirko Viviani * EOModeler: new library. * EOModeler/EOModelExtensions.m/.h: EOModeler categories needed by eogenerator. * EOControl/EOKeyValueCoding.m ([NSArray -valueForKey:]): fixed @x key. 2001-01-06 Mirko Viviani * EOControl/EOControl.h: defined FOUNDATION_HAS_KVC to use Foundation key value coding. * EOAccess/EOAttribute.m ([EOAttribute -adaptorValueByConvertingAttributeValue:]): use EONull null object. * EOAccess/EOSQLExpression.m ([EOSQLExpression -sqlStringForSelector: value:]): likewise. * EOControl/EOKeyValueCoding.m ([NSObject -takeValuesFromDictionary:]): ([NSObject -takeStoredValuesFromDictionary:]): likewise. defined FOUNDATION_HAS_KVC to use Foundation key value coding. 2001-01-03 Mirko Viviani * EOAccess/EODatabaseContext.m ([EODatabaseContext -faultForGlobalID:editingContext:]): use the correct class property array. 2000-12-23 Mirko Viviani * EOAccess/EOEntity.m ([EOEntity -isPrimaryKeyValidInObject:]): fixed. Do not returns from inside an exception handler. * EOAccess/EODatabaseContext.m ([EODatabaseContext -prepareForSaveWithCoordinator:editingContext:]): bug fix. Do not release an autoreleased object. * EOAccess/EODatabaseDataSource.m ([EODatabaseDataSource -fetchSpecificationForFetch]): fixed fetch qualifier. * EOControl/EOKeyValueQualifier.m ([EOKeyValueQualifier -copyWithZone:]): do not copy _value. * EOControl/EOAndQualifier.m ([EOAndQualifier -copyWithZone:]): use correct zone. * EOControl/EOOrQualifier.m ([EOOrQualifier -copyWithZone:]): likewise. * EOControl/EOKeyComparisonQualifier.m ([EOKeyComparisonQualifier -copyWithZone:]): likewise. 2000-12-20 Mirko Viviani * EOAccess/EODatabaseContext.m ([EODatabaseContext -_recordChangesForObjects:operator:]): create dbOperation with the correct entity for to-many relationship objects. 2000-12-11 Mirko Viviani * EOAccess/EOModel.m ([EOModel -_registerClassDescForClass:]): check for NULL _entitiesByClass ([EOModel -dealloc]): release _entitiesByClass ([EOModel -removeEntity:]): bug fix. * EOAdaptors/Postgres95/Postgres95Channel.m ([Postgres -_evaluateCommandsUntilAFetch]): raise an exception on error. 2000-12-10 Mirko Viviani * EOControl/EOKeyValueCoding.m (newGetStoredBinding): fixed value of class variable. 2000-12-09 Mirko Viviani * EOAccess/EOModel.m ([EOModel -_registerClassDescForClass:]): fixed class description registration. ([EOModel -_registerClassDescForEntityName:]): likewise. ([EOModel -addEntity:]), ([EOModel -removeEntity:]): save EOEntity in _entitiesByClass. 2000-12-08 Mirko Viviani * EOAccess/EODatabaseContext.m ([EODatabaseContext -prepareForSaveWithCoordinator:editingContext:]): get the object value if the key is a class property. Added code to handle propagatesPrimaryKey for to many relationships. Fixed code that merges pk values. * EOControl/EOClassDescription.m ([EOClassDescription -awakeObject: fromInsertionInEditingContext:]): use NSMutableArray for to many relationships. 2000-12-08 Mirko Viviani * EOAccess/EODatabaseContext.m ([EODatabaseContext -faultForGlobalID: editingContext:]): set only class property's object values. ([EODatabaseContext -faultForRawRow:entityNamed:editingContext:]): likewise. ([EODatabaseContext -_recordChangesForObjects:operator:]): likewise. ([EODatabaseContext -batchFetchRelationship:forSourceObjects: editingContext:]): get key value from snapshot rather than in the object. 2000-12-06 Mirko Viviani * EOControl/EOKeyValueCoding.m ([NSObject -handleQueryWithUnboundKey:]): raise an EOUnknownKeyException with the correct userInfo. ([NSObject -handleTakeValue:forUnboundKey:]): likewise. * EOAccess/EOEntity.m ([EOEntity -isPrimaryKeyValidInObject:]): check valueForKey: exception. * EOControl/EOClassDescription.m ([NSObject -changesFromSnapshot:]): check for EONull values as toMany relationship array. * EOControl/EOEditingContext.m ([EOEditingContext -processRecentChanges]): check for EONull values in dictionary. * EOAccess/EOModel.m ([EOModel -initWithPropertyList:owner:]): check for an exception in the entity awakeWithPropertyList method. * EOAccess/EOJoin.m ([EOJoin -initWithSourceAttribute: destinationAttribute:]): raise exception if source or destination is nil. 2000-12-05 Mirko Viviani * EOAccess/EODatabaseChannel.m ([EODatabaseChannel -fetchObject]): fixed refreshing objects. * EOControl/EOKeyValueCoding.m ([NSArray -valueForKey:]): fixed array and string selector. * EOAccess/EOUtilities.m ([EOEditingContext -objectsForEntityNamed:]): ([EOEditingContext -primaryKeyForObject:]), ([EOEditingContext -entityForObject:]): implemented. * EOAccess/EODatabaseContext.m ([EODatabaseContext -prepareForSaveWithCoordinator:editingContext:]): lock the database context. ([EODatabaseContext -commitChanges]), ([EODatabaseContext -rollbackChanges]): unlock the database context ([EODatabaseContext -registerLockedObjectWithGlobalID:]): fixed zone size. 2000-12-04 Mirko Viviani * EOAccess/EODatabaseContext.m ([EODatabaseContext -_recordChangesForObjects:operator:]): when updating relationship keys look also in the object snapshot. 2000-12-03 Mirko Viviani * EOAccess/EOSQLExpression.m ([EOSQLExpression -sqlStringForKeyValueQualifier:]): bug fix. * EOAccess/EOUtilities.m ([EOEditingContext -objectsMatchingValue: forKey:entityNamed:]): implemented. 2000-12-01 Mirko Viviani * EOAccess/EOUtilities.m/.h: new files. * EOAccess/EOAccess.h: addes EOUtilities.h 2000-11-23 Mirko Viviani * EOControl/EOEditingContext.m ([EOEditingContext -initializeObject:withGlobalID:editingContext:]): ensure that the next 'willChange' notification will be processed for the initialized object. * EOAccess/EOEntity.m ([EOEntity -globalIDForRow:]): fixed globalID values order for compound PKs. 2000-11-22 Mirko Viviani * EOAccess/EODatabaseOperationPriv.h: new file. * EOAccess/EODatabaseOperation.m ([EODatabaseOperation -_setGlobalID:]): new method. * EOAccess/EODatabaseContext.m ([EODatabaseContext -prepareForSaveWithCoordinator:editingContext:]): fixed propagates primary key code. ([EODatabaseContext -_recordChangesForObjects:operator:]): in toOne rel discard PK to PK joins. Discard 'empty' toOne rels. ([EODatabaseContext -_setGlobalID:forDatabaseOperation:): new method. It replaces the globalID for the gived operation. * EOAccess/EORelationship.m ([EORelationship -initWithPropertyList:owner:]): check for 'propagatesPrimaryKey'. * EOAccess/EOSQLExpression.m ([EOSQLExpression -addOrderByAttributeOrdering:]): use compare selector defines. Call -sqlStringForAttributeNamed: for the sortOrdering key. 2000-11-19 Mirko Viviani * EOControl/EOFault.m ([EOFault +makeObjectIntoFault:withHandler:]): do not turn into fault the nil object. * EOControl/EOEditingContext.m ([EOEditingContext -refaultObject:withGlobalID:editingContext:]): does nothing if objects is nil. * EOAccess/EODatabaseContext.m ([EODatabaseContext -refaultObject:withGlobalID:editingContext:]): likewise. ([EODatabaseContext -refaultObject:withGlobalID:editingContext:]): does not remove the snapshot. ([EODatabaseChannel -fetchObject]): fix for refreshing object. * EOControl/EOSortOrdering.m ([NSMutableArray -_sortUsingKeyOrder:fromIndex:count:]): use defined value for compare selectors. Fix when aValue or bValue are nil. ([EONull -compareAscending:]), ([EONull -compareDescending:]), ([EONull -compareCaseInsensitiveAscending:]): ([EONull -compareCaseInsensitiveDescending:]): if value to be compared is be treat it as EONull. 2000-11-18 Mirko Viviani * EOControl/EOEditingContext.m ([EOEditingContext -processRecentChanges]): get toOne and toMany keys from object instead of the editingContext. * EOAccess/EODatabaseContext.m ([EODatabaseContext -_recordChangesForObjects:operator:]): new method. Fixed foreign key update for inserted objects of toOne relationships. Fixed dictionary and foreign key update for toMany relationships. ([EODatabaseContext -recordChangesInEditingContext]): moved code into -_recordChangesForObjects:operator: and check changes also in inserted objects. ([EODatabaseContext -_dbOperationWithObject:operator:]): new method. Find db operation for the given object and operator. ([EODatabaseContext -commitChanges]), ([EODatabaseContext -rollbackChanges]): reset ivars if no transaction in progress. 2000-11-16 Mirko Viviani * EOControl/EOEditingContext.m ([EOEditingContext -_handleObjectsChangedInStoreNotification:]): refault updated objects. * EOAccess/EODatabaseChannel.m ([EODatabaseChannel -fetchObject]): fixed notification for refreshed objects. * EOAccess/EOSQLExpression.m ([EOSQLExpression -sqlStringForAttribute:]): fix id attribute is derived. * EOAccess/EOEntity.m ([EOEntity -setAttributesUsedForLocking:]): fix release of the array when no valid attributes are found. ([EOEntity -setPrimaryKeyAttributes:]): likewise. * EOAccess/EODatabase.m ([EODatabase -forgetSnapshotsForGlobalIDs:]): ([EODatabase -forgetSnapshotForGlobalID:]): use defined userInfo string instead of an hardcoded one. 2000-11-05 Mirko Viviani * EOControl/EOSortOrdering.m ([NSArray -sortedArrayUsingKeyOrderArray:]): implemented. ([NSMutableArray -sortUsingKeyOrderArray:]): not fully implemented. ([NSMutableArray -_sortUsingKeyOrder:fromIndex:count:]): modified gnustep-base shell sort. ([EOSortOrdering -initWithCoder:]): fixed. ([EONull -compareAscending:]): implemented. ([EONull -compareDescending:]): implemented. ([EONull -compareCaseInsensitiveAscending:]): implemented. ([EONull -compareCaseInsensitiveDescending:]): implemented. * EOAdaptors/Postgres95/Postgres95Channel.m ([Postgres -_describeResults]): does not coerce attribute className. * EOAdaptors/Postgres95/Postgres95Values.m: fixed pg calendar format. * EOAdaptors/Postgres95/Postgres95SQLExpression.m ([Postgres -assembleSelectStatementWithAttributes:lock:qualifier:fetchOrder:selectString:columnList:tableList:whereClause:joinClause:orderByClause:lockClause:]): does not return mutableCopy of the string. ([Postgres +formatValue:forAttribute:]): implemented. Added code from Turbocat's development. * EOAccess/EOSQLExpression.m: does not return mutableCopy of a string. ([EOSQLExpression +formatValue:forAttribute:]): return value unchanged. ([EOSQLExpression -sqlStringForValue:attributeNamed:]): bug fix ? moved code from +[formatValue:forAttribute:] * EOControl/EOAndQualifier.m ([EOAndQualifier -sqlStringForSQLExpression:]): doesn't return mutableCopy of a string. * EOControl/EOOrQualifier.m ([EOOrQualifier -sqlStringForSQLExpression:]): likewise. * EOControl/EODetailDataSource.m ([EODetailDataSource -initWithMasterClassDescription:detailKey:]): set masterClassDescription. * EOAccess/EOSQLExpression.m ([EOSQLExpression -addCreateClauseForAttribute:]): ([EOSQLExpression -allowsNullClauseForConstraint:]): ([EOSQLExpression -columnTypeStringForAttribute:]): ([EOSQLExpression +dropTableStatementsForEntityGroup:]): ([EOSQLExpression +createTableStatementsForEntityGroup:]): ([EOSQLExpression +primaryKeyConstraintStatementsForEntityGroup:]): ([EOSQLExpression +primaryKeySupportStatementsForEntityGroup:]): ([EOSQLExpression +dropPrimaryKeySupportStatementsForEntityGroup:]): ([EOSQLExpression +createTableStatementsForEntityGroups:]): ([EOSQLExpression +dropTableStatementsForEntityGroups:]): ([EOSQLExpression +primaryKeyConstraintStatementsForEntityGroups:]): ([EOSQLExpression +primaryKeySupportStatementsForEntityGroups:]): ([EOSQLExpression +dropPrimaryKeySupportStatementsForEntityGroups:]): ([EOSQLExpression +appendExpression:toScript:]): ([EOSQLExpression +schemaCreationScriptForEntities:options:]): ([EOSQLExpression +schemaCreationStatementsForEntities:options:]): ([EOSQLExpression -prepareConstraintStatementForRelationship: sourceColumns:destinationColumns:]): ([EOSQLExpression +createDatabaseStatementsForConnectionDictionary: administrativeConnectionDictionary:]): ([EOSQLExpression +dropDatabaseStatementsForConnectionDictionary: administrativeConnectionDictionary:]): ([EOSQLExpression +selectStatementForContainerOptions]): implemented. * EOAccess/EOEntity.m ([EOEntity -primaryKeyRootName]): bug fix: calls -primaryKeyRootName on the _parent entity instead of -externalName. * EOAccess/EOSchemaGeneration.h: new file. * EOAccess/EOAccess.h: added EOSchemaGeneration.h * EOAccess/EOModel.m ([EOModel -initWithContentsOfFile:]):, ([EOModel -initWithTableOfContentsPropertyList:path:]): fixed _name and _path. ([EOModel -initWithPropertyList:owner:]): use _path instead of _name. * EOAccess/EOModelGroup.m ([EOModelGroup +globalModelGroup]): search models in bundles and frameworks. * EOAccess/EOAdaptor.m ([EOAdaptor +adaptorWithName:]): changed adaptor from bundle to framework. Looks for EOAdaptor.framework ([EOAdaptor -createDatabaseWithAdministrativeConnectionDictionary:]): ([EOAdaptor -dropDatabaseWithAdministrativeConnectionDictionary:]): new methods. * EOAccess/EOAdaptor.h: added include file * EOAccess/GNUmakefile: added LIBRARIES_DEPEND_UPON * EOControl/GNUmakefile: Likewise. 2000-10-05 Manuel Guesdon * EOAccess/EODatabaseChannel.m: added NSDebugMLog and NSAssert * EOAccess/EODatabaseDataSource.m: added NSDebugMLog and NSAssert * EOAccess/EOEntity.m: added NSDebugMLog and NSAssert * EOAccess/EOModel.m: modified -init * EOControl/EOFetchSpecification.h/.m: added EOKeyValueUnarchiver support * EOControl/EOKeyValueArchiver.h/.m: implemented EOKeyValueUnarchiver * EOControl/GNUmakefile: added EOKeyValueArchiver 2000-09-28 Manuel Guesdon * EOAccess/EODatabaseContext.m: added NSDebugMLog and NSAssert * EOAccess/EODatabaseChannel.m: added NSDebugMLog and NSAssert * EOAdaptors/Postgres95/Postgres95Channel.m : added NSDebugMLog and NSAssert * EOAccess/EODatabase.m: added NSDebugMLog and NSAssert 2000-09-24 Manuel Guesdon * config.mak: added include directories in POSTGRES95_CFLAGS 2000-09-23 Mirko Viviani * EOControl/EOQualifier.m (getKey): fixed pointer in key-value parsing. 2000-09-17 Mirko Viviani * EOAdaptors/Postgres95/GNUmakefile: remove Postgres95Exceptions.h 2000-09-17 Mirko Viviani Patches by David Wetzel * EOAccess/EOAdaptorContext.m ([EOAdaptorContext -initWithAdaptor:]): set default debug. * EOAccess/EOModel.m ([EOModel +findPathForModelNamed:]): look also in the current dir. * EOControl/EOObjectStoreCoordinator.m ([EOObjectStoreCoordinator -objectStoreForGlobalID:]), ([EOObjectStoreCoordinator -objectStoreForObject:]), ([EOObjectStoreCoordinator -objectStoreForFetchSpecification:]): bug fix: changed notification object.