/core/externals/update-engine/externals/gdata-objectivec-client/Source/Clients/Calendar/GDataEntryCalendar.m

http://macfuse.googlecode.com/ · Objective C · 258 lines · 182 code · 56 blank · 20 comment · 5 complexity · a0384e208cd597ffec942202e475b8e6 MD5 · raw file

  1. /* Copyright (c) 2007 Google Inc.
  2. *
  3. * Licensed under the Apache License, Version 2.0 (the "License");
  4. * you may not use this file except in compliance with the License.
  5. * You may obtain a copy of the License at
  6. *
  7. * http://www.apache.org/licenses/LICENSE-2.0
  8. *
  9. * Unless required by applicable law or agreed to in writing, software
  10. * distributed under the License is distributed on an "AS IS" BASIS,
  11. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. * See the License for the specific language governing permissions and
  13. * limitations under the License.
  14. */
  15. //
  16. // GDataEntryCalendar.m
  17. //
  18. #if !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_CALENDAR_SERVICE
  19. #define GDATAENTRYCALENDAR_DEFINE_GLOBALS 1
  20. #import "GDataEntryCalendar.h"
  21. // extensions
  22. #import "GDataTextConstruct.h"
  23. #import "GDataWhen.h"
  24. #import "GDataWhere.h"
  25. #import "GDataEntryCalendarEvent.h"
  26. // CalendarEntry extensions
  27. @implementation GDataHiddenProperty
  28. + (NSString *)extensionElementURI { return kGDataNamespaceGCal; }
  29. + (NSString *)extensionElementPrefix { return kGDataNamespaceGCalPrefix; }
  30. + (NSString *)extensionElementLocalName { return @"hidden"; }
  31. @end
  32. @implementation GDataAccessLevelProperty
  33. + (NSString *)extensionElementURI { return kGDataNamespaceGCal; }
  34. + (NSString *)extensionElementPrefix { return kGDataNamespaceGCalPrefix; }
  35. + (NSString *)extensionElementLocalName { return @"accesslevel"; }
  36. @end
  37. @implementation GDataSelectedProperty
  38. + (NSString *)extensionElementURI { return kGDataNamespaceGCal; }
  39. + (NSString *)extensionElementPrefix { return kGDataNamespaceGCalPrefix; }
  40. + (NSString *)extensionElementLocalName { return @"selected"; }
  41. @end
  42. @implementation GDataOverrideNameProperty
  43. + (NSString *)extensionElementURI { return kGDataNamespaceGCal; }
  44. + (NSString *)extensionElementPrefix { return kGDataNamespaceGCalPrefix; }
  45. + (NSString *)extensionElementLocalName { return @"overridename"; }
  46. @end
  47. @implementation GDataTimesCleanedProperty
  48. + (NSString *)extensionElementURI { return kGDataNamespaceGCal; }
  49. + (NSString *)extensionElementPrefix { return kGDataNamespaceGCalPrefix; }
  50. + (NSString *)extensionElementLocalName { return @"timesCleaned"; }
  51. @end
  52. @implementation GDataTimeZoneProperty
  53. + (NSString *)extensionElementURI { return kGDataNamespaceGCal; }
  54. + (NSString *)extensionElementPrefix { return kGDataNamespaceGCalPrefix; }
  55. + (NSString *)extensionElementLocalName { return @"timezone"; }
  56. @end
  57. @implementation GDataColorProperty
  58. + (NSString *)extensionElementURI { return kGDataNamespaceGCal; }
  59. + (NSString *)extensionElementPrefix { return kGDataNamespaceGCalPrefix; }
  60. + (NSString *)extensionElementLocalName { return @"color"; }
  61. @end
  62. @implementation GDataEntryCalendar
  63. + (NSDictionary *)calendarNamespaces {
  64. NSMutableDictionary *namespaces = [NSMutableDictionary dictionaryWithDictionary:
  65. [GDataEntryBase baseGDataNamespaces]];
  66. [namespaces setObject:kGDataNamespaceGCal forKey:kGDataNamespaceGCalPrefix];
  67. return namespaces;
  68. }
  69. + (GDataEntryCalendar *)calendarEntry {
  70. GDataEntryCalendar *entry = [self object];
  71. [entry setNamespaces:[GDataEntryCalendar calendarNamespaces]];
  72. return entry;
  73. }
  74. #pragma mark -
  75. + (NSString *)standardKindAttributeValue {
  76. return @"calendar#calendar";
  77. }
  78. + (void)load {
  79. [self registerEntryClass];
  80. }
  81. - (void)addExtensionDeclarations {
  82. [super addExtensionDeclarations];
  83. Class entryClass = [self class];
  84. // Calendar extensions
  85. [self addExtensionDeclarationForParentClass:entryClass
  86. childClasses:
  87. [GDataAccessLevelProperty class],
  88. [GDataColorProperty class],
  89. [GDataHiddenProperty class],
  90. [GDataOverrideNameProperty class],
  91. [GDataSelectedProperty class],
  92. [GDataTimeZoneProperty class],
  93. [GDataTimesCleanedProperty class],
  94. [GDataWhen class], // are whens really a property of calendars? Java has the extension but not the accessor
  95. [GDataWhere class],
  96. nil];
  97. }
  98. #if !GDATA_SIMPLE_DESCRIPTIONS
  99. - (NSMutableArray *)itemsForDescription {
  100. static struct GDataDescriptionRecord descRecs[] = {
  101. { @"timezone", @"timeZoneName.stringValue", kGDataDescValueLabeled },
  102. { @"timesCleaned", @"timesCleaned.stringValue", kGDataDescValueLabeled },
  103. { @"override", @"overrideName.stringValue", kGDataDescValueLabeled },
  104. { @"accessLevel", @"accessLevel.stringValue", kGDataDescValueLabeled },
  105. { @"hidden", @"isHidden", kGDataDescBooleanPresent },
  106. { @"selected", @"isSelected", kGDataDescBooleanPresent },
  107. { @"whens", @"whens", kGDataDescArrayCount },
  108. { @"hidden", @"locations", kGDataDescArrayCount },
  109. { nil, nil, (GDataDescRecTypes)0 }
  110. };
  111. NSMutableArray *items = [super itemsForDescription];
  112. [self addDescriptionRecords:descRecs toItems:items];
  113. return items;
  114. }
  115. #endif
  116. - (NSString *)description {
  117. return [super description];
  118. }
  119. + (NSString *)defaultServiceVersion {
  120. return kGDataCalendarDefaultServiceVersion;
  121. }
  122. #pragma mark Actual iVars
  123. - (GDataColorProperty *)color {
  124. return [self objectForExtensionClass:[GDataColorProperty class]];
  125. }
  126. - (void)setColor:(GDataColorProperty *)val {
  127. [self setObject:val forExtensionClass:[GDataColorProperty class]];
  128. }
  129. - (BOOL)isHidden {
  130. GDataBoolValueConstruct *obj = [self objectForExtensionClass:[GDataHiddenProperty class]];
  131. return [obj boolValue];
  132. }
  133. - (void)setIsHidden:(BOOL)flag {
  134. GDataBoolValueConstruct *obj;
  135. if (flag) {
  136. obj = [GDataHiddenProperty boolValueWithBool:YES];
  137. } else {
  138. obj = nil; // removes the extension
  139. }
  140. [self setObject:obj forExtensionClass:[GDataHiddenProperty class]];
  141. }
  142. - (BOOL)isSelected {
  143. GDataBoolValueConstruct *obj = [self objectForExtensionClass:[GDataSelectedProperty class]];
  144. return [obj boolValue];
  145. }
  146. - (void)setIsSelected:(BOOL)flag {
  147. GDataBoolValueConstruct *obj;
  148. if (flag) {
  149. obj = [GDataSelectedProperty boolValueWithBool:YES];
  150. } else {
  151. obj = nil; // removes the extension
  152. }
  153. [self setObject:obj forExtensionClass:[GDataSelectedProperty class]];
  154. }
  155. - (GDataAccessLevelProperty *)accessLevel {
  156. return [self objectForExtensionClass:[GDataAccessLevelProperty class]];
  157. }
  158. - (void)setAccessLevel:(GDataAccessLevelProperty *)val {
  159. [self setObject:val forExtensionClass:[GDataAccessLevelProperty class]];
  160. }
  161. - (GDataTimeZoneProperty *)timeZoneName {
  162. return [self objectForExtensionClass:[GDataTimeZoneProperty class]];
  163. }
  164. - (void)setTimeZoneName:(GDataTimeZoneProperty *)val {
  165. [self setObject:val forExtensionClass:[GDataTimeZoneProperty class]];
  166. }
  167. - (NSNumber *)timesCleaned { // int
  168. GDataTimesCleanedProperty *obj;
  169. obj = [self objectForExtensionClass:[GDataTimesCleanedProperty class]];
  170. return [obj intNumberValue];
  171. }
  172. - (void)setTimesCleaned:(NSNumber *)num {
  173. GDataTimesCleanedProperty *obj;
  174. obj = [GDataTimesCleanedProperty valueWithNumber:num];
  175. [self setObject:obj forExtensionClass:[GDataTimesCleanedProperty class]];
  176. }
  177. - (GDataOverrideNameProperty *)overrideName {
  178. return [self objectForExtensionClass:[GDataOverrideNameProperty class]];
  179. }
  180. - (void)setOverrideName:(GDataOverrideNameProperty *)val {
  181. [self setObject:val forExtensionClass:[GDataOverrideNameProperty class]];
  182. }
  183. - (NSArray *)whens {
  184. return [self objectsForExtensionClass:[GDataWhen class]];
  185. }
  186. - (void)setWhens:(NSArray *)array {
  187. [self setObjects:array forExtensionClass:[GDataWhen class]];
  188. }
  189. - (void)addWhen:(GDataWhen *)obj {
  190. [self addObject:obj forExtensionClass:[obj class]];
  191. }
  192. - (NSArray *)locations {
  193. return [self objectsForExtensionClass:[GDataWhere class]];
  194. }
  195. - (void)setLocations:(NSArray *)array {
  196. [self setObjects:array forExtensionClass:[GDataWhere class]];
  197. }
  198. - (void)addLocation:(GDataWhere *)obj {
  199. [self addObject:obj forExtensionClass:[obj class]];
  200. }
  201. @end
  202. #endif // !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_CALENDAR_SERVICE