AtlasX Dynamic Model

AtlasX Dynamic Model

AtlasX Dynamic Model สามารถเพิ่มลดจำนวน Properties ได้อย่างอิสระเพื่อ Support Model ที่มีการเปลี่ยนแปลง Properties อยู่บ่อยครั้ง

Operation

เครื่องหมายสำหรับการสร้าง Condition

enum Operation {
    case equal(value: Any?)
    case notEqual(value: Any?)
    case moreThanInt(value: Int)
    case moreThanDouble(value: Double)
    case moreThanAndEqualInt(value: Int)
    case moreThanAndEqualDouble(value: Double)
    case lessThanInt(value: Int)
    case lessThanDouble(value: Double)
    case lessThanAndEqualInt(value: Int)
    case lessThanAndEqualDouble(value: Double)
    case contains(value: String)
}
NameDescription
equalเครื่องหมาย ==
notEqualเครื่องหมาย !=
moreThanIntเครื่องหมาย > ที่ใช้สำหรับ Integer
moreThanDoubleเครื่องหมาย > ที่ใช้สำหรับ Double
moreThanAndEqualIntเครื่องหมาย >= ที่ใช้สำหรับ Integer
moreThanAndEqualDoubleเครื่องหมาย >= ที่ใช้สำหรับ Double
lessThanIntเครื่องหมาย < ที่ใช้สำหรับ Integer
lessThanDoubleเครื่องหมาย < ที่ใช้สำหรับ Double
lessThanAndEqualIntเครื่องหมาย <= ที่ใช้สำหรับ Integer
lessThanAndEqualDoubleเครื่องหมาย <= ที่ใช้สำหรับ Double
containsการ Contains String

Properties

NameDescriptionTypeDefault
jsonObjectString Json ของ ModelOptional(String)null

Initial

required convenience public init(jsonObject: [String: Any?])

| Name | Description | Type | | — | — | — | — | | jsonObject | Model ที่ต้องการเก็บแบบ Dynamic | Dictionary |

Example

class YourDynamicModels: AtlasXDynamicModel {
    required convenience init(jsonObject: [String: Any?]) {
        self.init(jsonObject: jsonObject)
    }
}

let data = ["id": 1, "KeyA": "A"]
let yourDynamicModel = YourDynamicModels(jsonObject: data)

<em>// Add your model to Database</em>
...

Method Overview

NameDescriptionReturn
toJsonObject()การดึงข้อมูลจาก Model ให้ออกมาในรูป DictionaryOptional(Dictionary)
update()การ Update ข้อมูลใน Modelvoid
checkData()Condition สำหรับการ Filter ข้อมูลใน ModelBoolean

Method Details

func toJsonObject() -> [String: Any?]?

การดึงข้อมูลจาก Model ให้ออกมาในรูป Dictionary

Returns

TypeDescription
Optional(Dictionary)Return Dictionary ของ Model
func checkData(forKey key: String, operation: Operation) -> Bool

Condition สำหรับการ Filter ข้อมูลใน Model

Parameters

NameDescriptionType
forKeyKey ที่ต้องการสร้าง ConditionString
operationOperation ของ ConditionOperation

Returns

TypeDescription
BooleanReturn Condition

Example

let yourDynamicModels: [YourDynamicModels]

yourDynamicModels.filter { item in
    return item.checkData(forKey: "id", operation: .equal(value: 1))
}
func update(newJsonObject object: [String: Any?], completion: ((Error?, [String: Any?]?) -> Void)?)

การ Update ข้อมูลใน Model โดยจะทำการ Merge Model เข้าด้วยกันและยึดค่าของ Model ที่เข้ามา Update เสมอ

Parameters

NameDescriptionType
newJsonObjectข้อมูลใหม่ที่ต้องการ UpdateDictionary
completionCallback เมื่อ Update ข้อมูลสำเร็จหรือไม่สำเร็จCompletion

Example Result

let oldModel = ["KeyA": "A", "KeyB": "B"]
let updateModel = ["KeyB": "B1", "KeyC": "C"]

<em>// After update model</em>
let resultModel = ["KeyA": "A", "KeyB": "B1", "KeyC": "C"]