SwiftTestObjects.swift 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. ////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright 2014 Realm Inc.
  4. //
  5. // Licensed under the Apache License, Version 2.0 (the "License");
  6. // you may not use this file except in compliance with the License.
  7. // You may obtain a copy of the License at
  8. //
  9. // http://www.apache.org/licenses/LICENSE-2.0
  10. //
  11. // Unless required by applicable law or agreed to in writing, software
  12. // distributed under the License is distributed on an "AS IS" BASIS,
  13. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. // See the License for the specific language governing permissions and
  15. // limitations under the License.
  16. //
  17. ////////////////////////////////////////////////////////////////////////////
  18. import Realm
  19. import RealmTestSupport
  20. class SwiftRLMStringObject: RLMObject {
  21. @objc dynamic var stringCol = ""
  22. }
  23. class SwiftRLMBoolObject: RLMObject {
  24. @objc dynamic var boolCol = false
  25. }
  26. class SwiftRLMIntObject: RLMObject {
  27. @objc dynamic var intCol = 0
  28. }
  29. class SwiftRLMLongObject: RLMObject {
  30. @objc dynamic var longCol: Int64 = 0
  31. }
  32. class SwiftRLMObject: RLMObject {
  33. @objc dynamic var boolCol = false
  34. @objc dynamic var intCol = 123
  35. @objc dynamic var floatCol = 1.23 as Float
  36. @objc dynamic var doubleCol = 12.3
  37. @objc dynamic var stringCol = "a"
  38. @objc dynamic var binaryCol = "a".data(using: String.Encoding.utf8)
  39. @objc dynamic var dateCol = Date(timeIntervalSince1970: 1)
  40. @objc dynamic var objectCol = SwiftRLMBoolObject()
  41. @objc dynamic var arrayCol = RLMArray<SwiftRLMBoolObject>(objectClassName: SwiftRLMBoolObject.className())
  42. }
  43. class SwiftRLMOptionalObject: RLMObject {
  44. @objc dynamic var optStringCol: String?
  45. @objc dynamic var optNSStringCol: NSString?
  46. @objc dynamic var optBinaryCol: Data?
  47. @objc dynamic var optDateCol: Date?
  48. @objc dynamic var optObjectCol: SwiftRLMBoolObject?
  49. }
  50. class SwiftRLMPrimitiveArrayObject: RLMObject {
  51. @objc dynamic var stringCol = RLMArray<NSString>(objectType: .string, optional: false)
  52. @objc dynamic var optStringCol = RLMArray<NSObject>(objectType: .string, optional: true)
  53. @objc dynamic var dataCol = RLMArray<NSData>(objectType: .data, optional: false)
  54. @objc dynamic var optDataCol = RLMArray<NSObject>(objectType: .data, optional: true)
  55. @objc dynamic var dateCol = RLMArray<NSDate>(objectType: .date, optional: false)
  56. @objc dynamic var optDateCol = RLMArray<NSObject>(objectType: .date, optional: true)
  57. }
  58. class SwiftRLMDogObject: RLMObject {
  59. @objc dynamic var dogName = ""
  60. }
  61. class SwiftRLMOwnerObject: RLMObject {
  62. @objc dynamic var name = ""
  63. @objc dynamic var dog: SwiftRLMDogObject? = SwiftRLMDogObject()
  64. }
  65. class SwiftRLMAggregateObject: RLMObject {
  66. @objc dynamic var intCol = 0
  67. @objc dynamic var floatCol = 0 as Float
  68. @objc dynamic var doubleCol = 0.0
  69. @objc dynamic var boolCol = false
  70. @objc dynamic var dateCol = Date()
  71. }
  72. class SwiftRLMAllIntSizesObject: RLMObject {
  73. @objc dynamic var int8: Int8 = 0
  74. @objc dynamic var int16: Int16 = 0
  75. @objc dynamic var int32: Int32 = 0
  76. @objc dynamic var int64: Int64 = 0
  77. }
  78. class SwiftRLMEmployeeObject: RLMObject {
  79. @objc dynamic var name = ""
  80. @objc dynamic var age = 0
  81. @objc dynamic var hired = false
  82. }
  83. class SwiftRLMCompanyObject: RLMObject {
  84. @objc dynamic var employees = RLMArray<SwiftRLMEmployeeObject>(objectClassName: SwiftRLMEmployeeObject.className())
  85. }
  86. class SwiftRLMArrayPropertyObject: RLMObject {
  87. @objc dynamic var name = ""
  88. @objc dynamic var array = RLMArray<SwiftRLMStringObject>(objectClassName: SwiftRLMStringObject.className())
  89. @objc dynamic var intArray = RLMArray<SwiftRLMIntObject>(objectClassName: SwiftRLMIntObject.className())
  90. }
  91. class SwiftRLMDynamicObject: RLMObject {
  92. @objc dynamic var stringCol = "a"
  93. @objc dynamic var intCol = 0
  94. }
  95. class SwiftRLMUTF8Object: RLMObject {
  96. @objc dynamic var 柱колоéнǢкƱаم👍 = "值значен™👍☞⎠‱௹♣︎☐▼❒∑⨌⧭иеمرحبا"
  97. }
  98. class SwiftRLMIgnoredPropertiesObject: RLMObject {
  99. @objc dynamic var name = ""
  100. @objc dynamic var age = 0
  101. @objc dynamic var runtimeProperty: AnyObject?
  102. @objc dynamic var readOnlyProperty: Int { return 0 }
  103. override class func ignoredProperties() -> [String]? {
  104. return ["runtimeProperty"]
  105. }
  106. }
  107. class SwiftRLMPrimaryStringObject: RLMObject {
  108. @objc dynamic var stringCol = ""
  109. @objc dynamic var intCol = 0
  110. override class func primaryKey() -> String {
  111. return "stringCol"
  112. }
  113. }
  114. class SwiftRLMLinkSourceObject: RLMObject {
  115. @objc dynamic var id = 0
  116. @objc dynamic var link: SwiftRLMLinkTargetObject?
  117. }
  118. class SwiftRLMLinkTargetObject: RLMObject {
  119. @objc dynamic var id = 0
  120. @objc dynamic var backlinks: RLMLinkingObjects<SwiftRLMLinkSourceObject>?
  121. override class func linkingObjectsProperties() -> [String : RLMPropertyDescriptor] {
  122. return ["backlinks": RLMPropertyDescriptor(with: SwiftRLMLinkSourceObject.self, propertyName: "link")]
  123. }
  124. }
  125. class SwiftRLMLazyVarObject: RLMObject {
  126. @objc dynamic lazy var lazyProperty: String = "hello world"
  127. }
  128. class SwiftRLMIgnoredLazyVarObject: RLMObject {
  129. @objc dynamic var id = 0
  130. @objc dynamic lazy var ignoredVar: String = "hello world"
  131. override class func ignoredProperties() -> [String] { return ["ignoredVar"] }
  132. }
  133. class SwiftRLMObjectiveCTypesObject: RLMObject {
  134. @objc dynamic var stringCol: NSString?
  135. @objc dynamic var dateCol: NSDate?
  136. @objc dynamic var dataCol: NSData?
  137. @objc dynamic var numCol: NSNumber? = 0
  138. }