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 */; };
|
||||
016FF6EE259A4E6300F5E4AA /* ClientParameterModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016FF6ED259A4E6300F5E4AA /* ClientParameterModelProtocol.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 */; };
|
||||
01934FE725A4FFC2003DCD67 /* ClientParameterActionProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01934FE625A4FFC2003DCD67 /* ClientParameterActionProtocol.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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -312,7 +310,6 @@
|
||||
016FF6FB259BA27E00F5E4AA /* ClientParameterProtocol.swift */,
|
||||
016FF6ED259A4E6300F5E4AA /* ClientParameterModelProtocol.swift */,
|
||||
016FF6F1259A4FCC00F5E4AA /* ClientParameterModel.swift */,
|
||||
016FF6F5259B9AED00F5E4AA /* ClientParameterRegistry.swift */,
|
||||
016CF36825FA6DD400B82A1F /* ClientParameterHandler.swift */,
|
||||
01934FE625A4FFC2003DCD67 /* ClientParameterActionProtocol.swift */,
|
||||
);
|
||||
@ -872,7 +869,6 @@
|
||||
8876D5F51FB50AB000EB2E3D /* UILabel+MFCustom.m in Sources */,
|
||||
AFBB96B31FBA3B590008D868 /* MVMCoreGetterUtility.m in Sources */,
|
||||
AF43A7071FC4D7A2008E9347 /* MVMCoreObject.m in Sources */,
|
||||
016FF6F6259B9AED00F5E4AA /* ClientParameterRegistry.swift in Sources */,
|
||||
94C014D924212360005811A9 /* ActionSettingModel.swift in Sources */,
|
||||
D2DEDCB723C63F3B00C44CC4 /* Clamping.swift in Sources */,
|
||||
01DF561421F90ADC00CC099B /* Dictionary+MFConvenience.swift in Sources */,
|
||||
|
||||
@ -6,9 +6,6 @@
|
||||
// Copyright © 2021 myverizon. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
|
||||
@objcMembers open class ClientParameterHandler: NSObject {
|
||||
|
||||
var parameterHandlerList: [ClientParameterProtocol] = []
|
||||
@ -16,7 +13,7 @@ import Foundation
|
||||
let group = DispatchGroup()
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
public protocol ClientParameterProtocol {
|
||||
public protocol ClientParameterProtocol: ModelHandlerProtocol {
|
||||
static var name: String { get }
|
||||
|
||||
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.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
@objcMembers public class ModelMapping: NSObject {
|
||||
@objcMembers open class ModelMapping: NSObject {
|
||||
|
||||
public static func registerObjects() {
|
||||
open class func registerObjects() {
|
||||
try? ModelRegistry.register(ActionOpenPageModel.self)
|
||||
try? ModelRegistry.register(ActionOpenUrlModel.self)
|
||||
try? ModelRegistry.register(ActionCallModel.self)
|
||||
|
||||
@ -16,7 +16,6 @@
|
||||
- (instancetype)init {
|
||||
if (self = [super init]) {
|
||||
self.session = [self createNSURLSession];
|
||||
[ModelMapping registerObjects];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
@ -18,8 +18,6 @@
|
||||
#import <MVMCore/MVMCoreLoggingHandler.h>
|
||||
#import <MVMCore/MVMCoreLoadHandler.h>
|
||||
|
||||
@class ClientParameterRegistry;
|
||||
|
||||
@interface MVMCoreObject : NSObject
|
||||
|
||||
@property (nullable, strong, nonatomic) MVMCoreSessionObject *session;
|
||||
@ -28,7 +26,6 @@
|
||||
@property (nullable, strong, nonatomic) MVMCoreActionHandler *actionHandler;
|
||||
@property (nullable, strong, nonatomic) MVMCoreSessionTimeHandler *sessionHandler;
|
||||
@property (nullable, strong, nonatomic) MVMCoreLoadHandler *loadHandler;
|
||||
@property (nullable, strong, nonatomic) ClientParameterRegistry *clientParameterRegistry;
|
||||
|
||||
// The delegates
|
||||
@property (nullable, strong, nonatomic) id <MVMCoreGlobalLoadProtocol> globalLoadDelegate;
|
||||
|
||||
@ -21,6 +21,7 @@
|
||||
}
|
||||
|
||||
- (void)defaultInitialSetup {
|
||||
[ModelMapping registerObjects];
|
||||
self.session = [[MVMCoreSessionObject alloc] init];
|
||||
self.cache = [[MVMCoreCache alloc] init];
|
||||
self.viewControllerMapping = [[MVMCoreViewControllerMappingObject alloc] init];
|
||||
@ -28,7 +29,6 @@
|
||||
self.actionHandler = [[MVMCoreActionHandler alloc] init];
|
||||
self.loggingDelegate = [[MVMCoreLoggingHandler alloc] init];
|
||||
self.loadHandler = [[MVMCoreLoadHandler alloc] init];
|
||||
self.clientParameterRegistry = [[ClientParameterRegistry alloc] init];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user