From: <ho...@us...> - 2009-11-29 21:47:10
|
Revision: 16208 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=16208&view=rev Author: hofman Date: 2009-11-29 21:46:55 +0000 (Sun, 29 Nov 2009) Log Message: ----------- implement NSCoder in external group, though this should never be used. Modified Paths: -------------- trunk/bibdesk/BDSKExternalGroup.m trunk/bibdesk/BDSKScriptGroup.m trunk/bibdesk/BDSKSearchGroup.m trunk/bibdesk/BDSKServerInfo.h trunk/bibdesk/BDSKServerInfo.m trunk/bibdesk/BDSKSharedGroup.m trunk/bibdesk/BDSKURLGroup.m Modified: trunk/bibdesk/BDSKExternalGroup.m =================================================================== --- trunk/bibdesk/BDSKExternalGroup.m 2009-11-29 17:43:30 UTC (rev 16207) +++ trunk/bibdesk/BDSKExternalGroup.m 2009-11-29 21:46:55 UTC (rev 16208) @@ -58,13 +58,19 @@ return self; } -- (id)initWithCoder:(NSCoder *)aCoder { - [NSException raise:BDSKUnimplementedException format:@"Instances of %@ do not conform to NSCoding", [self class]]; - return nil; +- (id)initWithCoder:(NSCoder *)decoder { + BDSKASSERT_NOT_REACHED("External groups should never be decoded"); + if (self = [super initWithCoder:decoder]) { + publications = nil; + macroResolver = [[BDSKMacroResolver alloc] initWithOwner:self]; + searchIndexes = [BDSKItemSearchIndexes new]; + } + return self; } -- (void)encodeWithCoder:(NSCoder *)aCoder { - [NSException raise:BDSKUnimplementedException format:@"Instances of %@ do not conform to NSCoding", [self class]]; +- (void)encodeWithCoder:(NSCoder *)coder { + BDSKASSERT_NOT_REACHED("External groups should never be encoded"); + [super encodeWithCoder:coder]; } - (id)copyWithZone:(NSZone *)aZone { Modified: trunk/bibdesk/BDSKScriptGroup.m =================================================================== --- trunk/bibdesk/BDSKScriptGroup.m 2009-11-29 17:43:30 UTC (rev 16207) +++ trunk/bibdesk/BDSKScriptGroup.m 2009-11-29 21:46:55 UTC (rev 16208) @@ -109,6 +109,29 @@ return [NSDictionary dictionaryWithObjectsAndKeys:aName, @"group name", aPath, @"script path", anArgs, @"script arguments", aType, @"script type", nil]; } +- (id)initWithCoder:(NSCoder *)decoder { + if (self = [super initWithCoder:decoder]) { + scriptPath = [[decoder decodeObjectForKey:@"scriptPath"] retain]; + scriptArguments = [[decoder decodeObjectForKey:@"scriptArguments"] retain]; + scriptType = [decoder decodeIntegerForKey:@"scriptType"]; + + argsArray = nil; + isRetrieving = NO; + failedDownload = NO; + + workingDirPath = [[[NSFileManager defaultManager] makeTemporaryDirectoryWithBasename:nil] retain]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminate:) name:NSApplicationWillTerminateNotification object:nil]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)coder { + [super encodeWithCoder:coder]; + [coder encodeObject:scriptPath forKey:@"scriptPath"]; + [coder encodeObject:scriptArguments forKey:@"scriptArguments"]; + [coder encodeInteger:scriptType forKey:@"scriptType"]; +} + - (id)copyWithZone:(NSZone *)aZone { return [[[self class] allocWithZone:aZone] initWithName:name scriptPath:scriptPath scriptArguments:scriptArguments scriptType:scriptType]; } Modified: trunk/bibdesk/BDSKSearchGroup.m =================================================================== --- trunk/bibdesk/BDSKSearchGroup.m 2009-11-29 17:43:30 UTC (rev 16207) +++ trunk/bibdesk/BDSKSearchGroup.m 2009-11-29 21:46:55 UTC (rev 16208) @@ -179,6 +179,27 @@ return [groupDict autorelease]; } +- (id)initWithCoder:(NSCoder *)decoder { + if (self = [super initWithCoder:decoder]) { + type = [[decoder decodeObjectForKey:@"type"] retain]; + searchTerm = [[decoder decodeObjectForKey:@"searchTerm"] retain]; + + history = nil; + + [self resetServerWithInfo:[decoder decodeObjectForKey:@"serverInfo"]]; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminate:) name:NSApplicationWillTerminateNotification object:nil]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)coder { + [super encodeWithCoder:coder]; + [coder encodeObject:type forKey:@"type"]; + [coder encodeObject:searchTerm forKey:@"searchTerm"]; + [coder encodeObject:[self serverInfo] forKey:@"serverInfo"]; +} + - (id)copyWithZone:(NSZone *)aZone { return [[[self class] allocWithZone:aZone] initWithType:type serverInfo:[self serverInfo] searchTerm:searchTerm]; } Modified: trunk/bibdesk/BDSKServerInfo.h =================================================================== --- trunk/bibdesk/BDSKServerInfo.h 2009-11-29 17:43:30 UTC (rev 16207) +++ trunk/bibdesk/BDSKServerInfo.h 2009-11-29 21:46:55 UTC (rev 16208) @@ -45,7 +45,7 @@ BDSKServerTypeDBLP }; -@interface BDSKServerInfo : NSObject <NSCopying, NSMutableCopying> { +@interface BDSKServerInfo : NSObject <NSCopying, NSMutableCopying, NSCoding> { NSString *type; NSString *name; NSString *database; Modified: trunk/bibdesk/BDSKServerInfo.m =================================================================== --- trunk/bibdesk/BDSKServerInfo.m 2009-11-29 17:43:30 UTC (rev 16207) +++ trunk/bibdesk/BDSKServerInfo.m 2009-11-29 21:46:55 UTC (rev 16208) @@ -99,6 +99,27 @@ return self; } +- (id)initWithCoder:(NSCoder *)decoder { + if (self = [super init]) { + type = [[decoder decodeObjectForKey:@"type"] retain]; + name = [[decoder decodeObjectForKey:@"name"] retain]; + database = [[decoder decodeObjectForKey:@"database"] retain]; + host = [[decoder decodeObjectForKey:@"host"] retain]; + port = [[decoder decodeObjectForKey:@"port"] retain]; + options = [[decoder decodeObjectForKey:@"options"] mutableCopy]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)coder { + [coder encodeObject:type forKey:@"type"]; + [coder encodeObject:name forKey:@"name"]; + [coder encodeObject:database forKey:@"database"]; + [coder encodeObject:host forKey:@"host"]; + [coder encodeObject:port forKey:@"port"]; + [coder encodeObject:options forKey:@"options"]; +} + - (id)copyWithZone:(NSZone *)aZone { id copy = [[BDSKServerInfo allocWithZone:aZone] initWithType:[self type] name:[self name] database:[self database] host:[self host] port:[self port] options:[self options]]; return copy; Modified: trunk/bibdesk/BDSKSharedGroup.m =================================================================== --- trunk/bibdesk/BDSKSharedGroup.m 2009-11-29 17:43:30 UTC (rev 16207) +++ trunk/bibdesk/BDSKSharedGroup.m 2009-11-29 21:46:55 UTC (rev 16208) @@ -149,6 +149,12 @@ return self; } +- (id)initWithCoder:(NSCoder *)decoder { + [self release]; + self = nil; + return self; +} + - (void)dealloc; { [[NSNotificationCenter defaultCenter] removeObserver:self]; Modified: trunk/bibdesk/BDSKURLGroup.m =================================================================== --- trunk/bibdesk/BDSKURLGroup.m 2009-11-29 17:43:30 UTC (rev 16207) +++ trunk/bibdesk/BDSKURLGroup.m 2009-11-29 21:46:55 UTC (rev 16208) @@ -96,6 +96,22 @@ return [NSDictionary dictionaryWithObjectsAndKeys:aName, @"group name", anURL, @"URL", nil]; } +- (id)initWithCoder:(NSCoder *)decoder { + if (self = [super initWithCoder:decoder]) { + URL = [[decoder decodeObjectForKey:@"URL"] retain]; + + isRetrieving = NO; + failedDownload = NO; + URLDownload = nil; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)coder { + [super encodeWithCoder:coder]; + [coder encodeObject:URL forKey:@"URL"]; +} + - (id)copyWithZone:(NSZone *)aZone { return [[[self class] allocWithZone:aZone] initWithName:name URL:URL]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |