123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463 |
- ////////////////////////////////////////////////////////////////////////////
- //
- // 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/Realm.h>
- #if __has_extension(objc_generics)
- #define RLM_GENERIC_ARRAY(CLASS) RLMArray<CLASS *><CLASS>
- #else
- #define RLM_GENERIC_ARRAY(CLASS) RLMArray<CLASS>
- #endif
- #pragma mark - Abstract Objects
- #pragma mark -
- #pragma mark SingleTypeObjects
- @interface StringObject : RLMObject
- @property NSString *stringCol;
- @end
- @interface IntObject : RLMObject
- @property int intCol;
- @end
- @interface AllIntSizesObject : RLMObject
- // int8_t not supported due to being ambiguous with BOOL
- @property int16_t int16;
- @property int32_t int32;
- @property int64_t int64;
- @end
- @interface FloatObject : RLMObject
- @property float floatCol;
- @end
- @interface DoubleObject : RLMObject
- @property double doubleCol;
- @end
- @interface BoolObject : RLMObject
- @property BOOL boolCol;
- @end
- @interface DateObject : RLMObject
- @property NSDate *dateCol;
- @end
- @interface BinaryObject : RLMObject
- @property NSData *binaryCol;
- @end
- @interface UTF8Object : RLMObject
- @property NSString *柱колоéнǢкƱаم;
- @end
- @interface IndexedStringObject : RLMObject
- @property NSString *stringCol;
- @end
- RLM_ARRAY_TYPE(StringObject)
- RLM_ARRAY_TYPE(IntObject)
- @interface LinkStringObject : RLMObject
- @property StringObject *objectCol;
- @end
- @interface LinkIndexedStringObject : RLMObject
- @property IndexedStringObject *objectCol;
- @end
- @interface RequiredPropertiesObject : RLMObject
- @property NSString *stringCol;
- @property NSData *binaryCol;
- @property NSDate *dateCol;
- @end
- @interface IgnoredURLObject : RLMObject
- @property NSString *name;
- @property NSURL *url;
- @end
- #pragma mark AllTypesObject
- @interface AllTypesObject : RLMObject
- @property BOOL boolCol;
- @property int intCol;
- @property float floatCol;
- @property double doubleCol;
- @property NSString *stringCol;
- @property NSData *binaryCol;
- @property NSDate *dateCol;
- @property bool cBoolCol;
- @property int64_t longCol;
- @property StringObject *objectCol;
- @property (readonly) RLMLinkingObjects *linkingObjectsCol;
- @end
- RLM_ARRAY_TYPE(AllTypesObject)
- @interface LinkToAllTypesObject : RLMObject
- @property AllTypesObject *allTypesCol;
- @end
- @interface ArrayOfAllTypesObject : RLMObject
- @property RLM_GENERIC_ARRAY(AllTypesObject) *array;
- @end
- @interface AllOptionalTypes : RLMObject
- @property NSNumber<RLMInt> *intObj;
- @property NSNumber<RLMFloat> *floatObj;
- @property NSNumber<RLMDouble> *doubleObj;
- @property NSNumber<RLMBool> *boolObj;
- @property NSString *string;
- @property NSData *data;
- @property NSDate *date;
- @end
- @interface AllOptionalTypesPK : RLMObject
- @property int pk;
- @property NSNumber<RLMInt> *intObj;
- @property NSNumber<RLMFloat> *floatObj;
- @property NSNumber<RLMDouble> *doubleObj;
- @property NSNumber<RLMBool> *boolObj;
- @property NSString *string;
- @property NSData *data;
- @property NSDate *date;
- @end
- @interface AllPrimitiveArrays : RLMObject
- @property RLMArray<RLMInt> *intObj;
- @property RLMArray<RLMFloat> *floatObj;
- @property RLMArray<RLMDouble> *doubleObj;
- @property RLMArray<RLMBool> *boolObj;
- @property RLMArray<RLMString> *stringObj;
- @property RLMArray<RLMDate> *dateObj;
- @property RLMArray<RLMData> *dataObj;
- @end
- @interface AllOptionalPrimitiveArrays : RLMObject
- @property RLMArray<RLMInt> *intObj;
- @property RLMArray<RLMFloat> *floatObj;
- @property RLMArray<RLMDouble> *doubleObj;
- @property RLMArray<RLMBool> *boolObj;
- @property RLMArray<RLMString> *stringObj;
- @property RLMArray<RLMDate> *dateObj;
- @property RLMArray<RLMData> *dataObj;
- @end
- #pragma mark - Real Life Objects
- #pragma mark -
- #pragma mark EmployeeObject
- @interface EmployeeObject : RLMObject
- @property NSString *name;
- @property int age;
- @property BOOL hired;
- @end
- RLM_ARRAY_TYPE(EmployeeObject)
- #pragma mark CompanyObject
- @interface CompanyObject : RLMObject
- @property NSString *name;
- @property RLM_GENERIC_ARRAY(EmployeeObject) *employees;
- @end
- #pragma mark LinkToCompanyObject
- @interface LinkToCompanyObject : RLMObject
- @property CompanyObject *company;
- @end
- #pragma mark DogObject
- @interface DogObject : RLMObject
- @property NSString *dogName;
- @property int age;
- @property (readonly) RLMLinkingObjects *owners;
- @end
- RLM_ARRAY_TYPE(DogObject)
- @interface DogArrayObject : RLMObject
- @property RLM_GENERIC_ARRAY(DogObject) *dogs;
- @end
- #pragma mark OwnerObject
- @interface OwnerObject : RLMObject
- @property NSString *name;
- @property DogObject *dog;
- @end
- #pragma mark - Specific Use Objects
- #pragma mark -
- #pragma mark CustomAccessorsObject
- @interface CustomAccessorsObject : RLMObject
- @property (getter = getThatName) NSString *name;
- @property (setter = setTheInt:) int age;
- @end
- #pragma mark BaseClassStringObject
- @interface BaseClassStringObject : RLMObject
- @property int intCol;
- @end
- @interface BaseClassStringObject ()
- @property NSString *stringCol;
- @end
- #pragma mark CircleObject
- @interface CircleObject : RLMObject
- @property NSString *data;
- @property CircleObject *next;
- @end
- RLM_ARRAY_TYPE(CircleObject);
- #pragma mark CircleArrayObject
- @interface CircleArrayObject : RLMObject
- @property RLM_GENERIC_ARRAY(CircleObject) *circles;
- @end
- #pragma mark ArrayPropertyObject
- @interface ArrayPropertyObject : RLMObject
- @property NSString *name;
- @property RLM_GENERIC_ARRAY(StringObject) *array;
- @property RLM_GENERIC_ARRAY(IntObject) *intArray;
- @end
- #pragma mark DynamicObject
- @interface DynamicObject : RLMObject
- @property NSString *stringCol;
- @property int intCol;
- @end
- #pragma mark AggregateObject
- @interface AggregateObject : RLMObject
- @property int intCol;
- @property float floatCol;
- @property double doubleCol;
- @property BOOL boolCol;
- @property NSDate *dateCol;
- @end
- RLM_ARRAY_TYPE(AggregateObject)
- @interface AggregateArrayObject : RLMObject
- @property RLMArray<AggregateObject *><AggregateObject> *array;
- @end
- #pragma mark PrimaryStringObject
- @interface PrimaryStringObject : RLMObject
- @property NSString *stringCol;
- @property int intCol;
- @end
- @interface PrimaryNullableStringObject : RLMObject
- @property NSString *stringCol;
- @property int intCol;
- @end
- @interface PrimaryIntObject : RLMObject
- @property int intCol;
- @end
- RLM_ARRAY_TYPE(PrimaryIntObject);
- @interface PrimaryInt64Object : RLMObject
- @property int64_t int64Col;
- @end
- @interface PrimaryNullableIntObject : RLMObject
- @property NSNumber<RLMInt> *optIntCol;
- @property int value;
- @end
- @interface ReadOnlyPropertyObject : RLMObject
- @property (readonly) NSNumber *readOnlyUnsupportedProperty;
- @property (readonly) int readOnlySupportedProperty;
- @property (readonly) int readOnlyPropertyMadeReadWriteInClassExtension;
- @end
- #pragma mark IntegerArrayPropertyObject
- @interface IntegerArrayPropertyObject : RLMObject
- @property NSInteger number;
- @property RLM_GENERIC_ARRAY(IntObject) *array;
- @end
- @interface NumberObject : RLMObject
- @property NSNumber<RLMInt> *intObj;
- @property NSNumber<RLMFloat> *floatObj;
- @property NSNumber<RLMDouble> *doubleObj;
- @property NSNumber<RLMBool> *boolObj;
- @end
- @interface NumberDefaultsObject : NumberObject
- @end
- @interface RequiredNumberObject : RLMObject
- @property NSNumber<RLMInt> *intObj;
- @property NSNumber<RLMFloat> *floatObj;
- @property NSNumber<RLMDouble> *doubleObj;
- @property NSNumber<RLMBool> *boolObj;
- @end
- #pragma mark CustomInitializerObject
- @interface CustomInitializerObject : RLMObject
- @property NSString *stringCol;
- @end
- #pragma mark AbstractObject
- @interface AbstractObject : RLMObject
- @end
- #pragma mark PersonObject
- @class PersonObject;
- RLM_ARRAY_TYPE(PersonObject);
- @interface PersonObject : RLMObject
- @property NSString *name;
- @property NSInteger age;
- @property RLMArray<PersonObject> *children;
- @property (readonly) RLMLinkingObjects *parents;
- @end
- @interface PrimaryEmployeeObject : EmployeeObject
- @end
- RLM_ARRAY_TYPE(PrimaryEmployeeObject);
- @interface LinkToPrimaryEmployeeObject : RLMObject
- @property PrimaryEmployeeObject *wrapped;
- @end
- @interface PrimaryCompanyObject : RLMObject
- @property NSString *name;
- @property RLM_GENERIC_ARRAY(PrimaryEmployeeObject) *employees;
- @property PrimaryEmployeeObject *intern;
- @property LinkToPrimaryEmployeeObject *wrappedIntern;
- @end
- RLM_ARRAY_TYPE(PrimaryCompanyObject);
- @interface ArrayOfPrimaryCompanies : RLMObject
- @property RLM_GENERIC_ARRAY(PrimaryCompanyObject) *companies;
- @end
- #pragma mark ComputedPropertyNotExplicitlyIgnoredObject
- @interface ComputedPropertyNotExplicitlyIgnoredObject : RLMObject
- @property NSString *_URLBacking;
- @property NSURL *URL;
- @end
- @interface RenamedProperties1 : RLMObject
- @property (nonatomic) int propA;
- @property (nonatomic) NSString *propB;
- @property (readonly, nonatomic) RLMLinkingObjects *linking1;
- @property (readonly, nonatomic) RLMLinkingObjects *linking2;
- @end
- @interface RenamedProperties2 : RLMObject
- @property (nonatomic) int propC;
- @property (nonatomic) NSString *propD;
- @property (readonly, nonatomic) RLMLinkingObjects *linking1;
- @property (readonly, nonatomic) RLMLinkingObjects *linking2;
- @end
- RLM_ARRAY_TYPE(RenamedProperties1)
- RLM_ARRAY_TYPE(RenamedProperties2)
- @interface LinkToRenamedProperties1 : RLMObject
- @property (nonatomic) RenamedProperties1 *linkA;
- @property (nonatomic) RenamedProperties2 *linkB;
- @property (nonatomic) RLM_GENERIC_ARRAY(RenamedProperties1) *array;
- @end
- @interface LinkToRenamedProperties2 : RLMObject
- @property (nonatomic) RenamedProperties2 *linkC;
- @property (nonatomic) RenamedProperties1 *linkD;
- @property (nonatomic) RLM_GENERIC_ARRAY(RenamedProperties2) *array;
- @end
- @interface RenamedPrimaryKey : RLMObject
- @property (nonatomic) int pk;
- @property (nonatomic) int value;
- @end
- #pragma mark FakeObject
- @interface FakeObject : NSObject
- @end
|