SwiftTestObjects.swift 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  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. class SwiftStringObject: RLMObject {
  20. @objc dynamic var stringCol = ""
  21. }
  22. class SwiftBoolObject: RLMObject {
  23. @objc dynamic var boolCol = false
  24. }
  25. class SwiftIntObject: RLMObject {
  26. @objc dynamic var intCol = 0
  27. }
  28. class SwiftLongObject: RLMObject {
  29. @objc dynamic var longCol: Int64 = 0
  30. }
  31. class SwiftObject: RLMObject {
  32. @objc dynamic var boolCol = false
  33. @objc dynamic var intCol = 123
  34. @objc dynamic var floatCol = 1.23 as Float
  35. @objc dynamic var doubleCol = 12.3
  36. @objc dynamic var stringCol = "a"
  37. @objc dynamic var binaryCol = "a".data(using: String.Encoding.utf8)
  38. @objc dynamic var dateCol = Date(timeIntervalSince1970: 1)
  39. @objc dynamic var objectCol = SwiftBoolObject()
  40. @objc dynamic var arrayCol = RLMArray<SwiftBoolObject>(objectClassName: SwiftBoolObject.className())
  41. }
  42. class SwiftOptionalObject: RLMObject {
  43. @objc dynamic var optStringCol: String?
  44. @objc dynamic var optNSStringCol: NSString?
  45. @objc dynamic var optBinaryCol: Data?
  46. @objc dynamic var optDateCol: Date?
  47. @objc dynamic var optObjectCol: SwiftBoolObject?
  48. }
  49. class SwiftPrimitiveArrayObject: RLMObject {
  50. @objc dynamic var stringCol = RLMArray<NSString>(objectType: .string, optional: false)
  51. @objc dynamic var optStringCol = RLMArray<NSObject>(objectType: .string, optional: true)
  52. @objc dynamic var dataCol = RLMArray<NSData>(objectType: .data, optional: false)
  53. @objc dynamic var optDataCol = RLMArray<NSObject>(objectType: .data, optional: true)
  54. @objc dynamic var dateCol = RLMArray<NSDate>(objectType: .date, optional: false)
  55. @objc dynamic var optDateCol = RLMArray<NSObject>(objectType: .date, optional: true)
  56. }
  57. class SwiftDogObject: RLMObject {
  58. @objc dynamic var dogName = ""
  59. }
  60. class SwiftOwnerObject: RLMObject {
  61. @objc dynamic var name = ""
  62. @objc dynamic var dog: SwiftDogObject? = SwiftDogObject()
  63. }
  64. class SwiftAggregateObject: RLMObject {
  65. @objc dynamic var intCol = 0
  66. @objc dynamic var floatCol = 0 as Float
  67. @objc dynamic var doubleCol = 0.0
  68. @objc dynamic var boolCol = false
  69. @objc dynamic var dateCol = Date()
  70. }
  71. class SwiftAllIntSizesObject: RLMObject {
  72. @objc dynamic var int8 : Int8 = 0
  73. @objc dynamic var int16 : Int16 = 0
  74. @objc dynamic var int32 : Int32 = 0
  75. @objc dynamic var int64 : Int64 = 0
  76. }
  77. class SwiftEmployeeObject: RLMObject {
  78. @objc dynamic var name = ""
  79. @objc dynamic var age = 0
  80. @objc dynamic var hired = false
  81. }
  82. class SwiftCompanyObject: RLMObject {
  83. @objc dynamic var employees = RLMArray<SwiftEmployeeObject>(objectClassName: SwiftEmployeeObject.className())
  84. }
  85. class SwiftArrayPropertyObject: RLMObject {
  86. @objc dynamic var name = ""
  87. @objc dynamic var array = RLMArray<SwiftStringObject>(objectClassName: SwiftStringObject.className())
  88. @objc dynamic var intArray = RLMArray<SwiftIntObject>(objectClassName: SwiftIntObject.className())
  89. }
  90. class SwiftDynamicObject: RLMObject {
  91. @objc dynamic var stringCol = "a"
  92. @objc dynamic var intCol = 0
  93. }
  94. class SwiftUTF8Object: RLMObject {
  95. @objc dynamic var 柱колоéнǢкƱаم👍 = "值значен™👍☞⎠‱௹♣︎☐▼❒∑⨌⧭иеمرحبا"
  96. }
  97. class SwiftIgnoredPropertiesObject: RLMObject {
  98. @objc dynamic var name = ""
  99. @objc dynamic var age = 0
  100. @objc dynamic var runtimeProperty: AnyObject?
  101. @objc dynamic var readOnlyProperty: Int { return 0 }
  102. override class func ignoredProperties() -> [String]? {
  103. return ["runtimeProperty"]
  104. }
  105. }
  106. class SwiftPrimaryStringObject: RLMObject {
  107. @objc dynamic var stringCol = ""
  108. @objc dynamic var intCol = 0
  109. override class func primaryKey() -> String {
  110. return "stringCol"
  111. }
  112. }
  113. class SwiftLinkSourceObject: RLMObject {
  114. @objc dynamic var id = 0
  115. @objc dynamic var link: SwiftLinkTargetObject?
  116. }
  117. class SwiftLinkTargetObject: RLMObject {
  118. @objc dynamic var id = 0
  119. @objc dynamic var backlinks: RLMLinkingObjects<SwiftLinkSourceObject>?
  120. override class func linkingObjectsProperties() -> [String : RLMPropertyDescriptor] {
  121. return ["backlinks": RLMPropertyDescriptor(with: SwiftLinkSourceObject.self, propertyName: "link")]
  122. }
  123. }
  124. class SwiftLazyVarObject : RLMObject {
  125. @objc dynamic lazy var lazyProperty : String = "hello world"
  126. }
  127. class SwiftIgnoredLazyVarObject : RLMObject {
  128. @objc dynamic var id = 0
  129. @objc dynamic lazy var ignoredVar : String = "hello world"
  130. override class func ignoredProperties() -> [String] { return ["ignoredVar"] }
  131. }
  132. class SwiftObjectiveCTypesObject: RLMObject {
  133. @objc dynamic var stringCol: NSString?
  134. @objc dynamic var dateCol: NSDate?
  135. @objc dynamic var dataCol: NSData?
  136. @objc dynamic var numCol: NSNumber? = 0
  137. }