// // MoleculeHeaderModel.swift // MVMCoreUI // // Created by Suresh, Kamlesh on 10/3/19. // Copyright © 2019 Suresh, Kamlesh. All rights reserved. // import Foundation @objcMembers public class MoleculeHeaderModel: HeaderModel, MoleculeModelProtocol, MoleculeContainerModelProtocol { public static var identifier: String = "header" public var molecule: MoleculeModelProtocol private enum CodingKeys: String, CodingKey { case moleculeName case molecule } public init(with moleculeModel: MoleculeModelProtocol) { molecule = moleculeModel super.init() } required public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) molecule = try typeContainer.decodeMolecule(codingKey: .molecule) 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(moleculeName, forKey: .moleculeName) try container.encodeModel(molecule, forKey: .molecule) } }