mvm_core_ui/MVMCoreUI/Templates/TemplateModel.swift
Pfeil, Scott Robert 87fb08fb72 Navigation model
2020-03-16 09:15:49 -04:00

51 lines
1.8 KiB
Swift

//
// TemplateModel.swift
// MVMCoreUI
//
// Created by Scott Pfeil on 3/13/20.
// Copyright © 2020 Verizon Wireless. All rights reserved.
//
import Foundation
@objcMembers public class TemplateModel: TemplateModelProtocol {
public class var identifier: String {
return ""
}
public var pageType: String
public var screenHeading: String?
public var isAtomicTabs: Bool?
public var navigationItem: NavigationItemModelProtocol?
public var formRules: [FormGroupRule]?
public init(pageType: String) {
self.pageType = pageType
}
private enum CodingKeys: String, CodingKey {
case pageType
case screenHeading
case isAtomicTabs
case formRules
case navigationItem
}
required public init(from decoder: Decoder) throws {
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
pageType = try typeContainer.decode(String.self, forKey: .pageType)
screenHeading = try typeContainer.decodeIfPresent(String.self, forKey: .screenHeading)
isAtomicTabs = try typeContainer.decodeIfPresent(Bool.self, forKey: .isAtomicTabs)
formRules = try typeContainer.decodeIfPresent([FormGroupRule].self, forKey: .formRules)
navigationItem = try typeContainer.decodeModelIfPresent(codingKey: .navigationItem)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(pageType, forKey: .pageType)
try container.encodeIfPresent(screenHeading, forKey: .screenHeading)
try container.encodeIfPresent(isAtomicTabs, forKey: .isAtomicTabs)
try container.encodeIfPresent(formRules, forKey: .formRules)
try container.encodeModelIfPresent(navigationItem, forKey: .navigationItem)
}
}