53 lines
1.7 KiB
Swift
53 lines
1.7 KiB
Swift
//
|
|
// StackPageTemplate.swift
|
|
// MVMCoreUI
|
|
//
|
|
// Created by Suresh, Kamlesh on 11/22/19.
|
|
// Copyright © 2019 Verizon Wireless. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
|
|
@objcMembers public class StackPageTemplateModel: TemplateModel {
|
|
public override class var identifier: String {
|
|
return "stack"
|
|
}
|
|
|
|
public var header: MoleculeModelProtocol?
|
|
public var moleculeStack: MoleculeStackModel
|
|
public var footer: MoleculeModelProtocol?
|
|
|
|
public init(pageType: String, moleculeStack: MoleculeStackModel) {
|
|
self.moleculeStack = moleculeStack
|
|
super.init(pageType: pageType)
|
|
}
|
|
|
|
private enum CodingKeys: String, CodingKey {
|
|
case pageType
|
|
case template
|
|
case screenHeading
|
|
case header
|
|
case footer
|
|
case stack
|
|
}
|
|
|
|
required public init(from decoder: Decoder) throws {
|
|
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
|
moleculeStack = try typeContainer.decode(MoleculeStackModel.self, forKey: .stack)
|
|
header = try typeContainer.decodeModelIfPresent(codingKey: .header)
|
|
footer = try typeContainer.decodeModelIfPresent(codingKey: .footer)
|
|
try super.init(from: decoder)
|
|
}
|
|
|
|
public override func encode(to encoder: Encoder) throws {
|
|
try super.encode(to: encoder)
|
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
try container.encode(pageType, forKey: .pageType)
|
|
try container.encode(template, forKey: .template)
|
|
try container.encode(moleculeStack, forKey: .stack)
|
|
try container.encodeModelIfPresent(header, forKey: .header)
|
|
try container.encodeModelIfPresent(footer, forKey: .footer)
|
|
}
|
|
}
|