without class declarations. Reported by Dirk Lattermann.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20595 72102866-910b-0410-8b05-ffd578937521
.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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20294 72102866-910b-0410-8b05-ffd578937521
(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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20279 72102866-910b-0410-8b05-ffd578937521
numeric values as stings for WO45 EOModel format compatibility.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20202 72102866-910b-0410-8b05-ffd578937521
awakeObject:fromInsertionInEditingContext:]): Only process
class properties. Remove inactive code. Document.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20166 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20149 72102866-910b-0410-8b05-ffd578937521
(-[setExternalQuery:],-[setClassName:],-[setDocComment]): Use
ASSIGNCOPY instead of ASSIGN to deal with mutable strings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20121 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20042 72102866-910b-0410-8b05-ffd578937521
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:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20032 72102866-910b-0410-8b05-ffd578937521
(-[_addEntity:]): Set model via public API.
* EOAccess/EOEntityPriv.h (-[_setModel:]): Remove.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20027 72102866-910b-0410-8b05-ffd578937521
(-[_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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20026 72102866-910b-0410-8b05-ffd578937521
(-[setDefinition:]): Allow definition to unset.
(-[setEntity:]): Mark both old and new entity as edited.
* EOAccess/EOStoredProcedure.m
(-[initWithPropertyList:]): Make return type explicit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20024 72102866-910b-0410-8b05-ffd578937521
* EOAccess/EOEntity.m
(-[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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20023 72102866-910b-0410-8b05-ffd578937521
* EOAccess/EOAttribute.m (_parent, -[setParent:]): Do not
retain backward reference.
(-[setName:): Mark as editited if parent is an entity.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20022 72102866-910b-0410-8b05-ffd578937521
(-[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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@19342 72102866-910b-0410-8b05-ffd578937521
([Postgres95Channel describeModelWithTableNames:]):
Set class properties.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@19337 72102866-910b-0410-8b05-ffd578937521
([EOAttribute initialize]): Implement class caching.
([EOAttribute *]): Use cached classes.
([EOAttribute adaptorValueByConvertingAttributeValue:]):
Only convert attributes when necessary.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@19336 72102866-910b-0410-8b05-ffd578937521
Return unique names if multiple Adaptors are found. Document.
Reported by Matt Rice <ratmice@yahoo.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@19173 72102866-910b-0410-8b05-ffd578937521
* EOAdaptors/Postgres95/LoginPanel/Makefile.postamble: Allow
clean and distclean targets when -gui is not available.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@19158 72102866-910b-0410-8b05-ffd578937521
(vfmaxf) Make static. Reformat.
([Postgres95LoginPanel dealloc]): Use DESTROY in favor of
RELEASE.
([Postgres95LoginPanel init]): Minor reformatting and more
tempRect usage.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@19136 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@19129 72102866-910b-0410-8b05-ffd578937521
Create symlink before building. Error reported by Ludovic
Marcotte and Matt Rice.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@19080 72102866-910b-0410-8b05-ffd578937521
Create single global model group and cache it to allow
persistant manual adding of models.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18961 72102866-910b-0410-8b05-ffd578937521
([Postgres95SQLExpression columnTypeStringForAttribute:]):
Implement special handling for text types to ignore precision
and width as suggested by Matt Rice <ratmice@yahoo.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18952 72102866-910b-0410-8b05-ffd578937521
as requested by Marcus Mueller <znek@mulle-kybernetik.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18856 72102866-910b-0410-8b05-ffd578937521
([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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18798 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18664 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18659 72102866-910b-0410-8b05-ffd578937521
type mappings to correspond to EOAdaptorValueTypes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18658 72102866-910b-0410-8b05-ffd578937521
Maintain instances on a per class basis as reported by Matt Rice.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18639 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18638 72102866-910b-0410-8b05-ffd578937521
([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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18587 72102866-910b-0410-8b05-ffd578937521
([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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18586 72102866-910b-0410-8b05-ffd578937521
NSSearchPathForDirectoriesInDomains() instead of GNUstep
specific environment variable.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18518 72102866-910b-0410-8b05-ffd578937521
Add -lgnustep-baseadd as ADDITIONAL_TOOL_LIBS for non-*-gnu-*.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18511 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18227 72102866-910b-0410-8b05-ffd578937521
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;
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18226 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18225 72102866-910b-0410-8b05-ffd578937521
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:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18224 72102866-910b-0410-8b05-ffd578937521
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:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18223 72102866-910b-0410-8b05-ffd578937521
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.h/m
o added number accessors for NSString
o added NSObject
-performSelector:withObject:withObject:withObject:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18221 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17969 72102866-910b-0410-8b05-ffd578937521
(-[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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17960 72102866-910b-0410-8b05-ffd578937521
(-[EOFetchSpecification
fetchSpecificationNamed:entityNamed:]}:
Implemented upon bug report by Philip Moetteli.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17958 72102866-910b-0410-8b05-ffd578937521
(+[EOClassDescription initialize]): Initialize model group
after callback tables are initilized.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17746 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17534 72102866-910b-0410-8b05-ffd578937521
* 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🔒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🔒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
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17037 72102866-910b-0410-8b05-ffd578937521
([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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17013 72102866-910b-0410-8b05-ffd578937521
([Postgres95Channel -describeTableNames]): Removed incorrect code
left by copy and paste action. Reported by Markus Hitter.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17003 72102866-910b-0410-8b05-ffd578937521
add private declaration of GSObjCGetMethod() until the replacement
is in place.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16758 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16740 72102866-910b-0410-8b05-ffd578937521
-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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16729 72102866-910b-0410-8b05-ffd578937521
+globalIDWithEntityName:keys:keyCount:zone:]): Use AUTORELEASE
instead of autorelease.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16675 72102866-910b-0410-8b05-ffd578937521
NSUnknownKeyException for EOUnknownKeyException to allow use of
base/Foundation NSKeyValueCoding.
* EOControl/EOKeyValueCoding.m: Add EOTargetObjectUserInfoKey and
EOUnknownUserInfoKey.
([NSObject +flushAllKeyBindings]): Add method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16602 72102866-910b-0410-8b05-ffd578937521
usage of potential future runtime function name with current
function name.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16301 72102866-910b-0410-8b05-ffd578937521
* *.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 <stephane@sente.ch>
* 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
(<NSCoding> 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 <NSCopying>.
([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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16298 72102866-910b-0410-8b05-ffd578937521
* 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
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16217 72102866-910b-0410-8b05-ffd578937521
initialize (if present) the default model group. This helps
+classDescriptionFor* to work correctly.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16163 72102866-910b-0410-8b05-ffd578937521
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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16023 72102866-910b-0410-8b05-ffd578937521
([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.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@15952 72102866-910b-0410-8b05-ffd578937521
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 !
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@15856 72102866-910b-0410-8b05-ffd578937521
* 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 <d.ayers@inode.at>)
* EOAccess/EODatabaseContext.m:
o Move registration for EODatabaseChannelNeddedNotification
from +load to +initialize. (David Ayers <d.ayers@inode.at>)
* 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 <d.ayers@inode.at>)
* 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 <d.ayers@inode.at>)
* EOControl/EOQualifier.m:
o +operatorSelectorForString:]): Parse 'doesContain' instead of
'contains' (David Ayers <d.ayers@inode.at>)
* EOControl/EODebug.m:
o include NSDebug.h
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@15845 72102866-910b-0410-8b05-ffd578937521
row:entity:editingContext:]): set nil instead of EONull
* EOControl/EONull.m: included config.h
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@15370 72102866-910b-0410-8b05-ffd578937521
-inverseForRelationshipKey:]): Fixed to return a relationship name that
is a class property.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@15308 72102866-910b-0410-8b05-ffd578937521