/*!
@header FTIdImpl
@abstract Module of FT
@availability OS X, GNUstep
@copyright 2004, 2005, 2006 Free Software Foundation, Inc.
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.1 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
Lesser 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 02110-1301 USA
-------------------------------------------------------------------------
Modification history
23.02.05 ola initial version
23.08.06 ola license changed
-------------------------------------------------------------------------
*/
#include
@implementation FTIdImpl
- initWithString: (NSString *) aString {
self = [super init];
self->idString = [aString retain];
return self;
}
- initWithCoder: (NSCoder *) coder {
self->idString = (NSString *) [[coder decodeObject] retain];
return self;
}
- (void) dealloc {
[self->idString release];
[super dealloc];
}
- copyWithZone:(NSZone *) zone {
FTIdImpl *copiedInstance = nil;
if( NULL != zone ) {
copiedInstance = [FTIdImpl allocWithZone: zone];
} else {
copiedInstance = [FTIdImpl alloc];
}
copiedInstance = [copiedInstance initWithString: self->idString];
return copiedInstance;
}
- (NSString *) description {
return self->idString;
}
- (void) encodeWithCoder: (NSCoder *) coder {
[coder encodeObject: self->idString];
}
/*!
* @method hash
*/
- (unsigned) hash {
if( nil == self->idString ) {
return [super hash];
} else {
return [self->idString hash];
}
}
- (BOOL) isEqual: (id) toCompareWith {
BOOL doEqual = NO;
if( nil != toCompareWith ) {
if( [toCompareWith isKindOfClass: [self class]] ) {
doEqual = [self->idString isEqual:
((FTIdImpl *) toCompareWith)->idString ];
}
}
return doEqual;
}
@end