FEMRelationship.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // For License please refer to LICENSE file in the root of FastEasyMapping project
  2. #import <Foundation/Foundation.h>
  3. #import "FEMAssignmentPolicy.h"
  4. #import "FEMProperty.h"
  5. @class FEMMapping;
  6. @interface FEMRelationship : NSObject <FEMProperty>
  7. @property (nonatomic, strong, nonnull) FEMMapping *mapping;
  8. @property (nonatomic, getter=isToMany) BOOL toMany;
  9. @property (nonatomic) BOOL weak;
  10. @property (nonatomic, copy, nonnull) FEMAssignmentPolicy assignmentPolicy;
  11. - (nonnull instancetype)initWithProperty:(nonnull NSString *)property mapping:(nonnull FEMMapping *)mapping;
  12. - (nonnull instancetype)initWithProperty:(nonnull NSString *)property
  13. keyPath:(nullable NSString *)keyPath
  14. mapping:(nonnull FEMMapping *)mapping NS_DESIGNATED_INITIALIZER;
  15. - (nonnull instancetype)initWithProperty:(nonnull NSString *)property
  16. keyPath:(nonnull NSString *)keyPath
  17. mapping:(nonnull FEMMapping *)mapping
  18. assignmentPolicy:(nonnull FEMAssignmentPolicy)assignmentPolicy;
  19. - (void)setMapping:(nonnull FEMMapping *)mapping forKeyPath:(nullable NSString *)keyPath;
  20. @end
  21. @interface FEMRelationship (Deprecated)
  22. - (void)setObjectMapping:(nonnull FEMMapping *)objectMapping forKeyPath:(nullable NSString *)keyPath __attribute__((deprecated("Use -[FEMRelationship setMappaing:forKeyPath:] instead")));
  23. - (nonnull instancetype)initWithProperty:(nonnull NSString *)property
  24. keyPath:(nullable NSString *)keyPath
  25. assignmentPolicy:(nullable FEMAssignmentPolicy)policy
  26. objectMapping:(nullable FEMMapping *)objectMapping __attribute__((deprecated("Use -[FEMRelationship initWithProperty:keyPath:mapping:assignmentPolicy:] instead")));
  27. /**
  28. * same as + [FEMRelationship mappingOfProperty:property toKeyPath:nil mapping:mapping];
  29. */
  30. + (nonnull instancetype)mappingOfProperty:(nonnull NSString *)property objectMapping:(nonnull FEMMapping *)objectMapping __attribute__((deprecated("Use -[FEMRelationship initWithProperty:mapping:] instead")));
  31. + (nonnull instancetype)mappingOfProperty:(nonnull NSString *)property
  32. toKeyPath:(nullable NSString *)keyPath
  33. objectMapping:(nonnull FEMMapping *)objectMapping __attribute__((deprecated("Use -[FEMRelationship initWithProperty:keyPath:mapping:] instead")));
  34. @property (nonatomic, strong, nonnull) FEMMapping *objectMapping __attribute__((deprecated("Use FEMRelationship.mapping instead")));
  35. @end
  36. @interface FEMRelationship (Unavailable)
  37. + (nonnull instancetype)mappingOfProperty:(nonnull NSString *)property
  38. configuration:(nonnull void (^)(FEMRelationship * __nonnull mapping))configuration __attribute__((unavailable("Use -[FEMRelationship initWithProperty:keyPath:mapping:] instead")));
  39. + (nonnull instancetype)mappingOfProperty:(nonnull NSString *)property
  40. toKeyPath:(nullable NSString *)keyPath
  41. configuration:(nonnull void (^)(FEMRelationship * __nonnull mapping))configuration __attribute__((unavailable("Use -[FEMRelationship initWithProperty:keyPath:mapping:] instead")));
  42. @end