Revision: 27940 http://sourceforge.net/p/bibdesk/svn/27940 Author: hofman Date: 2022-09-26 22:16:17 +0000 (Mon, 26 Sep 2022) Log Message: ----------- use a single method to convert scripting server info to a serverInfo object
Modified Paths: -------------- trunk/bibdesk/BDSKGroup+Scripting.h trunk/bibdesk/BDSKGroup+Scripting.m trunk/bibdesk/BDSKSearchBookmark+Scripting.m trunk/bibdesk/BDSKServerInfo+Scripting.h trunk/bibdesk/BDSKServerInfo+Scripting.m trunk/bibdesk/BibDocument+Scripting.m Modified: trunk/bibdesk/BDSKGroup+Scripting.h =================================================================== --- trunk/bibdesk/BDSKGroup+Scripting.h 2022-09-26 21:38:51 UTC (rev 27939) +++ trunk/bibdesk/BDSKGroup+Scripting.h 2022-09-26 22:16:17 UTC (rev 27940) @@ -164,8 +164,6 @@ @property (nonatomic, readonly) NSString *scriptingURL; -+ (BDSKServerInfo *)newServerInfo:(BDSKServerInfo *)oldInfo withScriptingServerInfo:(NSDictionary *)info; - @end #pragma mark - Modified: trunk/bibdesk/BDSKGroup+Scripting.m =================================================================== --- trunk/bibdesk/BDSKGroup+Scripting.m 2022-09-26 21:38:51 UTC (rev 27939) +++ trunk/bibdesk/BDSKGroup+Scripting.m 2022-09-26 22:16:17 UTC (rev 27940) @@ -560,7 +560,7 @@ } - (void)setScriptingServerInfo:(NSDictionary *)info { - BDSKServerInfo *serverInfo = [[self serverInfo] newServerInfoWithScriptingServerInfo:info]; + BDSKServerInfo *serverInfo = [BDSKServerInfo newServerInfo:[self serverInfo] withScriptingServerInfo:info]; if (serverInfo != nil && [NSString isEmptyString:[serverInfo name]] == NO) { [self setServerInfo:serverInfo]; } else { @@ -579,89 +579,6 @@ return [[self bdsksearchURL] absoluteString]; } -+ (BDSKServerInfo *)newServerInfo:(BDSKServerInfo *)oldInfo withScriptingServerInfo:(NSDictionary *)info { - NSString *serverType = [info objectForKey:@"type"] ?: [oldInfo type]; - BDSKMutableServerInfo *serverInfo = nil; - NSString *serverName = [info valueForKey:@"name"]; - NSString *database = [info valueForKey:@"database"]; - NSString *host = [info valueForKey:@"host"]; - NSString *port = [info valueForKey:@"port"]; - - if ([serverType isEqualToString:[oldInfo type]]) { - serverInfo = [oldInfo mutableCopy]; - - NSString *value; - NSNumber *number; - - if (serverName) - [serverInfo setName:serverName]; - if (database) - [serverInfo setDatabase:database]; - if ([serverType isEqualToString:BDSKSearchGroupZoom]) { - if (host) - [serverInfo setHost:host]; - if (port) - [serverInfo setPort:port]; - if ((value = [info valueForKey:@"username"])) - [serverInfo setUsername:value]; - if ((value = [info valueForKey:@"password"])) - [serverInfo setPassword:value]; - if ((value = [info valueForKey:@"recordSyntax"])) - [serverInfo setRecordSyntax:value]; - if ((value = [info valueForKey:@"resultEncoding"])) - [serverInfo setResultEncoding:value]; - if ((number = [info valueForKey:@"removeDiacritics"])) - [serverInfo setRemoveDiacritics:[number boolValue]]; - } else if ([serverType isEqualToString:BDSKSearchGroupISI]) { - if ((value = [info valueForKey:@"username"])) - [serverInfo setUsername:value]; - if ((value = [info valueForKey:@"password"])) - [serverInfo setPassword:value]; - if ((number = [info valueForKey:@"lite"])) - [serverInfo setLite:[number boolValue]]; - } - } else if (serverType) { - NSMutableDictionary *options = nil; - - if ([serverType isEqualToString:BDSKSearchGroupZoom]) { - options = [NSMutableDictionary dictionary]; - [options setValue:[info valueForKey:@"username"] forKey:@"username"]; - [options setValue:[info valueForKey:@"password"] forKey:@"password"]; - [options setValue:[info valueForKey:@"resultEncoding"] forKey:@"resultEncoding"]; - [options setValue:[info valueForKey:@"removeDiacritics"] forKey:@"removeDiacritics"]; - } else if ([serverType isEqualToString:BDSKSearchGroupISI]) { - options = [NSMutableDictionary dictionary]; - [options setValue:[info valueForKey:@"username"] forKey:@"username"]; - [options setValue:[info valueForKey:@"password"] forKey:@"password"]; - [options setValue:[info valueForKey:@"lite"] forKey:@"lite"]; - } - - serverInfo = [[BDSKMutableServerInfo alloc] initWithType:serverType name:serverName database:database host:host port:port options:options]; - } - - BOOL isValid = YES; - id value, validatedValue; - - if ([NSString isEmptyString:[serverInfo database]]) - isValid = NO; - else if ([serverInfo isZoom] && ([NSString isEmptyString:[serverInfo host]] || [[serverInfo port] integerValue] == 0)) - isValid = NO; - for (NSString *key in info) { - if (isValid == NO) break; - value = validatedValue = [info valueForKey:key]; - if ((isValid = [serverInfo validateValue:&validatedValue forKey:key error:NULL]) && - [validatedValue isEqual:value] == NO) - [serverInfo setValue:validatedValue forKey:key]; - } - - if (isValid == NO) { - [serverInfo release]; - serverInfo = nil; - } - - return serverInfo; -} - @end #pragma mark - Modified: trunk/bibdesk/BDSKSearchBookmark+Scripting.m =================================================================== --- trunk/bibdesk/BDSKSearchBookmark+Scripting.m 2022-09-26 21:38:51 UTC (rev 27939) +++ trunk/bibdesk/BDSKSearchBookmark+Scripting.m 2022-09-26 22:16:17 UTC (rev 27940) @@ -119,7 +119,7 @@ case BDSKSearchBookmarkTypeBookmark: { NSString *serverType = [anInfo objectForKey:@"type"] ?: BDSKSearchGroupEntrez; - BDSKServerInfo *serverInfo = [[BDSKServerInfo defaultServerInfoWithType:serverType] newServerInfoWithScriptingServerInfo:anInfo]; + BDSKServerInfo *serverInfo = [BDSKServerInfo newServerInfo:[BDSKServerInfo defaultServerInfoWithType:serverType] withScriptingServerInfo:anInfo]; if (serverInfo) { NSDictionary *theInfo = [serverInfo dictionaryValue]; if ([NSString isEmptyString:aSearchTerm] == NO) { Modified: trunk/bibdesk/BDSKServerInfo+Scripting.h =================================================================== --- trunk/bibdesk/BDSKServerInfo+Scripting.h 2022-09-26 21:38:51 UTC (rev 27939) +++ trunk/bibdesk/BDSKServerInfo+Scripting.h 2022-09-26 22:16:17 UTC (rev 27940) @@ -47,6 +47,6 @@ @property (nonatomic, readonly) NSString *scriptingName; -- (BDSKServerInfo *)newServerInfoWithScriptingServerInfo:(NSDictionary *)info; ++ (BDSKServerInfo *)newServerInfo:(BDSKServerInfo *)serverInfo withScriptingServerInfo:(NSDictionary *)info; @end Modified: trunk/bibdesk/BDSKServerInfo+Scripting.m =================================================================== --- trunk/bibdesk/BDSKServerInfo+Scripting.m 2022-09-26 21:38:51 UTC (rev 27939) +++ trunk/bibdesk/BDSKServerInfo+Scripting.m 2022-09-26 22:16:17 UTC (rev 27940) @@ -79,16 +79,16 @@ return [self name]; } -- (BDSKServerInfo *)newServerInfoWithScriptingServerInfo:(NSDictionary *)info { - NSString *serverType = [info objectForKey:@"type"] ?: [self type]; ++ (BDSKServerInfo *)newServerInfo:(BDSKServerInfo *)oldInfo withScriptingServerInfo:(NSDictionary *)info { + NSString *serverType = [info objectForKey:@"type"] ?: [oldInfo type]; BDSKMutableServerInfo *serverInfo = nil; NSString *serverName = [info valueForKey:@"name"]; - NSString *serverDatabase = [info valueForKey:@"database"]; - NSString *serverHost = [info valueForKey:@"host"]; - NSString *serverPort = [info valueForKey:@"port"]; + NSString *database = [info valueForKey:@"database"]; + NSString *host = [info valueForKey:@"host"]; + NSString *port = [info valueForKey:@"port"]; - if ([serverType isEqualToString:[self type]]) { - serverInfo = [self mutableCopy]; + if ([serverType isEqualToString:[oldInfo type]]) { + serverInfo = [oldInfo mutableCopy]; NSString *value; NSNumber *number; @@ -95,13 +95,13 @@ if (serverName) [serverInfo setName:serverName]; - if (serverDatabase) - [serverInfo setDatabase:serverDatabase]; + if (database) + [serverInfo setDatabase:database]; if ([serverType isEqualToString:BDSKSearchGroupZoom]) { - if (serverHost) - [serverInfo setHost:serverHost]; - if (serverPort) - [serverInfo setPort:serverPort]; + if (host) + [serverInfo setHost:host]; + if (port) + [serverInfo setPort:port]; if ((value = [info valueForKey:@"username"])) [serverInfo setUsername:value]; if ((value = [info valueForKey:@"password"])) @@ -121,22 +121,22 @@ [serverInfo setLite:[number boolValue]]; } } else if (serverType) { - NSMutableDictionary *serverOptions = nil; + NSMutableDictionary *options = nil; if ([serverType isEqualToString:BDSKSearchGroupZoom]) { - serverOptions = [NSMutableDictionary dictionary]; - [serverOptions setValue:[info valueForKey:@"username"] forKey:@"username"]; - [serverOptions setValue:[info valueForKey:@"password"] forKey:@"password"]; - [serverOptions setValue:[info valueForKey:@"resultEncoding"] forKey:@"resultEncoding"]; - [serverOptions setValue:[info valueForKey:@"removeDiacritics"] forKey:@"removeDiacritics"]; + options = [NSMutableDictionary dictionary]; + [options setValue:[info valueForKey:@"username"] forKey:@"username"]; + [options setValue:[info valueForKey:@"password"] forKey:@"password"]; + [options setValue:[info valueForKey:@"resultEncoding"] forKey:@"resultEncoding"]; + [options setValue:[info valueForKey:@"removeDiacritics"] forKey:@"removeDiacritics"]; } else if ([serverType isEqualToString:BDSKSearchGroupISI]) { - serverOptions = [NSMutableDictionary dictionary]; - [serverOptions setValue:[info valueForKey:@"username"] forKey:@"username"]; - [serverOptions setValue:[info valueForKey:@"password"] forKey:@"password"]; - [serverOptions setValue:[info valueForKey:@"lite"] forKey:@"lite"]; + options = [NSMutableDictionary dictionary]; + [options setValue:[info valueForKey:@"username"] forKey:@"username"]; + [options setValue:[info valueForKey:@"password"] forKey:@"password"]; + [options setValue:[info valueForKey:@"lite"] forKey:@"lite"]; } - serverInfo = [[BDSKMutableServerInfo alloc] initWithType:serverType name:serverName database:serverDatabase host:serverHost port:serverPort options:serverOptions]; + serverInfo = [[BDSKMutableServerInfo alloc] initWithType:serverType name:serverName database:database host:host port:port options:options]; } BOOL isValid = YES; Modified: trunk/bibdesk/BibDocument+Scripting.m =================================================================== --- trunk/bibdesk/BibDocument+Scripting.m 2022-09-26 21:38:51 UTC (rev 27939) +++ trunk/bibdesk/BibDocument+Scripting.m 2022-09-26 22:16:17 UTC (rev 27940) @@ -64,6 +64,7 @@ #import "BDSKTypeManager.h" #import "NSWorkspace_BDSKExtensions.h" #import "BDSKServerInfo.h" +#import "BDSKServerInfo+Scripting.h" #import "BDSKBibTeXParser.h" #import "NSString_BDSKExtensions.h" #import "BDSKTemplate.h" @@ -1093,7 +1094,7 @@ if ([server isKindOfClass:[BDSKServerInfo class]]) { serverInfo = server; } else if ([server isKindOfClass:[NSDictionary class]]) { - serverInfo = [[BDSKSearchGroup newServerInfo:nil withScriptingServerInfo:server] autorelease]; + serverInfo = [[BDSKServerInfo newServerInfo:nil withScriptingServerInfo:server] autorelease]; } else if ([server isKindOfClass:[NSURL class]]) { serverInfo = [[[BDSKServerInfo alloc] initWithDictionary:[NSDictionary dictionaryWithContentsOfURL:server]] autorelease]; } else if ([server isKindOfClass:[NSString class]]) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Bibdesk-commit mailing list Bibdesk-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bibdesk-commit