Revision: 28593
          http://sourceforge.net/p/bibdesk/svn/28593
Author:   hofman
Date:     2024-01-11 17:37:55 +0000 (Thu, 11 Jan 2024)
Log Message:
-----------
derive binding, element, and response from soap binding request from class name 
in convenience initializer. No need for request class.

Modified Paths:
--------------
    trunk/bibdesk/BDSKISIGroupServer.h
    trunk/bibdesk/BDSKISIGroupServer.m
    trunk/bibdesk/BDSKSoapBinding.h
    trunk/bibdesk/BDSKSoapBinding.m
    trunk/bibdesk/WOKMWSAuthenticateService.h
    trunk/bibdesk/WokSearchLiteService.h
    trunk/bibdesk/WokSearchService.h

Modified: trunk/bibdesk/BDSKISIGroupServer.h
===================================================================
--- trunk/bibdesk/BDSKISIGroupServer.h  2024-01-11 17:14:10 UTC (rev 28592)
+++ trunk/bibdesk/BDSKISIGroupServer.h  2024-01-11 17:37:55 UTC (rev 28593)
@@ -39,7 +39,7 @@
 #import <Cocoa/Cocoa.h>
 #import "BDSKSearchGroup.h"
 
-@class BDSKSoapBindingRequest, BDSKSoapBindingOperation;
+@class BDSKSoapBindingElement, BDSKSoapBindingOperation;
 
 @interface BDSKISIGroupServer : NSObject <BDSKSearchGroupServer>
 {
@@ -52,7 +52,7 @@
     NSInteger state;
     NSString *searchTerm;
     NSString *errorMessage;
-    BDSKSoapBindingRequest *request;
+    BDSKSoapBindingElement *request;
     BDSKSoapBindingOperation *operation;
     NSHTTPCookie *sessionCookie;
 }

Modified: trunk/bibdesk/BDSKISIGroupServer.m
===================================================================
--- trunk/bibdesk/BDSKISIGroupServer.m  2024-01-11 17:14:10 UTC (rev 28592)
+++ trunk/bibdesk/BDSKISIGroupServer.m  2024-01-11 17:37:55 UTC (rev 28593)
@@ -97,7 +97,7 @@
 - (void)searchWithAuthentication;
 - (void)search;
 - (void)closeSession;
-- (BDSKSoapBindingRequest *)newRequestReturningError:(NSString **)errorString;
+- (BDSKSoapBindingElement *)newRequestReturningError:(NSString **)errorString;
 
 - (BibItem *)newItemFromInfo:(NSDictionary *)pubInfo;
 
@@ -395,7 +395,7 @@
     
 }
 
-- (BDSKSoapBindingRequest *)newRequestReturningError:(NSString **)errorString {
+- (BDSKSoapBindingElement *)newRequestReturningError:(NSString **)errorString {
     NSString *query = [self searchTerm];
     
     static NSString *operator[5] = {@"", @"citedby:", @"citing:", @"related:", 
@"uid:"};

Modified: trunk/bibdesk/BDSKSoapBinding.h
===================================================================
--- trunk/bibdesk/BDSKSoapBinding.h     2024-01-11 17:14:10 UTC (rev 28592)
+++ trunk/bibdesk/BDSKSoapBinding.h     2024-01-11 17:37:55 UTC (rev 28593)
@@ -3,7 +3,6 @@
 @class BDSKSoapBindingElement;
 @class BDSKSoapBindingResponse;
 @class BDSKSoapBindingOperation;
-@class BDSKSoapBindingRequest;
 @class BDSKDownload;
 
 @protocol BDSKSoapBindingOperationDelegate <NSObject>
@@ -56,7 +55,7 @@
 @property (nonatomic, weak) id<BDSKSoapBindingOperationDelegate> delegate;
 @property (nonatomic, strong) BDSKDownload *download;
 - (id)initWithBinding:(BDSKSoapBinding *)aBinding 
delegate:(id<BDSKSoapBindingOperationDelegate>)aDelegate soapAction:(NSString 
*)aSoapAction bodyElements:(NSDictionary *)aBodyElements 
responseClasses:(NSDictionary *)aResponseClasses;
-- (id)initWithParameters:(BDSKSoapBindingRequest *)parameters 
delegate:(id<BDSKSoapBindingOperationDelegate>)aDelegate;
+- (id)initWithParameters:(BDSKSoapBindingElement *)parameters 
delegate:(id<BDSKSoapBindingOperationDelegate>)aDelegate;
 - (void)start;
 - (void)waitUntilExit;
 - (void)cancel;
@@ -80,13 +79,6 @@
 - (void)deserializeChildNode:(NSXMLElement *)node;
 @end
 
-@interface BDSKSoapBindingRequest : BDSKSoapBindingElement {
-}
-@property (nonatomic, readonly) NSString *elementName;
-@property (nonatomic, readonly) NSDictionary *responseClasses;
-@property (nonatomic, readonly) BDSKSoapBinding *binding;
-@end
-
 @interface BDSKSoapBinding_fault : BDSKSoapBindingElement {
        NSString *faultcode;
        NSString *faultstring;

Modified: trunk/bibdesk/BDSKSoapBinding.m
===================================================================
--- trunk/bibdesk/BDSKSoapBinding.m     2024-01-11 17:14:10 UTC (rev 28592)
+++ trunk/bibdesk/BDSKSoapBinding.m     2024-01-11 17:37:55 UTC (rev 28593)
@@ -153,11 +153,24 @@
        
        return self;
 }
-- (id)initWithParameters:(BDSKSoapBindingRequest *)parameters 
delegate:(id<BDSKSoapBindingOperationDelegate>)aDelegate
+- (id)initWithParameters:(BDSKSoapBindingElement *)parameters 
delegate:(id<BDSKSoapBindingOperationDelegate>)aDelegate
 {
-    BDSKSoapBinding *aBinding = [parameters binding];
-    NSDictionary *aBodyElements = [NSDictionary 
dictionaryWithObjectsAndKeys:parameters, [parameters elementName], nil];
-    NSDictionary *aResponseClasses = [parameters responseClasses];
+    // derive the element name, response name and class, and binding from the 
class name
+    NSString *name = NSStringFromClass([parameters class]);
+    NSString *elementName = name;
+    NSString *bindingName = nil;
+    NSUInteger idx = [name rangeOfString:@"_"].location;
+    if (idx != NSNotFound) {
+        elementName = [name substringFromIndex:idx + 1];
+        bindingName = [name substringToIndex:idx];
+    }
+    NSString *responseName = [elementName stringByAppendingString:@"Response"];
+    Class bindingClass = NSClassFromString(bindingName);
+    Class responseClass = NSClassFromString([name 
stringByAppendingString:@"Response"]);
+
+    BDSKSoapBinding *aBinding = [bindingClass 
isSubclassOfClass:[BDSKSoapBinding class]] ? [bindingClass soapBinding] : 
[BDSKSoapBinding soapBinding];
+    NSDictionary *aBodyElements = [NSDictionary 
dictionaryWithObjectsAndKeys:parameters, elementName, nil];
+    NSDictionary *aResponseClasses = [NSDictionary 
dictionaryWithObjectsAndKeys:responseClass, responseName, nil];
     return [self initWithBinding:aBinding delegate:aDelegate soapAction:@"" 
bodyElements:aBodyElements responseClasses:aResponseClasses];
 }
 - (void)start
@@ -348,37 +361,6 @@
 }
 @end
 
-@implementation BDSKSoapBindingRequest
-@dynamic elementName, responseClasses, binding;
-- (NSString *)elementName
-{
-    NSString *name = NSStringFromClass([self class]);
-    NSUInteger idx = NSMaxRange([name rangeOfString:@"_"]);
-    if (idx != NSNotFound) {
-        name = [name substringFromIndex:idx];
-    }
-    return name;
-}
-- (NSDictionary *)responseClasses
-{
-    Class responseClass = NSClassFromString([NSStringFromClass([self class]) 
stringByAppendingString:@"Response"]);
-    NSString *responseName = [self.elementName 
stringByAppendingString:@"Response"];
-    return [NSDictionary dictionaryWithObjectsAndKeys:responseClass, 
responseName, nil];
-}
-- (BDSKSoapBinding *)binding
-{
-    NSString *name = NSStringFromClass([self class]);
-    NSUInteger idx = [name rangeOfString:@"_"].location;
-    if (idx != NSNotFound) {
-        name = [name substringToIndex:idx];
-        Class bindingClass = NSClassFromString(name);
-        if ([bindingClass isSubclassOfClass:[BDSKSoapBinding class]])
-            return [bindingClass soapBinding];
-    }
-    return [BDSKSoapBinding soapBinding];
-}
-@end
-
 @implementation BDSKSoapBinding_fault
 - (id)init
 {

Modified: trunk/bibdesk/WOKMWSAuthenticateService.h
===================================================================
--- trunk/bibdesk/WOKMWSAuthenticateService.h   2024-01-11 17:14:10 UTC (rev 
28592)
+++ trunk/bibdesk/WOKMWSAuthenticateService.h   2024-01-11 17:37:55 UTC (rev 
28593)
@@ -1,7 +1,7 @@
 #import <Cocoa/Cocoa.h>
 #import "BDSKSoapBinding.h"
 
-@interface WOKMWSAuthenticateService_authenticate : BDSKSoapBindingRequest
+@interface WOKMWSAuthenticateService_authenticate : BDSKSoapBindingElement
 @end
 
 @interface WOKMWSAuthenticateService_authenticateResponse : 
BDSKSoapBindingElement {
@@ -10,7 +10,7 @@
 @property (nonatomic, strong) NSString * return_;
 @end
 
-@interface WOKMWSAuthenticateService_closeSession : BDSKSoapBindingRequest
+@interface WOKMWSAuthenticateService_closeSession : BDSKSoapBindingElement
 @end
 
 @interface WOKMWSAuthenticateService_closeSessionResponse : 
BDSKSoapBindingElement

Modified: trunk/bibdesk/WokSearchLiteService.h
===================================================================
--- trunk/bibdesk/WokSearchLiteService.h        2024-01-11 17:14:10 UTC (rev 
28592)
+++ trunk/bibdesk/WokSearchLiteService.h        2024-01-11 17:37:55 UTC (rev 
28593)
@@ -20,7 +20,7 @@
 @property (nonatomic, readonly) NSArray * sortField;
 @end
 
-@interface WokSearchLiteServiceRequest : BDSKSoapBindingRequest {
+@interface WokSearchLiteServiceRequest : BDSKSoapBindingElement {
     WokSearchLiteService_retrieveParameters * retrieveParameters;
 }
 @property (nonatomic, strong) WokSearchLiteService_retrieveParameters * 
retrieveParameters;

Modified: trunk/bibdesk/WokSearchService.h
===================================================================
--- trunk/bibdesk/WokSearchService.h    2024-01-11 17:14:10 UTC (rev 28592)
+++ trunk/bibdesk/WokSearchService.h    2024-01-11 17:37:55 UTC (rev 28593)
@@ -44,7 +44,7 @@
 @property (nonatomic, readonly) NSArray * option;
 @end
 
-@interface WokSearchServiceRequest : BDSKSoapBindingRequest {
+@interface WokSearchServiceRequest : BDSKSoapBindingElement {
     WokSearchService_retrieveParameters * retrieveParameters;
 }
 @property (nonatomic, strong) WokSearchService_retrieveParameters * 
retrieveParameters;

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to