//////////////////////////////////////////////////////////////////////////// // // Copyright 2014 Realm Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // //////////////////////////////////////////////////////////////////////////// import Realm import RealmTestSupport class SwiftRLMStringObject: RLMObject { @objc dynamic var stringCol = "" } class SwiftRLMBoolObject: RLMObject { @objc dynamic var boolCol = false } class SwiftRLMIntObject: RLMObject { @objc dynamic var intCol = 0 } class SwiftRLMLongObject: RLMObject { @objc dynamic var longCol: Int64 = 0 } class SwiftRLMObject: RLMObject { @objc dynamic var boolCol = false @objc dynamic var intCol = 123 @objc dynamic var floatCol = 1.23 as Float @objc dynamic var doubleCol = 12.3 @objc dynamic var stringCol = "a" @objc dynamic var binaryCol = "a".data(using: String.Encoding.utf8) @objc dynamic var dateCol = Date(timeIntervalSince1970: 1) @objc dynamic var objectCol = SwiftRLMBoolObject() @objc dynamic var arrayCol = RLMArray(objectClassName: SwiftRLMBoolObject.className()) } class SwiftRLMOptionalObject: RLMObject { @objc dynamic var optStringCol: String? @objc dynamic var optNSStringCol: NSString? @objc dynamic var optBinaryCol: Data? @objc dynamic var optDateCol: Date? @objc dynamic var optObjectCol: SwiftRLMBoolObject? } class SwiftRLMPrimitiveArrayObject: RLMObject { @objc dynamic var stringCol = RLMArray(objectType: .string, optional: false) @objc dynamic var optStringCol = RLMArray(objectType: .string, optional: true) @objc dynamic var dataCol = RLMArray(objectType: .data, optional: false) @objc dynamic var optDataCol = RLMArray(objectType: .data, optional: true) @objc dynamic var dateCol = RLMArray(objectType: .date, optional: false) @objc dynamic var optDateCol = RLMArray(objectType: .date, optional: true) } class SwiftRLMDogObject: RLMObject { @objc dynamic var dogName = "" } class SwiftRLMOwnerObject: RLMObject { @objc dynamic var name = "" @objc dynamic var dog: SwiftRLMDogObject? = SwiftRLMDogObject() } class SwiftRLMAggregateObject: RLMObject { @objc dynamic var intCol = 0 @objc dynamic var floatCol = 0 as Float @objc dynamic var doubleCol = 0.0 @objc dynamic var boolCol = false @objc dynamic var dateCol = Date() } class SwiftRLMAllIntSizesObject: RLMObject { @objc dynamic var int8: Int8 = 0 @objc dynamic var int16: Int16 = 0 @objc dynamic var int32: Int32 = 0 @objc dynamic var int64: Int64 = 0 } class SwiftRLMEmployeeObject: RLMObject { @objc dynamic var name = "" @objc dynamic var age = 0 @objc dynamic var hired = false } class SwiftRLMCompanyObject: RLMObject { @objc dynamic var employees = RLMArray(objectClassName: SwiftRLMEmployeeObject.className()) } class SwiftRLMArrayPropertyObject: RLMObject { @objc dynamic var name = "" @objc dynamic var array = RLMArray(objectClassName: SwiftRLMStringObject.className()) @objc dynamic var intArray = RLMArray(objectClassName: SwiftRLMIntObject.className()) } class SwiftRLMDynamicObject: RLMObject { @objc dynamic var stringCol = "a" @objc dynamic var intCol = 0 } class SwiftRLMUTF8Object: RLMObject { @objc dynamic var 柱колоéнǢкƱаم👍 = "值значен™👍☞⎠‱௹♣︎☐▼❒∑⨌⧭иеمرحبا" } class SwiftRLMIgnoredPropertiesObject: RLMObject { @objc dynamic var name = "" @objc dynamic var age = 0 @objc dynamic var runtimeProperty: AnyObject? @objc dynamic var readOnlyProperty: Int { return 0 } override class func ignoredProperties() -> [String]? { return ["runtimeProperty"] } } class SwiftRLMPrimaryStringObject: RLMObject { @objc dynamic var stringCol = "" @objc dynamic var intCol = 0 override class func primaryKey() -> String { return "stringCol" } } class SwiftRLMLinkSourceObject: RLMObject { @objc dynamic var id = 0 @objc dynamic var link: SwiftRLMLinkTargetObject? } class SwiftRLMLinkTargetObject: RLMObject { @objc dynamic var id = 0 @objc dynamic var backlinks: RLMLinkingObjects? override class func linkingObjectsProperties() -> [String : RLMPropertyDescriptor] { return ["backlinks": RLMPropertyDescriptor(with: SwiftRLMLinkSourceObject.self, propertyName: "link")] } } class SwiftRLMLazyVarObject: RLMObject { @objc dynamic lazy var lazyProperty: String = "hello world" } class SwiftRLMIgnoredLazyVarObject: RLMObject { @objc dynamic var id = 0 @objc dynamic lazy var ignoredVar: String = "hello world" override class func ignoredProperties() -> [String] { return ["ignoredVar"] } } class SwiftRLMObjectiveCTypesObject: RLMObject { @objc dynamic var stringCol: NSString? @objc dynamic var dateCol: NSDate? @objc dynamic var dataCol: NSData? @objc dynamic var numCol: NSNumber? = 0 }