2006-09-14 David Ayers * EOAdaptors/Postgres95/GNUmakefile.in: Install into GNUSTEP_SYSTEM_ROOT by default. * * Update email addresses for Mirko Viviani and David Ayers. 2006-09-14 David Ayers * Version 0.10.1 * README: Correct modeler application name. * ANNOUNCE: Update to followup release. * NEWS: Ditto. 2006-09-14 David Ayers * EOInterface/GNUmakefile * DBModeler/Inspectors/GNUmakefile * DBModeler/GNUmakefile * EOAdaptors/Postgres95/LoginPanel/GNUmakefile * GDL2Palette/GNUmakefile: Add missing copyright notices. Install into GNUSTEP_SYSTEM_ROOT by default. 2006-09-14 David Ayers * Version 0.10.0 * ANNOUNCE: New file. 2006-09-13 Matt Rice * EOControl/EOObserver.m (EOObserverCenter +_forgetObject:): New private method. (+notifyObserversObjectWillChange:): Change omniscient observer arguments. * EOControl/EOEditingContext.m (NSObject -dealloc): Call _forgetObject:. * EOControl/EOPrivate.h: Add category for EOObserverCenter private methods. 2006-09-12 David Ayers * Version: Update to 0.10.0 * GNUmakefile: Set package name for release targets. * EOAccess/EOSQLExpression.h (deleteStatementWithQualifier:entity:) * EOAccess/EOSQLExpressionPriv.h (_aliasForRelationshipPath:) (_flattenRelPath:entity:, _aliasForRelatedAttribute:relationshipPath:) * EOAccess/EOSQLExpression.m (insertStatementForRow:entity:) (updateStatementForRow:qualifier:entity:) (deleteStatementWithQualifier:entity:) (selectStatementForAttributes:lock:fetchSpecification:entity:) (_aliasForRelationshipPath:) * EOAccess/EORelationship.h (intermediateEntity) (_foreignKeyForSourceRow:) * EOAccess/EORelationship.m (_foreignKeyForSourceRow:, _leftSideKeyMap) * EOAccess/EODatabaseContext.h (databaseOperationForObject:) (databaseOperationForGlobalID:, recordDatabaseOperation:) (_openChannelWithLoginPanel:) * EOAccess/EODatabaseContextPriv.h (primaryKeyForObject:) (_currentCommittedSnapshotForObject:) * EOAccess/EOEntityPriv.h (_keyMapForRelationshipPath:) (_keyMapForIdenticalKeyRelationshipPath:, _mapAttribute:) (_relationshipPathIsToMany: valueForSQLExpression:) (_parsePropertyName:, classPropertyAttributeNames) (classPropertyToManyRelationshipNames) (classPropertyToOneRelationshipNames, dbSnapshotKeys) * EOAccess/EOUtilities.m (rawRowsForEntityNamed:qualifierFormat:) (rawRowsMatchingValue:forKey:entityNamed:) (rawRowsMatchingValues:entityNamed:, rawRowsWithSQL:modelNamed:) (rawRowsWithStoredProcedureNamed:arguments:) (executeStoredProcedureNamed:arguments:, databaseContextForModelNamed:) (primaryKeyForObject:) (destinationKeyForSourceObject:relationshipNamed:) * EOAccess/EOEntity.m (_mapAttribute:toDestinationAttributeInLastComponentOfRelationshipPath:) * EOAccess/EOAdaptor.h (adaptorWithModel:,adaptorWithName:) * EOAccess/EOModel.h (_classDescriptionNeeded:,_entityForClass:) (_addEntityWithPropertyList:) * EOAdaptors/Postgres95/Postgres95Channel.h (_evaluateExpression:withAttributes:) * EOControl/EOMutableKnownKeyDictionary.h/m (arrayMappingForKeys:) (subsetMappingForSourceDictionaryInitializer:sourceKeys:destinationKeys:) (subsetMappingForSourceDictionaryInitializer:) (setObject:forKey:, removeObjectForKey:, indexForKey:, objectForKey:) * EOControl/EOEditingContext.m (handleErrors:,setSharedEditingContext:) (faultForRawRow:entityNamed:) * GDL2Palette/KeyWrapper.h (setKey:, _key): * EOModeler/EOModelerEditor.h (selectionWithinViewedObject) * EOModeler/EOModelerEditor.m (initWithDocument:) (initWithParentEditor:) Correct method signatures. Add necessary forward @class declations. * EOInterface/EOMasterDetailAssociation.m (establishConnection): * DBModeler/ModelerTableEmbedibleEditor.m (addDefaultTableColumnsForTableView:displayGroup:) * DBModeler/DefaultColumnProvider.m (setupTitleForColumn:named:) Cast types to avoid compiler warnings. * EOControl/EOCheapArray.m (dealloc): Supress compiler warning. * EOAdaptors/Postgres95/LoginPanel/Postgres95LoginPanel.m (dealloc) * EOModeler/EOModelerEditor.m (dealloc): * DBModeler/ModelerAttributeEditor.m (dealloc): Add missing call to super. * DBModeler/Preferences.m (sharedPreferences): Fix implementation for new compiler semantics. * EOControl/EOMultiReaderLock.m (init): Correct NSConditionLock initialization. * EOInterface/EOInterface.gsdoc: New file. * EOInterface/GNUmakefile: Update variables to build documentation. * EOAccess/EOAccess.gsdoc: Specify title. * EOControl/EOControl.gsdoc: Ditto. * GDL2.gsdoc: Use sections allowed by DTD. Remove reference to MulleEOInterface. * README: Update dependencies. Remove reference to external EOInterface implementation. Update comments about DBModeler. * NEWS: Mention major features of current release. 2006-09-07 Matt Rice * DBModeler/Resources/DBModeler.tiff: New file. * DBModeler/Resources/Locking_Header.tiff: Ditto. * DBModeler/Resources/Key_On.tiff: Add check box background. * DBModeler/Resources/Info-GNUstep.plist: Update info panel copyright. * DBModeler/ModelerEntityEditor.m (-dealloc): Don't set the datasource to nil, its handled in EODisplayGroup -dealloc. 2006-05-09 Matt Rice * EOInterface/EOAssociation.m (-establishConnection): Simplify to allow posing. (-canBindAspect:displayGroup:key:): Return YES by default. * EOInterface/EOTextAssociation.m: Minor formatting issue. Include privat header: (-subjectChanged): Set empty string when nil/null value is set. * EODisplayGroup.m (-initWithCoder:): Fetch when auto fetch is enabled. (-setObjectArray:): Select new selected objects. (-redisplay): Don't call notifyObserversObjectWillChange: explicitly. (-setSelectionIndexes:): Implement displayGroup:didChangeSelection: handling. (-selectObjectsIdenticalTo:): Reimplement. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-deleteSelection): Ditto. (-insertObject:atIndex:): Fix redisplay timing with respect to delegate. (-deleteObjectAtIndex:): Implement. (-association:failedToValidateValue:forKey:object:errorDescription:) Ditto. (-editorHasChangesForEditingContext:): Ditto. (-editingContextWillSaveChanges:): Ditto. (-setValue:forObjectAtIndex:key:): Validate index range. (-objectsChangedInEditingContext:): Add workaround until issues can be investigated. * EOInterface/EOMasterDetailAssociation.m (subjectChanged): Qualify datasource's relationship independent of selected object. * EOInterface/EOTableViewAssociation.m (associationClassesSuperseded): Implement. (subjectChanged): Reimplement. (tableViewSelectionDidChange:): Ditto. * EOModeler/EOMInspector.h * EOModeler/EOMInspector.m: Cleanups. (selectedObjects): Reimplement. (selectedObject): Return last viewed path if no selection was made. * EOModeler/EOModelerDocument.m: Reimplement. * EOModeler/EOMInspectorController.m (init): Ditto. (-_selectionChanged:): Ditto. (-_selectInspector:): Implement and renamed from selectInspector:. * EOModeler/EOModelerEditor.h * EOModeler/EOModelerEditor.m: Add documentation. (-initWithDocument:): Initialize instance variable. (-debugSelectionPath): Implement. (-[EOModelerCompoundEditor initWithDocument:]): Remove initializtation. (-[EOModelerCompoundEditor selectionDidChange]): Implement. (-[EOModelerCompoundEditor setSelectionPath:]): Call selectionDidChange instead of sending notifcation directly. (-[EOModelerCompoundEditor viewSelectedObject]): Implement. (-[EOModelerEmbedibleEditor dealloc]): Implement. (-[EOModelerEmbedibleEditor initWithParentEditor:]): Observe EOMSelectionChangedNotification. DBModeler/ConsistencyChecker.m (+modelConsistencyCheck:): Honor validation preferences. DBModeler/Modeler.m (-new:): Reimplement. (-setAdaptor:): Bail out it adaptor cannot be located. (-application:openFile:): Fine tune path checking and correct return values. (-openPrefs:): Implement. * DBModeler/Inspectors/RelationshipInspector.m (-displayName): Implement. (-selectedEntity): Validate selected row before commencing. (-selectedDestinationAttribute): Reimplement. (-updateConnectButton): Update enabled state of connect button. (-refresh): Correct handling of src/destAttrib_tableView. (-tableViewSelectionDidChange:): Allways call updateConnectButton. * DBModeler/SQLGenerator.m (-openSQLGenerator:): Reimplement. (-executeSQL:): Handle invalid adpator or connection information. (-saveAs:): Handle abort correctly. (-generate): Handle missing expression class. * DBModeler/ModelerTableEmbedibleEditor.h * DBModeler/ModelerEntityEditor.m (initWithParentEditor:): Correct autoresize behavior. (-activate): Update selection. (-needToFetch:): Do not reloadData in _topTable. (-displayGroupDidChangeSelection:): Update selection on parent. * DBModeler/ModelerTableEmbedibleEditor.m (-addDefaultTableColumnsForTableView:displayGroup:): Call tile instead of sizeToFit. * DBModeler/EOAdditions.m: Fix leaks. (setIsClassProperty): Reimplement. (-[setIsPrimaryKey:]): Ditto. (-[setIsClassProperty:]): Correct call to function. (-[isUsedForLocking]): Implement. (-[setIsUsedForLocking:]): Ditto. * DBModeler/MainModelEditor.h * DBModeler/MainModelEditor.m: Update view handling. * DBModeler/DefaultColumnProvider.m: Update handling of properties. * DBModeler/ModelerAttributeEditor.m: Update general GUI interaction. * DBModeler/Preferences.h: New file. * DBModeler/Preferences.m: Ditto. * DBModeler/Inspectors/RelationshipInspector.tiff: New file. * DBModeler/Inspectors/GNUmakefile: Add new file. * DBModeler/Resources/Preferences.gorm: New files. * DBModeler/Resources/Key_Header.tiff: Ditto. * DBModeler/Resources/ClassProperty_Header.tiff: Ditto. * DBModeler/Resources/Locking_On.tiff: Ditto. * DBModeler/Resources/Key_On.tiff: Ditto. * DBModeler/GNUmakefile: Add new files. * GDL2Palette/KeyWrapper.h: New file. * GDL2Palette/KeyWrapper.m: Ditto. * GDL2Palette/ConnectionInspector.h * GDL2Palette/ConnectionInspector.m (init): Initialize _values. (-awakeFromNib): Update handling of horizontal scroller. (-_associationClassesUsableWithObject:): Implement. (-setObject:): Fix assignment issues. (-_keysFromClassDescription:): Implement. (-_keysFromArray:): Ditto. (-updateValues): Reimplement. (-_oaBrowserAction:): Ditto. (-browser:numberOfRowsInColumn:): Refine implementation. (-browser:willDisplayCell:atRow:column:): Reimplement. (-ok:): Update associations in active document. * GDL2Palette/ResourceManager.m (defaultEditingContext): Try to find defaultEditingContext in document objects. (addResourcesFromPasteboard:): Reimplement. * GDL2Palette/Foundation+Categories.m: (arrayWithObjectsRespondingYesToSelector:): Fix leak. (arrayWithObjectsRespondingYesToSelector:withObject:): Ditto. * GDL2Palette/GNUmakefile: Use PALETTE_LIBS instead of ADDITIONAL_LDFLAGS to link libraries. Add new files. * GDL2Palette/GDL2Palette.tiff: New file. * GDL2Palette/GDL2ConnectionInspector.gorm: New files. 2006-05-09 Matt Rice David Ayers * configure.ac (gorm-palette): Add configure option to exclude building of palette until auto detection works reliably. * config.make.in: New file. * configure: Regenerate. * GNUmakefile: Include new file. * Makefile.postamble: Remove generated config.make on distclean. 2006-04-24 David Ayers * EOControl/EOGenericRecord.m ([_getValueForKey:selector:type:size:offset:]): Replace deprecated use of GSObjCGetValue with GSObjCGetVal. ([_setValueForKey:selector:type:size:offset:]): Replace deprecated use of GSObjCSetValue with GSObjCSetVal. * EOControl/EOKeyValueCoding.m ([NSObject takeValue:forKey:]): Replace deprecated use of GSObjCSetValue with GSObjCSetVal. [Report #16429] * EOAdaptors/Postgres95/Postgres95Private.m (PSQLA_postgresCalendarFormat): Change format from to include milliseconds suggested by: Sergey Golovin, svgol at mail dot ru. 2006-03-19 Matt Rice * EOControl/EODetailDataSource.m (-editingContext): Return the master data sources editing context. * EOControl/EOGlobalID.m (-description): Correct conversion specification. * EOAccess/EOModel.m (-referencesToProperty:): Implement. * EOAccess/EORelationship.m (-referencesProperty:): Fix bug in or when sending messages to nil. (-validateName:): Return nil if the name is the properties current name. * EOAccess/EOModel.m (-validateName:): Ditto. * EOAccess/EOEntity.m (-validateName:): Ditto. (-relationships): Handle partially converted relationships array. (-addAttribute:): Remove unnecessary cast. (-addRelationship:): Ditto. (-removeAttribute): Remove property from the class properties and primary key attributes arrays. (-removeRelationship:): Remove property from the class properties array. (-_setIsEdited:): Rebuild _relationshipsByName. * EOAdaptors/Postgres95/Postgres95SQLExpression.m: Fix warning. * EOAdaptors/Postgres95/Postgres95Values.m: Remove c99 usage. * EOAccess/EOEntity.m (-relationships): Fix whitespace from previous commit. 2005-12-18 Matt Rice * EOAdaptors/Postgres95/LoginPanel/postgreslogo.tif: New file. * EOAdaptors/Postgres95/LoginPanel/GNUmakefile: Add postgreslogo.tif * EOAdaptors/Postgres95/LoginPanel/Postgres95LoginPanel.[h/m]: Show logo, and make the login panel more visually appealing. Switch databases table view to a NSComboBox. * DBModeler/KVDataSource.m: Return nil in unimplemented methods with return values. * EOAdaptors/Postgres95/Postgres95Adaptor.m: Add braces to typeNames to avoid warnings 2005-12-18 David Ayers * AUTHORS: Add Matt Rice. * GDL2.gsdoc: Ditto. * EOControl/EOMultiReaderLock.[h/m]: New files. * EOControl/EOControl.h: Add EOMultiReaderLock.h. * EOControl/GNUmakefile: Add EOMultiReaderLock.h/m. * EOAccess/EOAttribute.m: Translate comment to avoid non-ASCII encoding. * EOControl/EOEvent.[hm]: New files. * EOControl/EOEventCenter.[hm]: New files. * EOControl/EOControl.h: Add EOEvent.h and EOEventCenter.h. * EOControl/GNUmakefile: Add EOEvent.h/m and EOEventCenter.h/m. * EOControl/EOGlobalID.m (-[EOGlobalID copyWithZone:]): Optimize to return self as GIDs are immutable and they are used as dictionary keys which are generally copied. (-[EOTemporaryGlobalID copyWithZone:]): Remove. (-[EOTemporaryGlobalID description]): Implement. * EOControl/EOKeyGlobalID.m (-[EOKeyGlobalID copyWithZone:]): Remove. * EOControl/EOEditingContext.m (-[forgetObject:]: Clear registered snapshots. 2005-12-05 David Ayers * EOControl/EOQualifier.m (getKey): Fix parsing of 'nil' EOKeyValueQualifiers. 2005-11-30 David Ayers * EOControl/EOQualifier.m (cimSEL, spaceSet, alnumSet, digitSet) (spaceCIM, alnumCIM, digitCIM): New static globals for unichar handling. ([+initialize]): Initialize new variables. (getOperator, getKey, isNotQualifier, whichQualifier): Use unichar instead of char. ([+qualifierWithQualifierFormat:varargList:]): Ditto. (_isLike): Handle unichar characters. 2005-11-28 David Ayers * EOControl/EOSharedEditingContext.[hm]: New files. * EOControl/EOEditingContext.[hm]: Use EOSharedEditingContext. (sharedEditingContext, setSharedEditingContext:): New methods. (-initWithParentObjectStore:): Handle EOSharedEditingContext. (-dealloc, -faultForGlobalID:editingContext:): Ditto. (-objectForGlobalID:, -globalIDForObject:): Ditto. (-initializeObject:withGlobalID:editingContext:): Ditto. (-refaultObject:withGlobalID:editingContext:): Ditto. (-_processInitializedObjectsInSharedContext:): New method. (-_defaultEditingContextNowInitialized:): Ditto. (-_objectsInitializedInSharedContext:) Ditto. (-_defaultSharedEditingContextWasInitialized:) Ditto. * EOControl/EOControl.h: Added EOSharedEditingContext.h. * EOControl/GNUmakefile: Added EOSharedEditingContext.[hm]. 2005-11-02 David Ayers * EOAdaptors/Postgres95/Postgres95Adaptor.m (typeNames): Add serial and serial8 from patch 1777 from Simon Stapleton. 2005-10-02 David Ayers * EOControl/EOAndQualifier.m, * EOControl/EOKeyComparisonQualifier.m, * EOControl/EOKeyValueQualifier.m, * EOControl/EOOrQualifier.m: ([-description]) Make qualifiers user presentable like in WO. (-[debugDescription]): New deprecated method for old description. * EOControl/EOKeyValueCoding.h/m (unableToSetNullForKey:): Remove deprecated -base/Foundation hook. (setNilValueForKey:) Override new hook to call unableToSetNilForKey:. (unableToSetNilForKey:): Raise exception as documented. (takeValue:forKey:): Implement here to avoid deprecation warning. (takeValue:forKeyPath:): Ditto. (takeValuesFromDictionary:): Ditto. 2005-08-25 Manuel Guesdon * EOAccess/EOSQLQualifier.m: change in EOAndQualifier and EOOrQualifier -schemaBasedQualifierWithRootEntity to allow nil schemaBasedQualifier. fix in EOKeyValueQualifier -schemaBasedQualifierWithRootEntity: to handle key like rel1.rel2.rel3 (see Testsuite EOKeyValueQualifier01.m) * EOAccess/EOSQLExpression.m: added NSAssert in -sqlStringForKeyValueQualifier: * EOAccess/EORelationship.m: added NSAssert in setDefinition: 2005-08-24 Manuel Guesdon * EOControl/EOEditingContext.m: fix _processRecentChanges for insert+delete before saving changes (see EOEditingContext03 in Testsuite) 2005-08-23 Manuel Guesdon * EOAdaptors/Postgres95/Postgres95Private.m: added PSQLA_NSDateClass initialization in PSQLA_PrivInit() * EOAdaptors/Postgres95/Postgres95SQLExpression.m: fix initialized in +initialize 2005-08-23 Manuel Guesdon * EOControl/EOGenericRecord.m: fix -willChange call (don't call it for takeStoredValue:forKey and for -setXX method). * EOControl/EOClassDescription.m: check if value is not already set before adding/setting it in _setObject:forBothSidesOfRelationshipWithKey: and addObject:toBothSidesOfRelationshipWithKey: * EOAccess/EOAttribute.m: log in -validateValue: 2005-08-17 David Ayers * COPYING.LIB: Update to LGPL 2.1. * configure: Regenerate. * Update FSF Address and Copyright years. * EOControl/EOEditingContext.m ([-_processRecentChanges]): Invert logic for propagating deletes. ([-saveChanges]): Propagate deletes if they were not propagated yet. * EOControl/EOPrivate.h (EOHashAddTable): New compatibility function. * EOAccess/EODatabaseContext.m ([-dealloc], [-rollbackChanges]) ([-_cleanUpAfterSave]): Guard against missing hash table. ([-registerLockedObjectWithGlobalID:]): Reformat. 2005-07-10 Matt Rice * DBModeler/Modeler.m (_newDocumentWithModel:): Don't release the model. (-new:): Release the model here. (-newFromDatabase:): Ditto, and add error handling. (-open:): Ditto. (-application:openFile:): New method. * EOModeler/EOModelerDocument.m (-saveAs:): Add error handling, and remove check for an existing name. 2005-07-10 Peter Cooper * DBModeler/GNUmakefile: Add Info-gnustep.plist to project. 2005-07-10 Peter Cooper * DBModeler/Resources/Info-gnustep.plist: New file. * DBModeler/Modeler.m (-applicationWillFinishLaunching:): Rearrange menu layout. 2005-07-09 Matt Rice * DBModeler/ConsistencyChecker.m: New variable doc. (+endConsistencyCheck:): Use the notification object. Use unsigned for array iterators. (pass): Use the new doc variable. (+attributeDetailsCheck:): Use unsigned for array iterators. (+inheritanceCheckForModel:, +relationshipCheckForModel:): Ditto. (+primaryKeyCheckForModel:, +externalNameCheckForModel): Ditto. (+modelConsistencyCheck:): Assign doc to the notification object. 2005-07-09 Matt Rice * EOModeler/EOMInspectorController.m (-init): Don't release the window on close. (_selectionChanged:): Fix view swapping. Set view as needing display. * EOModeler/EOModelExtensions.m: (+mutableAttributedStringWithBoldSubstitutionsWithFormat:): Implement. * EOModeler/EOModelerApp.h: Add -removeDocument:, -documentAtPath:, and -loadDocumentAtPath: methods. * EOModeler/EOModelerApp.m (-init:): Add parentheses around assignment. (-allPasteboardTypes): Initial implementation. (-removeDocument:): If removing the active document, set the active document to nil. (-documentWithPath:): Change array iterators to unsigned. (-registerColumNames:forClass:provider:): Ditto. (-modelContainingFetchSpecification:): Temporarily return nil. (-nameForFetchSpecification:): Ditto. * EOModeler/EOModelerDocument.h: Declare consistency check notification constants. Add -adaptor, -appendConsistencyCheckErrorText:, -appendConsistencyCheckSuccessText:, -addEntity:, -addRelationship, -addAttribute and -delete. * EOModeler/EOModelerDocument.m: Add consistency check notification constants. Add private category interface. (-firstSelectionOfClass:): Change array iterators to unsigned. Remove debugging logs. (-validateMenuItem:): Initial implementation. (-initWithModel:): Add parentheses around assignment. Add the model to the default model group. (-dealloc, -delete:): Initial implementation. (-isDirty, -prepareToSave,-checkCloseDocument): Return no temporarily until implemented. (-saveToPath:): Break long messages into separate lines. (-addDefaultEditor:, -addEntity:, -addAttribute:): Ditto. (-addRelationship:, ): (-activate): Remove commented out code. (-closeEditor:, -checkCloseEditor:): Add comments. (-canFlattenSelectedAttribute): Add temporary return value. (-windowWillClose:): Remove self from the open documents. (-checkConsistency:): Implement. (-appendConsistencyCheckErrorText:): Ditto. (-appendConsistencyCheckSuccessText:): Ditto. * EOModeler/EOModelerEditor.m (-initWithDocument:): Add parentheses around assignment. Don't retain our document. (-selectionPath:, -viewedObjectPath): Return nil. (-[EOModelerCompoundEditor dealloc]): Implement. (-[EOModelerCompoundEditor initWithParentObject:): Add parentheses around assignment. (-[EOModelerEmbedibleEditor pathViewPreferenceHint:): Return nil. * EOModeler/GNUmakefile: Remove extra whitespace. 2005-07-08 Matt Rice * EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. 2005-07-08 Matt Rice * DBModeler/AdaptorsPanel.m (-init): Add parenthesis around assignment. Replace label with window title. (-runAdaptorsPanel:): Remove unused variable. * DBModeler/DefaultColumnProvider.m: Add missing braces, remove unused ivars. (-cellForColumnNamed:): Autorelease cells. * DBModeler/EOAdditions.m: New EOAttribute KVC methods -allowNull and -setAllowNull:. * DBModeler/GNUmakefile: Add new to project. * DBModeler/KVDataSource.m (-createObject:): Return nil after throwing exception. * DBModeler/MainModelEditor.m (-dragImageForRows:event:dragImageOffset:):: Enable drag and drop for relationships. (-initWithDocument:): Add parenthesis around assignment. Don't release the document window on close. (-ecStuff:): temporarily reload everything in the outline view when something changes. (-viewSelectedObject:): Remove NSLog. Rewrite editor activation. Fix leaks. * DBModeler/Modeler.m (-applicationWillFinishLaunching:): Add new menu items. Don't order our menu in. (-new:,-open:): Move document initializition to _newDocumentWithModel:. (-_newDocumentWithModel:,-newFromDatabase:): New methods. (-validateMenuItem:,-generateSQL:): Ditto. * DBModeler/ModelerAttributeEditor.m (-initWithParentEditor:): Remove unused variables. (-displayGroupDidChangeSelection:): return early if there is no longer a selection. * DBModeler/ModelerEntityEditor.m: (-canSupportCurrentSelection): Remove NSLog. (-displayGroupDidChangeSelection:): Ditto. (-dealloc:): New method. (-initWithParentEditor:): Remove unused variables. Add parens around assignment. Release local variables. * DBModeler/ModelerTableEmbedibleEditor: (-addDefaultTableColumnsForTableView:displayGroup:): Release table columns. (-addTableColumnForItem:tableView:): Ditto. * DBModeler/Inspectors/RelationshipInspector.m: (-selectedEntity, -selectedDestinationAttribute): New methods. (-selectedSourceAttribute, -indexOfSourceAttribute:): Ditto. (-indexOfDestinationAttribute:,joinWithSource:destination:): Ditto. (-selectedJoin:,updateConnectButton,): Ditto. (-refresh): Rewrite using new methods. (-numberOfRowsInTableView:): Add fallback return value. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:selectionDidChange:): If a source or destination attribute is now selected, select its counterpart. (-tableView:shouldSelectRow:): New method to disallow entity selection if there is a destination entity. (-tableView:willDisplayCell:forTableColumn:row:): New method, set the cell text color to disabled text color, if we would disallow selection. (-connectionChanged:): Implement disconnection. * DBModeler/SQLGenerator.h/m: New files initial implementation. * DBModeler/Resources/SQLGenerator.gorm: Ditto. * DBModeler/ConsistencyChecker.h/m: Ditto. * DBModeler/ConsistencyResults.h/m: Ditto. * DBModeler/ConsistencyResults.gorm: Ditto. 2005-07-03 Matt Rice * EOAccess/EOAdaptorContext.h/m (-channels:): New method. * EOAccess/EOSQLExpression.m (-_administrativeDatabaseStatementsForSelector:forEntityGroup:): Comment out login panel. * EOAccess/EOUtilities.m: Dont declare EOMoreThanOneException and NSObjectNotAvailableException as static. * EOControl/EOPrivate.h: Declare new class GDL2NonRetainingMutableArray and -registerAssociationForDeallocHack method. * EOControl/EOPrivate.m: New class GDL2NonRetainingMutableArray. * EOControl/EOEditingContext.m: (EOEditingContext -initWithParentObjectStore:): initialize _editors ivar with a non retaining array. (-dealloc): Remove the editing context as an observer for registered objects. (-[NSObject(DeallocHack) dealloc]): for associations, remove the association and object from the private hash table. (-[NSObject(DeallocHack) registerAssociationForDeallocHack]): New method. * EOControl/EOObserver.m (EOObserverCenter): Replace GSIArray usage with GDL2NonRetainingMutableArray. (+addObserver:forObject:, +removeObserver:forObject:): Ditto. (+initialize, +notifyObserversObjectWillChange:): Ditto. (+observersForObject:, +observerForObject:): Ditto. (+addOmniscientObserver:, +removeOmniscientObserver:): Ditto. (EOObserverProxy -initWithTarget:action:priority:): Don't retain target. (EOObserverProxy -dealloc:): Discard pending notifications. 2005-06-26 David Ayers * EOControl/EODetailDataSource.m (masterClassDescription): Only resort to EOClassDescription if _masterClassDescriptionName is set. Otherwise ask the _masterDataSource for its classDescriptionForObjects. 2005-06-17 Matt Rice * EOAccess/EOEntity.m (-_setModel:): Accept nil argument, comment. * EOAccess/EOModel.m (-removeEntity:): Comment. 2005-05-18 Matt Rice * EOControl/EOObserver.m (EOObserverCenter): Don't retain observers. Use a GSIArray instaed of NSMutableArray. (+addObserver:forObject:, +removeObserver:forObject:): Ditto. (+initialize, +notifyObserversObjectWillChange:): Ditto. (+observersForObject:, addOmniscientObserver:): Ditto. (+removeOmniscientObserver:): Ditto. 2005-05-17 Matt Rice * GNUmakefile: remove GDL2Palette from top level compilation. * GDL2Palette/GNUmakefile: Fix compilation flags, include gdl2.make relative not the installed version. * DBModeler/GNUmakefile: Ditto. 2005-05-11 Matt Rice * GNUmakefile: Compile EOInterface, EOModeler, DBModeler, GDL2Palette if gui is installed. * EOModeler/EOModelExtensions.h: Update copyright header. * EOModeler/EOModelExtensions.m: Ditto. * EOModeler/GNUmakefile: Make EOModeler a native-library, add new files. * EOModeler/Makefile.preamble: Change link flag to use FND_LIBS. * EOModeler/EODefines.h: New file, initial implementation. * EOModeler/EOMInspector.h/m: Ditto. * EOModeler/EOMInspectorController.h/m: Ditto. * EOModeler/EOModelerApp.h/m: Ditto. * EOModeler/EOModelerDocument.h/m: Ditto. * EOModeler/EOModelerEditor.h/m: Ditto. * DBModeler: New directory. * DBModeler/COPYING: New file... * DBModeler/AdaptorsPanel.h/m: New files. * DBModeler/DefaultColumnProvider.h/m: Ditto. * DBModeler/EOAdditions.h/m: Ditto. * DBModeler/KVDataSource.h/m: Ditto. * DBModeler/MainModelEdtior.h/m: Ditto. * DBModeler/Modeler.m: Ditto. * DBModeler/ModelerAttributeEditor.h/m: Ditto. * DBModeler/ModelerTableEmbedibleEditor.h/m: Ditto. * DBModeler/main.m: Ditto. * DBModeler/GNUmakefile: Ditto. * DBModeler/Resources: New directory. * DBModeler/Resources/ModelDrag.tiff: New file. * DBModeler/Resources/ClassProperty_On.tiff: Ditto. * DBModeler/Resources/Key_On.tiff: Ditto. * DBModeler/Inspectors: New directory. * DBModeler/Inspectors/RelationshipInspector.h/m: New files. * DBModeler/Inspectors/AttributeInspector.h/m: Ditto. * DBModeler/Inspectors/RelationshipInspector.gorm: New gorm directory. * DBModeler/Inspectors/AttributeInspector.gorm: Ditto. * GDL2Palette: New directory. * GDL2Palette/GNUmakefile: New file. * GDL2Palette/ConnectionInspector.h/m: Ditto. * GDL2Palette/Foundation+Categories.h/m: Ditto. * GDL2Palette/IB+Categories.m: Ditto. * GDL2Palette/Palette.h/m: Ditto. * GDL2Palette/ResourceManager.h/m: Ditto. * GDL2Palette/GDL2ConnectionInspector.gorm: Ditto. * GDL2Palette/GDL2Palette.tiff: Ditto * GDL2Palette/palette.table 2005-05-12 Matt Rice * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. 2005-05-11 Matt Rice * EOAccess/Makefile.preamble: Change link flag to use FND_LIBS variable defined in base.make * EOControl/Makefile.preamble: Ditto. * EOAccess/EODatabaseDataSource.m (-entity): Look for entity with the fetch specifications entity name in a model group. (-databaseContext): Return a registered database context. * EOAdaptors/Postgres95/LoginPanel/Postgres95LoginPanel.m: Cast before calling -initWithIdentifier to remove warning with gcc 3.4 * EOControl/EOEditingContext.m (-encodeWithCoder:,-initWithCoder:): initial implementation of methods. * EOControl/EOClassDescription.m (-snapshot): cast 'value' to get thwart warnings. * EOControl/EOFault.m (-superClass): Implement as returning a class. * Tools/gsdoc-model.m: Include headers alphabetically, include NSCalendarDate.h to thwart warning. 2005-05-03 David Ayers * EOControl/EOEditingContext.m (_mutableSetFromToManyArray:): Add internal documentation. Filter managed objects instead of attempting to convert gids to objects. Reported by Manuel Guesdon. 2005-05-03 Manuel Guesdon * EOControl/EOEditingContext.m: o fixes in _mergeObject:withChanges: (IMP initialization, variables (re-)initialization) o added NSAssert in -_mutableSetFromToManyArray: 2005-04-24 Manuel Guesdon * EOAccess/EOAttribute.m: o fixed test error in -newValueForBytes:length: 2005-04-24 Manuel Guesdon * EOControl/EOPriv.h: added GDL2_allocWithZone() * EOAccess/EOAttribute.m: o fixed -validateValue: rewritten following David Ayers's advices to handle EONull values validation and fix width validation o fixed -newValueForBytes:length: retain problems and wrong invocation target o fixed -newValueForBytes:length:encoding: retain problems and wrong invocation target o added comments and doc o added allowsNull in EOAttribute -description * EOControl/EOKeyValueArchiver.m: fixed int and bool archiving following David Ayers's comments (produce NSNumber instead of NSString) 2005-04-24 Matt Rice * EOAdaptors/Postgres95/Postgres95Adaptor.m: Removed externalTypeNames and internalTypeNames variables, replaced both with typeNames. (isValidQualifierType:model:): Use new variable. (externalToInternalTypeMap:): Ditto. 2005-04-19 David Ayers Fix bug reported by: jim _at_ uchicago dot edu. * EOAccess/EOEntity.m (-primaryKeyRootName): Recurse to through primaryKeyRootName of parent entity. * EOAdaptors/Postgres95/Postgres95Channel.m (primaryKeyForNewRowWithEntity:): Use primaryKeyRootName to construct sequence name. 2005-04-19 Manuel Guesdon * EOControl/EOKeyValueArchiver.m: implemented EOKeyValueArchiver * EOControl/EOKeyValueArchiver.h: removed private methods * EOControl/EOSortOrdering.h: added EOKeyValueArchiving protocol to EOSortOrdering * EOAccess/EOAttribute.m: put back David changes in -adaptorValueByConvertingAttributeValue added some docs 2005-04-07 Stephane Corthesy * Tools/eoutil.m: Added -excludedEntities option when dumping; added use of local autorelease pools; splitted SQL execution in different phases, to allow dropping then re-creating tables, in one shot; now fetches flattened or derived attributes; now can dump NSCalendarDate, NSData, NSNumber correctly; no longer tries to write (in db) flattened or derived or non class-property attributes; now ignores and log exceptions when -force option is used. 2005-03-17 Manuel Guesdon * EOControl/EOFault.m: added instanceMethodForSelector: to temporary fix defaulting problem with NSAutoreleasePool optimizations 2005-03-10 David Ayers * EOControl/EOKeyValueCoding: (-unableToSetNullForKey:): Deprecate and call unableToSetNilForKey. (-setNilValueForKey:): Call unableToSetNilForKey. (-unableToSetNilForKey:): Use default implementation. 2005-03-03 David Ayers * EOAccess/EODatabaseContext.m (-forgetSnapshotForGlobalID:): Handle deleted globalIDs correctly. (-forgetSnapshotsForGlobalIDs:): Ditto. (-_commitTransaction, -_beginTransaction): Ditto. (-_rollbackTransaction): Implement. * EOAccess/EORelationship.m (validateValue:): Document. Remove unnecessary comments and code. Handle EONulls. (+initialize): Implement. (+relationshipWithPropertyList:owner:): Move to top. 2005-03-03 Matt Rice David Ayers * EOAccess/EOEntity.m (initWithPropertyList:owner:): Reformatting for GNU coding standards. (-attributes): Fix memory leak. Use global class cache. Handle partially converted attributes array. (-_attributeNameChangedFrom:to:): New privat method. * EOAccess/EOEntityPriv.h (-_attributeNameChangedFrom:to:): Declare new private method. * EOAccess/EOAttribute.m (setName:): Call -[EOEntity _attributeNameChangedFrom:to:] if attribute is in an EOEntity. 2005-03-02 David Ayers * EOControl/EOKeyValueCoding.h/m: (-setNilValueForKey:): Override NSObject's category to invoke -unableToSetNullForKey:. * EOControl/EOSortOrdering.m: Include EONull.h instead of NSNull.h. * EOAccess/EODatabaseChannel.m: Update formatting. * EOAccess/EOModel.m (setName:): Remove from group before changing name and readd afterwards. 2005-02-22 David Ayers * EOAccess/EOAdaptor.m (-hasOpenChannels): Make safe for unsigned. * EOAccess/EOAttribute.m, EOAccess/EODatabaseContext.m, * EOAccess/EOEntity.m, EOAccess/EOSQLExpression.m * EOAccess/EOPrivate.h, EOAccess/EOPrivate.m, * EOAccess/EOSQLQualifier.m, EOAccess/EOUtilities.m * EOControl/EOClassDescription.m, EOControl/EOEditingContext.m * EOControl/EOGenericRecord.m, EOControl/EOKeyGlobalID.m * EOControl/EOKeyValueCoding.m, EOControl/EOKeyValueQualifier.m * EOControl/EOMutableKnownKeyDictionary.m, * EOControl/EOPrivate.h, EOControl/EOPrivate.m Unify GDL2 identifiers with GDL2_ prefix. Replace GDL2NSClass_alloc with GDL2_alloc(NSClass). Replace GDL2NSClassWith* calls with AUTORELEASE([GDL2_alloc(NSCLass) initWith* calls]). Rename GDL2PrivInit to GDL2_PrivateInit. (GDL2_NSArray, GDL2_NSMutableArray_allocWithZoneIMP) (GDL2_NSMutableDictionary_allocWithZoneIMP): New globals. (GDL2_alloc): New macro. (GDL2NSString_alloc, GDL2NSDecimalNumber_alloc) (GDL2NSNumber_alloc, GDL2NSCalendarDate_alloc, GDL2NSData_alloc) (GDL2DataWithBytesAndLength, GDL2MutableArrayWithCapacity) (GDL2MutableArrayWithArray, GDL2MutableArray, GDL2Array) (GDL2MutableDictionaryWithCapacity): Remove. 2005-02-20 David Ayers * EOAccess/EOAccessFault.m: Include NSThread.h. * EOControl/EOPriv.h/m: Split into... * EOControl/EOPrivat.h/m: ... and ... * EOAccess/EOPrivat.h/m: ... files. * EOAccess/EOAdaptorChannel.m: Include new privat header. * EOAccess/EOAttribute.m, EOAccess/EODatabase.m, * EOAccess/EODatabaseChannel.m, EOAccess/EOEntity.m, * EOAccess/EORelationship.m, EOAccess/EOSQLExpression.m, * EOAccess/EOSQLQualifier.m, EOAccess/EOUtilities.m: Ditto. (+initialize): Call new private function. * EOAccess/EODatabaseContext.m: Ditto. (EODatabaseContext_snapshotForGlobalIDWithImpPtr) (EODatabaseContext_globalIDForObjectWithImpPtr): Move to EOPrivate.m. * EOAccess/EODatabaseContextPriv.h: (EODatabaseContext_snapshotForGlobalIDWithImpPtr) (EODatabaseContext_globalIDForObjectWithImpPtr): Move to EOPrivate.h. * EOAccess/GNUmakefile: Compile EOPrivate.m. * EOControl/EOClassDescription.m, EOControl/EOGenericRecord.m * EOControl/EOKeyGlobalID.m, EOControl/EOKeyValueCoding.m * EOControl/EOKeyValueQualifier.m, EOControl/EONSAddOns.m * EOControl/EOSortOrdering.m: Include new private header. * EOControl/EOEditingContext.h/m: Ditto. (EOEditingContext_objectForGlobalIDWithImpPtr) (EOEditingContext_recordObjectGlobalIDWithImpPtr): Move to EOPrivate.h/m. * EOControl/EOMutableKnownKeyDictionary.h/m: Include new private header. (EOMKKD_objectForKeyWithImpPtr, EOMKKD_setObjectForKeyWithImpPtr) (EOMKKD_removeObjectForKeyWithImpPtr, EOMKKD_hasKeyWithImpPtr) (EOMKKD_indexForKeyWithImpPtr) (EOMKKDInitializer_indexForKeyWithImpPtr): Move to EOPrivate.m * EOControl/EOFault.m: (+isFault:): Update comment. * EOControl/GNUmakefile: Build EOPrivate.m instead of EOPriv.m. Do not install private header. * EOAccess/EOPrivate.h, EOAccess/EOPrivate.m, * EOAccess/EODatabaseContext.m, EOAccess/EOSQLExpression.m, * EOControl/EOEditingContext.m, EOControl/EOKeyValueCoding.m, * EOControl/EOMutableKnownKeyDictionary.m, * EOControl/EOPrivate.h, EOControl/EOPrivate.m: Remove global selector cache. 2005-02-19 David Ayers * EOAdaptors/Postgres95/Postgres95Private.m/h: New files based on EOControl/EOPriv.m/h. * EOAdaptors/Postgres95/GNUmakefile.in: Build Postgres95Private.m. * EOAdaptors/Postgres95/Postgres95Adaptor.m: Do not depend on EOControl/EOPriv.m/h but on own private files. (+assignExternalInfoForEntity): Use objectAtIndex: instead of enumerator for speed. * EOAdaptors/Postgres95/Postgres95Channel.m: (+initialize) (-lowLevelResultFieldNames:, -fetchRowWithZone:) (-insertRow:forEntity:, -_describeResults, -describeTableNames) (-updateValues:inRowsDescribedByQualifier:entity:) (-_describeBasicEntityWithName:forModel:) (-_describeForeignKeysForEntity:forModel:) (-primaryKeyForNewRowWithEntity:): Do not depend on EOControl/EOPriv.m/h but on own private files. Improve optimizations. (pgResultDictionary): Simplify unused static local be reverting optimizations. * EOAdaptors/Postgres95/Postgres95SQLExpression.m: (+initialize, +formatValue:forAttribute:) (+sqlPatternFromShellPattern:) (+sqlPatternFromShellPattern:withEscapeCharacter:): Do not depend on EOControl/EOPriv.m/h but on own private files. Improve optimizations. * EOAdaptors/Postgres95/Postgres95Values.h/m (Postgres95CalendarFormat, Postgres95ValuesClass) (Postgres95Values_newValueForBytesLengthAttributeSEL) (Postgres95Values_newValueForBytesLengthAttributeIMP) (Postgres95Values_newValueForBytesLengthAttribute): Remove. ([NSCalendarDate+setPostgres95Format:]): Remove. ([NSCalendarDate+postgres95Format]): Deprecate. (LPSQLA_StringDefaultCStringEncoding): New local static. (+initialize, +newValueForNumberType:length:attribute:) (+newValueForCharactersType:length:attribute:) (+newValueForDateType:length:attribute:): Do not depend on EOControl/EOPriv.m/h but on own private files. Improve optimizations. * EOAdaptors/Postgres95/Postgres95Values.m: Remove dependency on EOAccess/EOAttributePriv.h and EOControl/EONSAddOns.h. (attrRespondsToValueClass, attrRespondsToValueTypeChar): New static locals. (+initialize, +newValueForNumberType:length:attribute:): Remove dependency and used static locals instead. * EOAccess/EOAdaptor.m: Consistently use unsigned for array index variables. 2005-02-18 Matt Rice * EOAccess/EOModel.m (-addEntity:, -setName:): Call -willChange: when modifying the receiver. (-setConnectionDictionary:, -addEntity:, -removeEntity:): Ditto. (-addStoredProcedure:, -removeStoredProcedure:, -setAdaptorName): Ditto. * EOAccess/EOAttribute.m (-setName:, -setProtoType:,): Ditto. (-setDefinition:, -setReadOnly:, -setWidth:, -setPrecision:): Ditto. (-setScale:, -setWriteFormat:, -setReadFormat:): Ditto. (-setParameterDirection:, -setServerTimeZone:): Ditto. (-setValueFactoryMethodName:): Ditto. (-setAdaptorValueConversionMethodName:): Ditto. (-setFactoryMethodArgumentType:): Ditto. * EOAccess/EOEntity.m (-setRestrictingQualifier:): Ditto. (-setCachesObjects:, -setReadOnly:, -addAttribute:): Ditto. (-removeAttribute:, -addRelationship:, -removeRelationship:): Ditto. (-addFetchSpecification:withName:): Ditto. (-removeFetchSpecificationNamed:): Ditto. (-setClassProperties:, -setPrimaryKeyAttributes:): Ditto. (-setAttributesUsedForLocking:, -addSubEntity:): Ditto. (-removeSubEntity:, -setIsAbstractEntity:): Ditto. (-setMaxNumberOfInstancesToBatch:): Ditto. (-setStoredProcedure:forOperation:): Ditto. (-setParentEntity:): Ditto, And add comments * EOAccess/EORelationship.m (setToMany:): Call -willChange when modifying the receiver (-setNumberOfToManyFaultsToBatch:, -setDeleteRule:): Ditto. (-setInverseRelationship:): Ditto and comment. (-removeJoin:): Move -willChange call after error handling. * EOAccess/EOStoredProcedure: Include EOObserving headers. (-setName:, -setExternalName:, -setArguments:): Call -willChange: when modifying the receiver. (-setUserInfo:): Ditto. 2005-02-17 David Ayers * EOAccess/EOEntity.m: Remove unnecessary include. (-setClassProperties:, -setPrimaryKeyAttributes:) (-setAttributesUsedForLocking:): Remove unnecessary casts. * EOAccess/EODatabaseContext.m: (-_currentCommittedSnapshotForObject:): Fix crash in logging. (recordChangesInEditingContext): Remove shadowing of local variable. 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. * EOControl/EOGenericRecord.m (-storedValueForKey:) (-takeStoredValue:forKey:, -takeValue:forKey:, valueForKey): Use GSSelectorFromName instead of sel_get_any_uid. Omit test to islower. Format according to coding standards. * EOControl/EOKeyValueCoding.m (-takeValue:forKeyPath:isSmart:) Use unsigned for index bookkeeping. * EOAccess/EOAccessFault.m ([EOAccessFaultHandler-init]) ([EOAccessFaultHandler-dealloc]) ([EOAccessArrayFaultHandler-dealloc]): Use GSCurrentThread instead of objc_thread_id. (-completeInitializationOfObject): Correct comment. 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.