Add comparison methods category for compatibility with OS X.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27424 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Gregory John Casamento 2008-12-25 23:38:58 +00:00
parent 823e5f0032
commit bc64f6c30b
3 changed files with 113 additions and 0 deletions

View file

@ -1,3 +1,15 @@
2008-12-25 11:10-EST Gregory John Casamento <greg_casamento@yahoo.com>
* Source/GNUmakefile: Add new NSObjectNSComparisonMethods.m
category to the makefile.
* Source/NSObject+NSComparisonMethods.m: Added to implement
Mac OS X specific methods for comparison of objects. On Cocoa these
are in NSScriptWhoseTests.h, but since GNUstep doesn't support
Apple Script I've put them in a separate category for now. Some
applications use these to do comparisons (even though they are for
scripting). The location of these may change in the future depending
on if we implement scripting.
2008-12-24 Nicola Pero <nicola.pero@meta-innovation.com>
* configure.ac: Improved help for --with-installation-domain=xxx.

View file

@ -215,6 +215,7 @@ NSNumber.m \
NSNumberFormatter.m \
NSObjCRuntime.m \
NSObject.m \
NSObject+NSComparisonMethods.m \
NSPage.m \
NSPathUtilities.m \
NSPipe.m \

View file

@ -0,0 +1,100 @@
/** Implementation of NSObject+NSComparisonMethods for GNUStep
Copyright (C) 2008 Free Software Foundation, Inc.
Written by: Gregory Casamento <greg_casamento@yahoo.com>
Date: 2008
This file is part of the GNUstep Base Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111 USA.
<title>NSObject+NSComparisonMethods category reference</title>
$Date: 2008-11-26 04:20:34 -0500 (Wed, 26 Nov 2008) $ $Revision: 27135 $
*/
#include "Foundation/NSObject.h"
#include "Foundation/NSArray.h"
#include "Foundation/NSString.h"
@interface NSObject (NSComparisonMethods)
- (BOOL) doesContain: (id) object;
- (BOOL) isCaseInsensitiveLike: (id) object;
- (BOOL) isEqualTo: (id) object;
- (BOOL) isGreaterThan: (id) object;
- (BOOL) isGreaterThanOrEqualTo: (id) object;
- (BOOL) isLessThan: (id) object;
- (BOOL) isLessThanOrEqualTo: (id) object;
- (BOOL) isLike: (NSString *)object;
- (BOOL) isNotEqualTo: (id) object;
@end
@implementation NSObject (NSComparisonMethods)
- (BOOL) doesContain: (id) object
{
if (object)
{
if ([self isKindOfClass: [NSArray class]])
{
[(NSArray *)self containsObject: object];
}
}
return NO;
}
- (BOOL) isCaseInsensitiveLike: (id) object
{
NSLog(@"%@ not implemented yet", NSStringFromSelector(_cmd));
return NO;
}
- (BOOL) isEqualTo: (id) object
{
return [self isEqual: object];
}
- (BOOL) isGreaterThan: (id) object
{
return ([self compare: object] == NSOrderedDescending);
}
- (BOOL) isGreaterThanOrEqualTo: (id) object
{
return ([self compare: object] == NSOrderedDescending ||
[self compare: object] == NSOrderedSame);
}
- (BOOL) isLessThan: (id) object
{
return ([self compare: object] == NSOrderedAscending);
}
- (BOOL) isLessThanOrEqualTo: (id) object
{
return ([self compare: object] == NSOrderedAscending ||
[self compare: object] == NSOrderedSame);
}
- (BOOL) isLike: (NSString *)object
{
NSLog(@"%@ not implemented yet", NSStringFromSelector(_cmd));
return NO;
}
- (BOOL) isNotEqualTo: (id) object
{
return !([self isEqual: object]);
}
@end