38 lines
1.2 KiB
Swift
38 lines
1.2 KiB
Swift
//
|
|
// 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)
|
|
}
|
|
}
|