/JMRMapping.h

http://rtm2cocoa.googlecode.com/ · C Header · 128 lines · 89 code · 28 blank · 11 comment · 0 complexity · a47317bf170b0f6c0990970c8bf69e45 MD5 · raw file

  1. //
  2. // JMRMapping.h
  3. /*
  4. This work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit http://creativecommons.org/licenses/by/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
  5. */
  6. #import <Foundation/Foundation.h>
  7. #import "JMRScalarMappingType.h"
  8. #import "JMRConstantMappingType.h"
  9. @class JMRObjectMapping;
  10. @class JMRSwitchMappingType;
  11. @interface JMRMapping : NSObject {
  12. // delimiters: / for path, @ for attribute
  13. NSString *_xmlPath;
  14. NSString *_objectPath;
  15. BOOL _isList;
  16. JMRScalarMappingType *_scalarType;
  17. // if isObject
  18. JMRObjectMapping *_objectMapping;
  19. }
  20. -(id)scalarValue:(NSString *)value;
  21. -(NSString *)stringForValue:(id)object;
  22. -(void)assignValue:(id)value toObject:(id)object;
  23. -(BOOL)isConstant;
  24. -(BOOL)isScalar;
  25. -(BOOL)isSwitch;
  26. -(BOOL)isObject;
  27. -(BOOL)isList;
  28. // initializers
  29. -(id)initWithXmlPath:(NSString *)xmlPath objectPath:(NSString *)objectPath;
  30. -(id)initWithXmlPath:(NSString *)xmlPath
  31. objectPath:(NSString *)objectPath
  32. formatter:(NSFormatter *)formatter;
  33. -(id)initWithXmlPath:(NSString *)xmlPath
  34. objectPath:(NSString *)objectPath
  35. format:(NSString *)format;
  36. -(id)initWithXmlPath:(NSString *)xmlPath
  37. objectPath:(NSString *)objectPath
  38. formatter:(NSFormatter *)formatter
  39. defaultString:(NSString *)defaultString;
  40. -(id)initWithXmlPath:(NSString *)xmlPath
  41. constantValue:(NSString *)constantValue;
  42. -(id)initWithXmlPath:(NSString *)xmlPath
  43. objectPath:(NSString *)objectPath
  44. objectMapping:(JMRObjectMapping *)objectMapping;
  45. -(id)initWithXmlPath:(NSString *)xmlPath
  46. objectPath:(NSString *)objectPath
  47. mappingType:(JMRMappingType *)mappingType;
  48. // accessors
  49. -(JMRScalarMappingType *)defaultScalarType;
  50. -(JMRScalarMappingType *)scalarType;
  51. -(void)setScalarType:(JMRScalarMappingType *)value;
  52. -(JMRMappingType *)mappingType;
  53. -(void)setMappingType:(JMRMappingType *)value;
  54. -(NSString *)xmlPath;
  55. -(void)setXmlPath:(NSString *)value;
  56. -(NSString *)objectPath;
  57. -(void)setObjectPath:(NSString *)value;
  58. -(JMRObjectMapping *)objectMapping;
  59. -(void)setObjectMapping:(JMRObjectMapping *)value;
  60. -(NSString *)defaultString;
  61. -(void)setDefaultString:(NSString *)value;
  62. -(NSFormatter *)formatter;
  63. -(void)setFormatter:(NSFormatter *)value;
  64. -(BOOL)isList;
  65. -(void)setIsList:(BOOL)value;
  66. -(JMRObjectMapping *)objectMapping;
  67. -(void)setObjectMapping:(JMRObjectMapping *)value;
  68. -(void)setFormat:(NSString *)value;
  69. -(void)dealloc;
  70. +(void)setDefaultFormatter:(NSFormatter *)formatter;
  71. +(JMRMapping *)mappingWithXmlPath:(NSString *)xmlPath
  72. objectPath:(NSString *)objectPath;
  73. +(JMRMapping *)mappingWithXmlPath:(NSString *)xmlPath
  74. objectPath:(NSString *)objectPath
  75. formatter:(NSFormatter *)formatter;
  76. +(JMRMapping *)listMappingWithXmlPath:(NSString *)xmlPath
  77. objectPath:(NSString *)objectPath
  78. formatter:(NSFormatter *)formatter;
  79. +(JMRMapping *)mappingWithXmlPath:(NSString *)xmlPath
  80. objectPath:(NSString *)objectPath
  81. formatter:(NSFormatter *)formatter
  82. defaultString:(NSString *)defaultString;
  83. +(JMRMapping *)listMappingWithXmlPath:(NSString *)xmlPath
  84. objectPath:(NSString *)objectPath
  85. formatter:(NSFormatter *)formatter
  86. defaultString:(NSString *)defaultString;
  87. +(JMRMapping *)constantMappingWithXmlPath:(NSString *)xmlPath
  88. value:(NSString *)value;
  89. +(JMRMapping *)mappingWithXmlPath:(NSString *)xmlPath
  90. objectPath:(NSString *)objectPath
  91. objectMapping:(JMRObjectMapping *)objectMapping;
  92. +(JMRMapping *)listMappingWithXmlPath:(NSString *)xmlPath
  93. objectPath:(NSString *)objectPath
  94. objectMapping:(JMRObjectMapping *)objectMapping;
  95. +(JMRMapping *)mappingWithXmlPath:(NSString *)xmlPath
  96. objectPath:(NSString *)objectPath
  97. mappingType:(JMRMappingType *)mappingType;
  98. @end