unify the many registries and mappers
This commit is contained in:
parent
220eec6382
commit
e5e2d334d8
@ -24,7 +24,6 @@
|
|||||||
016CF36925FA6DD400B82A1F /* ClientParameterHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016CF36825FA6DD400B82A1F /* ClientParameterHandler.swift */; };
|
016CF36925FA6DD400B82A1F /* ClientParameterHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016CF36825FA6DD400B82A1F /* ClientParameterHandler.swift */; };
|
||||||
016FF6EE259A4E6300F5E4AA /* ClientParameterModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016FF6ED259A4E6300F5E4AA /* ClientParameterModelProtocol.swift */; };
|
016FF6EE259A4E6300F5E4AA /* ClientParameterModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016FF6ED259A4E6300F5E4AA /* ClientParameterModelProtocol.swift */; };
|
||||||
016FF6F2259A4FCC00F5E4AA /* ClientParameterModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016FF6F1259A4FCC00F5E4AA /* ClientParameterModel.swift */; };
|
016FF6F2259A4FCC00F5E4AA /* ClientParameterModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016FF6F1259A4FCC00F5E4AA /* ClientParameterModel.swift */; };
|
||||||
016FF6F6259B9AED00F5E4AA /* ClientParameterRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016FF6F5259B9AED00F5E4AA /* ClientParameterRegistry.swift */; };
|
|
||||||
016FF6FC259BA27E00F5E4AA /* ClientParameterProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016FF6FB259BA27E00F5E4AA /* ClientParameterProtocol.swift */; };
|
016FF6FC259BA27E00F5E4AA /* ClientParameterProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016FF6FB259BA27E00F5E4AA /* ClientParameterProtocol.swift */; };
|
||||||
01934FE725A4FFC2003DCD67 /* ClientParameterActionProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01934FE625A4FFC2003DCD67 /* ClientParameterActionProtocol.swift */; };
|
01934FE725A4FFC2003DCD67 /* ClientParameterActionProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01934FE625A4FFC2003DCD67 /* ClientParameterActionProtocol.swift */; };
|
||||||
01C851CF23CF7B260021F976 /* JSONMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C851CE23CF7B260021F976 /* JSONMap.swift */; };
|
01C851CF23CF7B260021F976 /* JSONMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C851CE23CF7B260021F976 /* JSONMap.swift */; };
|
||||||
@ -157,7 +156,6 @@
|
|||||||
016CF36825FA6DD400B82A1F /* ClientParameterHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterHandler.swift; sourceTree = "<group>"; };
|
016CF36825FA6DD400B82A1F /* ClientParameterHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterHandler.swift; sourceTree = "<group>"; };
|
||||||
016FF6ED259A4E6300F5E4AA /* ClientParameterModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterModelProtocol.swift; sourceTree = "<group>"; };
|
016FF6ED259A4E6300F5E4AA /* ClientParameterModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterModelProtocol.swift; sourceTree = "<group>"; };
|
||||||
016FF6F1259A4FCC00F5E4AA /* ClientParameterModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterModel.swift; sourceTree = "<group>"; };
|
016FF6F1259A4FCC00F5E4AA /* ClientParameterModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterModel.swift; sourceTree = "<group>"; };
|
||||||
016FF6F5259B9AED00F5E4AA /* ClientParameterRegistry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterRegistry.swift; sourceTree = "<group>"; };
|
|
||||||
016FF6FB259BA27E00F5E4AA /* ClientParameterProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterProtocol.swift; sourceTree = "<group>"; };
|
016FF6FB259BA27E00F5E4AA /* ClientParameterProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterProtocol.swift; sourceTree = "<group>"; };
|
||||||
01934FE625A4FFC2003DCD67 /* ClientParameterActionProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterActionProtocol.swift; sourceTree = "<group>"; };
|
01934FE625A4FFC2003DCD67 /* ClientParameterActionProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientParameterActionProtocol.swift; sourceTree = "<group>"; };
|
||||||
01C851CE23CF7B260021F976 /* JSONMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONMap.swift; sourceTree = "<group>"; };
|
01C851CE23CF7B260021F976 /* JSONMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONMap.swift; sourceTree = "<group>"; };
|
||||||
@ -312,7 +310,6 @@
|
|||||||
016FF6FB259BA27E00F5E4AA /* ClientParameterProtocol.swift */,
|
016FF6FB259BA27E00F5E4AA /* ClientParameterProtocol.swift */,
|
||||||
016FF6ED259A4E6300F5E4AA /* ClientParameterModelProtocol.swift */,
|
016FF6ED259A4E6300F5E4AA /* ClientParameterModelProtocol.swift */,
|
||||||
016FF6F1259A4FCC00F5E4AA /* ClientParameterModel.swift */,
|
016FF6F1259A4FCC00F5E4AA /* ClientParameterModel.swift */,
|
||||||
016FF6F5259B9AED00F5E4AA /* ClientParameterRegistry.swift */,
|
|
||||||
016CF36825FA6DD400B82A1F /* ClientParameterHandler.swift */,
|
016CF36825FA6DD400B82A1F /* ClientParameterHandler.swift */,
|
||||||
01934FE625A4FFC2003DCD67 /* ClientParameterActionProtocol.swift */,
|
01934FE625A4FFC2003DCD67 /* ClientParameterActionProtocol.swift */,
|
||||||
);
|
);
|
||||||
@ -872,7 +869,6 @@
|
|||||||
8876D5F51FB50AB000EB2E3D /* UILabel+MFCustom.m in Sources */,
|
8876D5F51FB50AB000EB2E3D /* UILabel+MFCustom.m in Sources */,
|
||||||
AFBB96B31FBA3B590008D868 /* MVMCoreGetterUtility.m in Sources */,
|
AFBB96B31FBA3B590008D868 /* MVMCoreGetterUtility.m in Sources */,
|
||||||
AF43A7071FC4D7A2008E9347 /* MVMCoreObject.m in Sources */,
|
AF43A7071FC4D7A2008E9347 /* MVMCoreObject.m in Sources */,
|
||||||
016FF6F6259B9AED00F5E4AA /* ClientParameterRegistry.swift in Sources */,
|
|
||||||
94C014D924212360005811A9 /* ActionSettingModel.swift in Sources */,
|
94C014D924212360005811A9 /* ActionSettingModel.swift in Sources */,
|
||||||
D2DEDCB723C63F3B00C44CC4 /* Clamping.swift in Sources */,
|
D2DEDCB723C63F3B00C44CC4 /* Clamping.swift in Sources */,
|
||||||
01DF561421F90ADC00CC099B /* Dictionary+MFConvenience.swift in Sources */,
|
01DF561421F90ADC00CC099B /* Dictionary+MFConvenience.swift in Sources */,
|
||||||
|
|||||||
@ -6,9 +6,6 @@
|
|||||||
// Copyright © 2021 myverizon. All rights reserved.
|
// Copyright © 2021 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
|
|
||||||
@objcMembers open class ClientParameterHandler: NSObject {
|
@objcMembers open class ClientParameterHandler: NSObject {
|
||||||
|
|
||||||
var parameterHandlerList: [ClientParameterProtocol] = []
|
var parameterHandlerList: [ClientParameterProtocol] = []
|
||||||
@ -16,7 +13,7 @@ import Foundation
|
|||||||
let group = DispatchGroup()
|
let group = DispatchGroup()
|
||||||
|
|
||||||
open func createParametersHandler(_ clientParameterModel: ClientParameterModelProtocol) -> ClientParameterProtocol? {
|
open func createParametersHandler(_ clientParameterModel: ClientParameterModelProtocol) -> ClientParameterProtocol? {
|
||||||
guard let parameterType = MVMCoreObject.sharedInstance()?.clientParameterRegistry?.mapping[clientParameterModel.type] else { return nil }
|
guard let parameterType = ModelRegistry.getHandler(clientParameterModel) as? ClientParameterProtocol.Type else { return nil }
|
||||||
return parameterType.init(clientParameterModel)
|
return parameterType.init(clientParameterModel)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public protocol ClientParameterProtocol {
|
public protocol ClientParameterProtocol: ModelHandlerProtocol {
|
||||||
static var name: String { get }
|
static var name: String { get }
|
||||||
|
|
||||||
init(_ clientParameterModel: ClientParameterModelProtocol)
|
init(_ clientParameterModel: ClientParameterModelProtocol)
|
||||||
|
|||||||
@ -1,39 +0,0 @@
|
|||||||
//
|
|
||||||
// ClientParameterRegistry.swift
|
|
||||||
// MVMCore
|
|
||||||
//
|
|
||||||
// Created by Suresh, Kamlesh on 12/29/20.
|
|
||||||
// Copyright © 2020 myverizon. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
|
|
||||||
@objcMembers open class ClientParameterRegistry: NSObject {
|
|
||||||
|
|
||||||
var mapping: [String: ClientParameterProtocol.Type] = [:]
|
|
||||||
|
|
||||||
public override init() {
|
|
||||||
super.init()
|
|
||||||
registerParameters()
|
|
||||||
}
|
|
||||||
|
|
||||||
open func register<T:ClientParameterProtocol>(_ handler: T.Type) {
|
|
||||||
mapping[T.name] = handler
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Add all registry here.
|
|
||||||
open func registerParameters() { }
|
|
||||||
|
|
||||||
/// Register Default Core Client Paramter Objects
|
|
||||||
public func register<T:ClientParameterProtocol, M: ModelProtocol>(handler: T.Type, for model: M.Type) throws {
|
|
||||||
try ModelRegistry.register(model)
|
|
||||||
register(handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Register Default Core Client Paramter Objects
|
|
||||||
public static func register<T:ClientParameterProtocol, M: ModelProtocol>(handler: T.Type, for model: M.Type) throws {
|
|
||||||
try ModelRegistry.register(model)
|
|
||||||
MVMCoreObject.sharedInstance()?.clientParameterRegistry?.register(handler)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -6,11 +6,9 @@
|
|||||||
// Copyright © 2019 myverizon. All rights reserved.
|
// Copyright © 2019 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
@objcMembers open class ModelMapping: NSObject {
|
||||||
|
|
||||||
@objcMembers public class ModelMapping: NSObject {
|
open class func registerObjects() {
|
||||||
|
|
||||||
public static func registerObjects() {
|
|
||||||
try? ModelRegistry.register(ActionOpenPageModel.self)
|
try? ModelRegistry.register(ActionOpenPageModel.self)
|
||||||
try? ModelRegistry.register(ActionOpenUrlModel.self)
|
try? ModelRegistry.register(ActionOpenUrlModel.self)
|
||||||
try? ModelRegistry.register(ActionCallModel.self)
|
try? ModelRegistry.register(ActionCallModel.self)
|
||||||
|
|||||||
@ -16,7 +16,6 @@
|
|||||||
- (instancetype)init {
|
- (instancetype)init {
|
||||||
if (self = [super init]) {
|
if (self = [super init]) {
|
||||||
self.session = [self createNSURLSession];
|
self.session = [self createNSURLSession];
|
||||||
[ModelMapping registerObjects];
|
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,8 +18,6 @@
|
|||||||
#import <MVMCore/MVMCoreLoggingHandler.h>
|
#import <MVMCore/MVMCoreLoggingHandler.h>
|
||||||
#import <MVMCore/MVMCoreLoadHandler.h>
|
#import <MVMCore/MVMCoreLoadHandler.h>
|
||||||
|
|
||||||
@class ClientParameterRegistry;
|
|
||||||
|
|
||||||
@interface MVMCoreObject : NSObject
|
@interface MVMCoreObject : NSObject
|
||||||
|
|
||||||
@property (nullable, strong, nonatomic) MVMCoreSessionObject *session;
|
@property (nullable, strong, nonatomic) MVMCoreSessionObject *session;
|
||||||
@ -28,7 +26,6 @@
|
|||||||
@property (nullable, strong, nonatomic) MVMCoreActionHandler *actionHandler;
|
@property (nullable, strong, nonatomic) MVMCoreActionHandler *actionHandler;
|
||||||
@property (nullable, strong, nonatomic) MVMCoreSessionTimeHandler *sessionHandler;
|
@property (nullable, strong, nonatomic) MVMCoreSessionTimeHandler *sessionHandler;
|
||||||
@property (nullable, strong, nonatomic) MVMCoreLoadHandler *loadHandler;
|
@property (nullable, strong, nonatomic) MVMCoreLoadHandler *loadHandler;
|
||||||
@property (nullable, strong, nonatomic) ClientParameterRegistry *clientParameterRegistry;
|
|
||||||
|
|
||||||
// The delegates
|
// The delegates
|
||||||
@property (nullable, strong, nonatomic) id <MVMCoreGlobalLoadProtocol> globalLoadDelegate;
|
@property (nullable, strong, nonatomic) id <MVMCoreGlobalLoadProtocol> globalLoadDelegate;
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)defaultInitialSetup {
|
- (void)defaultInitialSetup {
|
||||||
|
[ModelMapping registerObjects];
|
||||||
self.session = [[MVMCoreSessionObject alloc] init];
|
self.session = [[MVMCoreSessionObject alloc] init];
|
||||||
self.cache = [[MVMCoreCache alloc] init];
|
self.cache = [[MVMCoreCache alloc] init];
|
||||||
self.viewControllerMapping = [[MVMCoreViewControllerMappingObject alloc] init];
|
self.viewControllerMapping = [[MVMCoreViewControllerMappingObject alloc] init];
|
||||||
@ -28,7 +29,6 @@
|
|||||||
self.actionHandler = [[MVMCoreActionHandler alloc] init];
|
self.actionHandler = [[MVMCoreActionHandler alloc] init];
|
||||||
self.loggingDelegate = [[MVMCoreLoggingHandler alloc] init];
|
self.loggingDelegate = [[MVMCoreLoggingHandler alloc] init];
|
||||||
self.loadHandler = [[MVMCoreLoadHandler alloc] init];
|
self.loadHandler = [[MVMCoreLoadHandler alloc] init];
|
||||||
self.clientParameterRegistry = [[ClientParameterRegistry alloc] init];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user