Explorar o código

Cleaned up protocol logic.

Tim Oliver %!s(int64=10) %!d(string=hai) anos
pai
achega
b693ceb20e

+ 1 - 12
Classes/GlobalStateExplorers/DatabaseBrowser/FLEXDatabaseManager.h

@@ -13,18 +13,7 @@
 
 #import <Foundation/Foundation.h>
 
-@protocol FLEXDatabaseManagerParser <NSObject>
-
-- (instancetype)initWithPath:(NSString*)path;
-
-- (BOOL)open;
-- (NSArray *)queryAllTables;
-- (NSArray *)queryAllColumnsWithTableName:(NSString *)tableName;
-- (NSArray *)queryAllDataWithTableName:(NSString *)tableName;
-
-@end
-
-@interface FLEXDatabaseManager : NSObject
+@protocol FLEXDatabaseManager <NSObject>
 
 @property (nonatomic, readonly) NSString *path;
 

+ 0 - 65
Classes/GlobalStateExplorers/DatabaseBrowser/FLEXDatabaseManager.m

@@ -1,65 +0,0 @@
-//
-//  PTDatabaseManager.m
-//  PTDatabaseReader
-//
-//  Created by Peng Tao on 15/11/23.
-//  Copyright © 2015年 Peng Tao. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import "FLEXDatabaseManager.h"
-
-#import "FLEXSQLiteDatabaseParser.h"
-#import "FLEXRealmDatabaseParser.h"
-
-@implementation FLEXDatabaseManager {
-    NSString *_databasePath;
-    id<FLEXDatabaseManagerParser> _parser;
-}
-
-- (instancetype)initWithPath:(NSString*)aPath
-{
-    self = [super init];
-    
-    if (self) {
-        _databasePath = [aPath copy];
-        _parser = [self parserForFileAtPath:aPath];
-    }
-    return self;
-}
-
-- (BOOL)open
-{
-    return [_parser open];
-}
-
-- (NSArray *)queryAllTables
-{
-    return [_parser queryAllTables];
-}
-
-- (NSArray *)queryAllColumnsWithTableName:(NSString *)tableName
-{
-    return [_parser queryAllColumnsWithTableName:tableName];
-}
-
-- (NSArray *)queryAllDataWithTableName:(NSString *)tableName
-{
-    return [_parser queryAllDataWithTableName:tableName];
-}
-
-- (id<FLEXDatabaseManagerParser>)parserForFileAtPath:(NSString *)path
-{
-    NSString *pathExtension = path.pathExtension;
-    
-    if ([@[@"db", @"sqlite", @"sqlite3"] containsObject:pathExtension]) {
-        return [[FLEXSQLiteDatabaseParser alloc] initWithPath:path];
-    }
-    else if ([pathExtension isEqualToString:@"realm"]) {
-        return [[FLEXRealmDatabaseParser alloc] initWithPath:path];
-    }
-    
-    return nil;
-}
-
-@end

+ 1 - 1
Classes/GlobalStateExplorers/DatabaseBrowser/FLEXRealmDatabaseParser.h

@@ -9,6 +9,6 @@
 #import <Foundation/Foundation.h>
 #import "FLEXDatabaseManager.h"
 
-@interface FLEXRealmDatabaseParser : NSObject <FLEXDatabaseManagerParser>
+@interface FLEXRealmDatabaseManager : NSObject <FLEXDatabaseManager>
 
 @end

+ 3 - 3
Classes/GlobalStateExplorers/DatabaseBrowser/FLEXRealmDatabaseParser.m

@@ -6,20 +6,20 @@
 //  Copyright © 2016 Realm. All rights reserved.
 //
 
-#import "FLEXRealmDatabaseParser.h"
+#import "FLEXRealmDatabaseManager.h"
 
 //#if __has_include("<Realm/Realm.h>")
 
 #import <Realm/Realm.h>
 
-@interface FLEXRealmDatabaseParser ()
+@interface FLEXRealmDatabaseManager ()
 
 @property (nonatomic, copy) NSString *path;
 @property (nonatomic, strong) RLMRealm *realm;
 
 @end
 
-@implementation FLEXRealmDatabaseParser
+@implementation FLEXRealmDatabaseManager
 
 - (instancetype)initWithPath:(NSString*)aPath
 {

+ 1 - 1
Classes/GlobalStateExplorers/DatabaseBrowser/FLEXSQLiteDatabaseParser.h

@@ -14,6 +14,6 @@
 #import <Foundation/Foundation.h>
 #import "FLEXDatabaseManager.h"
 
-@interface FLEXSQLiteDatabaseParser : NSObject <FLEXDatabaseManagerParser>
+@interface FLEXSQLiteDatabaseManager : NSObject <FLEXDatabaseManager>
 
 @end

+ 2 - 4
Classes/GlobalStateExplorers/DatabaseBrowser/FLEXSQLiteDatabaseParser.m

@@ -6,15 +6,13 @@
 //  Copyright © 2015年 Peng Tao. All rights reserved.
 //
 
-
-
-#import "FLEXSQLiteDatabaseParser.h"
+#import "FLEXSQLiteDatabaseManager.h"
 #import <sqlite3.h>
 
 
 static NSString *const QUERY_TABLENAMES_SQL = @"SELECT name FROM sqlite_master WHERE type='table' ORDER BY name";
 
-@implementation FLEXSQLiteDatabaseParser
+@implementation FLEXSQLiteDatabaseManager
 {
     sqlite3* _db;
     NSString* _databasePath;

+ 19 - 2
Classes/GlobalStateExplorers/DatabaseBrowser/FLEXTableListViewController.m

@@ -8,11 +8,14 @@
 
 #import "FLEXTableListViewController.h"
 #import "FLEXDatabaseManager.h"
+#import "FLEXSQLiteDatabaseManager.h"
+#import "FLEXRealmDatabaseManager.h"
+
 #import "FLEXTableContentViewController.h"
 
 @interface FLEXTableListViewController ()
 {
-    FLEXDatabaseManager *_dbm;
+    id<FLEXDatabaseManager> _dbm;
     NSString *_databasePath;
 }
 
@@ -28,13 +31,27 @@
     self = [super initWithStyle:UITableViewStyleGrouped];
     if (self) {
         _databasePath = [path copy];
-        _dbm = [[FLEXDatabaseManager alloc] initWithPath:path];
+        _dbm = [self databaseManagerForFileAtPath:_databasePath];
         [_dbm open];
         [self getAllTables];
     }
     return self;
 }
 
+- (id<FLEXDatabaseManager>)databaseManagerForFileAtPath:(NSString *)path
+{
+    NSString *pathExtension = path.pathExtension.lowercaseString;
+    
+    if ([@[@"db", @"sqlite", @"sqlite3"] indexOfObject:pathExtension] != NSNotFound) {
+        return [[FLEXSQLiteDatabaseManager alloc] initWithPath:path];
+    }
+    else if ([pathExtension isEqualToString:@"realm"]) {
+        return [[FLEXRealmDatabaseManager alloc] initWithPath:path];
+    }
+    
+    return nil;
+}
+
 - (void)getAllTables
 {
     NSArray *resultArray = [_dbm queryAllTables];