From 9819f3e3449ae2c654067a306d0d572380e9dd7c Mon Sep 17 00:00:00 2001 From: rfm Date: Tue, 10 Oct 2006 04:43:35 +0000 Subject: [PATCH] Implement coding/decoding git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23833 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 4 ++++ Source/NSDecimalNumber.m | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/ChangeLog b/ChangeLog index 08010d205..25c7c2c95 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2006-10-10 Richard Frith-Macdonald + + * Source/NSDecimalNumber.m: Implement coding/decoding + 2006-10-09 Nicola Pero * GNUmakefile: Do not include GNUmakefile.local. diff --git a/Source/NSDecimalNumber.m b/Source/NSDecimalNumber.m index db54b29df..f466dc16a 100644 --- a/Source/NSDecimalNumber.m +++ b/Source/NSDecimalNumber.m @@ -29,6 +29,8 @@ #include "Foundation/NSException.h" #include "Foundation/NSDecimal.h" #include "Foundation/NSDecimalNumber.h" +#include "Foundation/NSCoder.h" +#include "Foundation/NSPortCoder.h" #include "GSPrivate.h" // shared default behavior for NSDecimalNumber class @@ -663,6 +665,32 @@ static NSDecimalNumber *one; return [[isa defaultBehavior] scale]; } +- (Class) classForCoder +{ + return [NSDecimalNumber class]; +} + +- (id) replacementObjectForPortCoder: (NSPortCoder*)aCoder +{ + if ([aCoder isByref] == NO) + return self; + return [super replacementObjectForPortCoder: aCoder]; +} + +- (void) encodeWithCoder: (NSCoder*)coder +{ + NSString *s = [self descriptionWithLocale: nil]; + + [coder encodeObject: s]; +} + +- (id) initWithCoder: (NSCoder*)coder +{ + NSString *s = [coder decodeObject]; + + return [self initWithString: s locale: nil]; +} + @end @implementation NSNumber (NSDecimalNumber)