diff options
Diffstat (limited to 'Factories')
| -rw-r--r-- | Factories/QSBookmarkProviderFactory.h | 10 | ||||
| -rw-r--r-- | Factories/QSBookmarkProviderFactory.m | 70 |
2 files changed, 46 insertions, 34 deletions
diff --git a/Factories/QSBookmarkProviderFactory.h b/Factories/QSBookmarkProviderFactory.h index e2e694b..bc0ae79 100644 --- a/Factories/QSBookmarkProviderFactory.h +++ b/Factories/QSBookmarkProviderFactory.h @@ -5,20 +5,24 @@ // Factory for managing bookmark providers // -#import <Foundation/Foundation.h> #import "QSBookmarkProvider.h" #import "SocialSite.h" +#import <Foundation/Foundation.h> @interface QSBookmarkProviderFactory : NSObject -@property (nonatomic, strong, readonly) NSArray<id<QSBookmarkProvider>> *providers; +@property(nonatomic, strong, readonly) + NSArray<id<QSBookmarkProvider>> *providers; + (instancetype)sharedFactory; /** * Get the appropriate provider for the given site configuration */ -- (id<QSBookmarkProvider>)providerForSite:(SocialSite)site username:(NSString *)username password:(NSString *)password host:(NSString *)host; +- (id<QSBookmarkProvider>)providerForSite:(SocialSite)site + username:(NSString *)username + password:(NSString *)password + host:(NSString *)host; /** * Get all available providers diff --git a/Factories/QSBookmarkProviderFactory.m b/Factories/QSBookmarkProviderFactory.m index 75fd0e2..56b4146 100644 --- a/Factories/QSBookmarkProviderFactory.m +++ b/Factories/QSBookmarkProviderFactory.m @@ -9,54 +9,62 @@ #import "SocialSite.h" @interface QSBookmarkProviderFactory () -@property (nonatomic, strong, readwrite) NSArray<id<QSBookmarkProvider>> *providers; +@property(nonatomic, strong, readwrite) + NSArray<id<QSBookmarkProvider>> *providers; @end @implementation QSBookmarkProviderFactory + (instancetype)sharedFactory { - static QSBookmarkProviderFactory *sharedInstance = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedInstance = [[self alloc] init]; - }); - return sharedInstance; + static QSBookmarkProviderFactory *sharedInstance = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[self alloc] init]; + }); + return sharedInstance; } - (instancetype)init { - self = [super init]; - if (self) { - [self setupProviders]; - } - return self; + self = [super init]; + if (self) { + [self setupProviders]; + } + return self; } - (void)setupProviders { - NSMutableArray *mutableProviders = [NSMutableArray array]; - - // Create Delicious / Pinboard API providers for each supported site - QSDeliciousAPIProvider *deliciousAPIProvider = [[QSDeliciousAPIProvider alloc] init]; - - // Create Linkding provider - QSLinkdingProvider *linkdingProvider = [[QSLinkdingProvider alloc] init]; - - [mutableProviders addObject:deliciousAPIProvider]; - [mutableProviders addObject:linkdingProvider]; - - self.providers = [mutableProviders copy]; + NSMutableArray *mutableProviders = [NSMutableArray array]; + + // Create Delicious / Pinboard API providers for each supported site + QSDeliciousAPIProvider *deliciousAPIProvider = + [[QSDeliciousAPIProvider alloc] init]; + + // Create Linkding provider + QSLinkdingProvider *linkdingProvider = [[QSLinkdingProvider alloc] init]; + + [mutableProviders addObject:deliciousAPIProvider]; + [mutableProviders addObject:linkdingProvider]; + + self.providers = [mutableProviders copy]; } -- (id<QSBookmarkProvider>)providerForSite:(SocialSite)site username:(NSString *)username password:(NSString *)password host:(NSString *)host { - for (id<QSBookmarkProvider> provider in self.providers) { - if ([provider canHandleSite:site username:username password:password host:host]) { - return provider; - } +- (id<QSBookmarkProvider>)providerForSite:(SocialSite)site + username:(NSString *)username + password:(NSString *)password + host:(NSString *)host { + for (id<QSBookmarkProvider> provider in self.providers) { + if ([provider canHandleSite:site + username:username + password:password + host:host]) { + return provider; } - return nil; + } + return nil; } - (NSArray<id<QSBookmarkProvider>> *)allProviders { - return self.providers; + return self.providers; } @end |