This commit is contained in:
Suresh, Kamlesh 2021-01-15 16:44:36 -05:00
parent 96217a5ad7
commit 2b6bf53cc5

View File

@ -9,16 +9,21 @@
import Foundation import Foundation
@objcMembers public class ClientParameterRegistry: NSObject { @objcMembers open class ClientParameterRegistry: NSObject {
private var mapping: [String: ClientParameterProtocol.Type] = [:] private var mapping: [String: ClientParameterProtocol.Type] = [:]
public func register<T:ClientParameterProtocol>(_ handler: T.Type) { public override init() {
super.init()
registerParameters()
}
open func register<T:ClientParameterProtocol>(_ handler: T.Type) {
mapping[T.name] = handler mapping[T.name] = handler
} }
public func createParametersHandler(_ actionType: String) -> ClientParameterProtocol? { open func createParametersHandler(_ actionType: String) -> ClientParameterProtocol? {
guard let parameterType = mapping[actionType] else { return nil } guard let parameterType = mapping[actionType] else { return nil }
return parameterType.init() return parameterType.init()
} }
@ -94,7 +99,7 @@ import Foundation
} }
/// Add all registry here. /// Add all registry here.
open static func registerParameters() { } open func registerParameters() { }
/// Register Default Core Bridge Objects /// Register Default Core Bridge Objects
public static func register<T:ClientParameterProtocol, M: ModelProtocol>(handler: T.Type, for model: M.Type) throws { public static func register<T:ClientParameterProtocol, M: ModelProtocol>(handler: T.Type, for model: M.Type) throws {