* 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.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@19287 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
David Ayers 2004-05-12 09:43:06 +00:00
parent d50838d4a0
commit ef5d799d86
8 changed files with 72 additions and 1 deletions

View file

@ -1,6 +1,16 @@
2004-05-12 David Ayers <d.ayers@inode.at>
* 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 <d.ayers@inode.at>
Alexander Malmberg <alexander@malmberg.org>

View file

@ -239,4 +239,14 @@ RCS_ID("$Id$")
return dscr;
}
- (void)addQualifierKeysToSet: (NSMutableSet *)keys
{
EOQualifier *qual;
unsigned int i,n;
for (i=0, n=[_qualifiers count]; i < n; i++)
{
qual = [_qualifiers objectAtIndex:i];
[qual addQualifierKeysToSet: keys];
}
}
@end

View file

@ -251,5 +251,9 @@ RCS_ID("$Id$")
_rightKey];
}
- (void)addQualifierKeysToSet: (NSMutableSet *)keys
{
[keys addObject: _leftKey];
}
@end

View file

@ -41,6 +41,7 @@ RCS_ID("$Id$")
#ifdef GNUSTEP
#include <Foundation/NSString.h>
#include <Foundation/NSDictionary.h>
#include <Foundation/NSSet.h>
#include <Foundation/NSObjCRuntime.h>
#include <Foundation/NSException.h>
#else
@ -319,6 +320,10 @@ static EONull *null = nil;
return [self notImplemented: _cmd]; //TODO
}
- (void)addQualifierKeysToSet: (NSMutableSet *)keys
{
[keys addObject: _key];
}
@end
@implementation EOKeyValueQualifier (Privat)

View file

@ -118,5 +118,9 @@ RCS_ID("$Id$")
[_qualifier _addBindingsToDictionary:dictionary];
}
- (void)addQualifierKeysToSet: (NSMutableSet *)keys
{
[_qualifier addQualifierKeysToSet: keys];
}
@end

View file

@ -223,4 +223,14 @@ RCS_ID("$Id$")
return dscr;
}
- (void)addQualifierKeysToSet: (NSMutableSet *)keys
{
EOQualifier *qual;
unsigned int i,n;
for (i=0, n=[_qualifiers count]; i < n; i++)
{
qual = [_qualifiers objectAtIndex:i];
[qual addQualifierKeysToSet: keys];
}
}
@end

View file

@ -40,6 +40,7 @@
@class NSArray;
@class NSDictionary;
@class NSString;
@class NSSet;
@class NSException;
@class EOClassDescription;
@ -80,6 +81,9 @@
- (NSArray *)bindingKeys;
- (NSString *)keyPathForBindingKey: (NSString *)key;
- (NSSet *)allQualifierKeys;
- (void)addQualifierKeysToSet: (NSMutableSet *)qualKeys;
- (BOOL)evaluateWithObject: (id)object;
@end

View file

@ -835,7 +835,7 @@ static Class whichQualifier(const char **cFormat, const char **s)
/** Returns binding keys **/
- (NSArray *)bindingKeys
{
NSMutableDictionary* bindings = (NSMutableDictionary*)[NSMutableDictionary dictionary];
NSMutableDictionary* bindings = (id)[NSMutableDictionary dictionary];
[self _addBindingsToDictionary:bindings];
return [bindings allKeys];
}
@ -866,6 +866,30 @@ static Class whichQualifier(const char **cFormat, const char **s)
return NO;
}
/**
* Returns a set containing the keys of the qualifier tree starting
* from the receiver. Subclasses should override -addQualifierKeysToSet:
* and rely on the implementation EOQualifier for this method.
*/
- (NSSet *)allQualifierKeys
{
NSMutableSet *keys;
keys = (id)[NSMutableSet set];
[self addQualifierKeysToSet: keys];
return [NSSet setWithSet: keys];
}
/**
* Subclasses must override this method to add their qualifier keys to
* the provided keys set. Aggregate qualifiers, such as EOAndQualifer,
* should traverse their contents invoking this method on each with the
* provided set.
*/
- (void)addQualifierKeysToSet: (NSMutableSet *)keys
{
[self subclassResponsibility: _cmd];
}
@end
@implementation EOQualifier (Privat)