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

Reply via email to