/core/externals/update-engine/externals/gdata-objectivec-client/Source/Clients/YouTube/GDataEntryYouTubeUserProfile.m

http://macfuse.googlecode.com/ · Objective C · 362 lines · 263 code · 80 blank · 19 comment · 2 complexity · aa937a5f3d4d9132aedd8a60756dffcf MD5 · raw file

  1. /* Copyright (c) 2008 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. // GDataEntryYouTubeUserProfile.m
  17. //
  18. #if !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_YOUTUBE_SERVICE
  19. #import "GDataEntryYouTubeUserProfile.h"
  20. #import "GDataYouTubeConstants.h"
  21. #import "GDataYouTubeElements.h"
  22. @implementation GDataEntryYouTubeUserProfile
  23. + (GDataEntryYouTubeUserProfile *)userProfileEntry {
  24. GDataEntryYouTubeUserProfile *entry = [self object];
  25. [entry setNamespaces:[GDataYouTubeConstants youTubeNamespaces]];
  26. return entry;
  27. }
  28. #pragma mark -
  29. + (NSString *)standardEntryKind {
  30. return kGDataCategoryYouTubeUserProfile;
  31. }
  32. + (void)load {
  33. [self registerEntryClass];
  34. }
  35. - (void)addExtensionDeclarations {
  36. [super addExtensionDeclarations];
  37. [self addExtensionDeclarationForParentClass:[self class]
  38. childClasses:
  39. [GDataFeedLink class],
  40. // YouTube element extensions
  41. [GDataYouTubeAge class], [GDataYouTubeBooks class],
  42. [GDataYouTubeCompany class], [GDataYouTubeAboutMe class],
  43. [GDataYouTubeGender class], [GDataYouTubeHobbies class],
  44. [GDataYouTubeHometown class], [GDataYouTubeLocation class],
  45. [GDataYouTubeMovies class], [GDataYouTubeMusic class],
  46. [GDataYouTubeOccupation class], [GDataYouTubeRelationship class],
  47. [GDataYouTubeSchool class], [GDataYouTubeUsername class],
  48. [GDataYouTubeFirstName class], [GDataYouTubeLastName class],
  49. [GDataYouTubeStatistics class],
  50. // media extensions
  51. [GDataMediaThumbnail class], nil];
  52. }
  53. #if !GDATA_SIMPLE_DESCRIPTIONS
  54. - (NSMutableArray *)itemsForDescription {
  55. static struct GDataDescriptionRecord descRecs[] = {
  56. { @"statistics", @"statistics", kGDataDescValueLabeled },
  57. { @"age", @"age", kGDataDescValueLabeled },
  58. { @"thumbnail", @"thumbnail", kGDataDescValueLabeled },
  59. { @"company", @"company", kGDataDescValueLabeled },
  60. { @"gender", @"gender", kGDataDescValueLabeled },
  61. { @"hobbies", @"hobbies", kGDataDescValueLabeled },
  62. { @"hometown", @"hometown", kGDataDescValueLabeled },
  63. { @"location", @"location", kGDataDescValueLabeled },
  64. { @"movies", @"movies", kGDataDescValueLabeled },
  65. { @"music", @"music", kGDataDescValueLabeled },
  66. { @"occupation", @"occupation", kGDataDescValueLabeled },
  67. { @"relationship", @"relationship", kGDataDescValueLabeled },
  68. { @"school", @"school", kGDataDescValueLabeled },
  69. { @"username", @"username", kGDataDescValueLabeled },
  70. { @"firstName", @"firstName", kGDataDescValueLabeled },
  71. { @"lastName", @"lastName", kGDataDescValueLabeled },
  72. { @"summary", @"summary.stringValue", kGDataDescValueLabeled },
  73. { @"feedLinks", @"feedLinks", kGDataDescArrayCount },
  74. { nil, nil, (GDataDescRecTypes)0 }
  75. };
  76. NSMutableArray *items = [super itemsForDescription];
  77. [self addDescriptionRecords:descRecs toItems:items];
  78. return items;
  79. }
  80. #endif
  81. + (NSString *)defaultServiceVersion {
  82. return kGDataYouTubeDefaultServiceVersion;
  83. }
  84. #pragma mark -
  85. - (NSString *)channelType {
  86. NSArray *channelCats;
  87. channelCats = [self categoriesWithScheme:kGDataSchemeYouTubeChannel];
  88. if ([channelCats count] > 0) {
  89. GDataCategory *category = [channelCats objectAtIndex:0];
  90. NSString *term = [category term];
  91. return term;
  92. }
  93. return nil;
  94. }
  95. #pragma mark -
  96. - (GDataYouTubeStatistics *)statistics {
  97. return [self objectForExtensionClass:[GDataYouTubeStatistics class]];
  98. }
  99. - (void)setStatistics:(GDataYouTubeStatistics *)obj {
  100. [self setObject:obj forExtensionClass:[GDataYouTubeStatistics class]];
  101. }
  102. - (NSString *)aboutMe {
  103. GDATA_DEBUG_ASSERT_MIN_SERVICE_V2();
  104. GDataYouTubeAboutMe *obj = [self objectForExtensionClass:[GDataYouTubeAboutMe class]];
  105. return [obj stringValue];
  106. }
  107. - (void)setAboutMe:(NSString *)str {
  108. GDATA_DEBUG_ASSERT_MIN_SERVICE_V2();
  109. GDataYouTubeAboutMe *obj = [GDataYouTubeAboutMe valueWithString:str];
  110. [self setObject:obj forExtensionClass:[GDataYouTubeAboutMe class]];
  111. }
  112. - (NSString *)books {
  113. GDataYouTubeBooks *obj = [self objectForExtensionClass:[GDataYouTubeBooks class]];
  114. return [obj stringValue];
  115. }
  116. - (void)setBooks:(NSString *)str {
  117. GDataYouTubeBooks *obj = [GDataYouTubeBooks valueWithString:str];
  118. [self setObject:obj forExtensionClass:[GDataYouTubeBooks class]];
  119. }
  120. - (NSNumber *)age {
  121. GDataYouTubeAge *obj = [self objectForExtensionClass:[GDataYouTubeAge class]];
  122. return [obj intNumberValue];
  123. }
  124. - (void)setAge:(NSNumber *)num {
  125. GDataYouTubeAge *obj = [GDataYouTubeAge valueWithNumber:num];
  126. [self setObject:obj forExtensionClass:[GDataYouTubeAge class]];
  127. }
  128. - (GDataMediaThumbnail *)thumbnail {
  129. GDataMediaThumbnail *obj = [self objectForExtensionClass:[GDataMediaThumbnail class]];
  130. return obj;
  131. }
  132. - (void)setThumbnail:(GDataMediaThumbnail *)obj {
  133. [self setObject:obj forExtensionClass:[GDataMediaThumbnail class]];
  134. }
  135. - (NSString *)company {
  136. GDataYouTubeCompany *obj = [self objectForExtensionClass:[GDataYouTubeCompany class]];
  137. return [obj stringValue];
  138. }
  139. - (void)setCompany:(NSString *)str {
  140. GDataYouTubeCompany *obj = [GDataYouTubeCompany valueWithString:str];
  141. [self setObject:obj forExtensionClass:[GDataYouTubeCompany class]];
  142. }
  143. - (NSString *)gender {
  144. GDataYouTubeGender *obj = [self objectForExtensionClass:[GDataYouTubeGender class]];
  145. return [obj stringValue];
  146. }
  147. - (void)setGender:(NSString *)str {
  148. GDataYouTubeGender *obj = [GDataYouTubeGender valueWithString:str];
  149. [self setObject:obj forExtensionClass:[GDataYouTubeGender class]];
  150. }
  151. - (NSString *)hobbies {
  152. GDataYouTubeHobbies *obj = [self objectForExtensionClass:[GDataYouTubeHobbies class]];
  153. return [obj stringValue];
  154. }
  155. - (void)setHobbies:(NSString *)str {
  156. GDataYouTubeHobbies *obj = [GDataYouTubeHobbies valueWithString:str];
  157. [self setObject:obj forExtensionClass:[GDataYouTubeHobbies class]];
  158. }
  159. - (NSString *)hometown {
  160. GDataYouTubeHometown *obj = [self objectForExtensionClass:[GDataYouTubeHometown class]];
  161. return [obj stringValue];
  162. }
  163. - (void)setHometown:(NSString *)str {
  164. GDataYouTubeHometown *obj = [GDataYouTubeHometown valueWithString:str];
  165. [self setObject:obj forExtensionClass:[GDataYouTubeHometown class]];
  166. }
  167. - (NSString *)location {
  168. GDataYouTubeLocation *obj = [self objectForExtensionClass:[GDataYouTubeLocation class]];
  169. return [obj stringValue];
  170. }
  171. - (void)setLocation:(NSString *)str {
  172. GDataYouTubeLocation *obj = [GDataYouTubeLocation valueWithString:str];
  173. [self setObject:obj forExtensionClass:[GDataYouTubeLocation class]];
  174. }
  175. - (NSString *)movies {
  176. GDataYouTubeMovies *obj = [self objectForExtensionClass:[GDataYouTubeMovies class]];
  177. return [obj stringValue];
  178. }
  179. - (void)setMovies:(NSString *)str {
  180. GDataYouTubeMovies *obj = [GDataYouTubeMovies valueWithString:str];
  181. [self setObject:obj forExtensionClass:[GDataYouTubeMovies class]];
  182. }
  183. - (NSString *)music {
  184. GDataYouTubeMusic *obj = [self objectForExtensionClass:[GDataYouTubeMusic class]];
  185. return [obj stringValue];
  186. }
  187. - (void)setMusic:(NSString *)str {
  188. GDataYouTubeMusic *obj = [GDataYouTubeMusic valueWithString:str];
  189. [self setObject:obj forExtensionClass:[GDataYouTubeMusic class]];
  190. }
  191. - (NSString *)occupation {
  192. GDataYouTubeOccupation *obj = [self objectForExtensionClass:[GDataYouTubeOccupation class]];
  193. return [obj stringValue];
  194. }
  195. - (void)setOccupation:(NSString *)str {
  196. GDataYouTubeOccupation *obj = [GDataYouTubeOccupation valueWithString:str];
  197. [self setObject:obj forExtensionClass:[GDataYouTubeOccupation class]];
  198. }
  199. - (NSString *)relationship {
  200. GDataYouTubeRelationship *obj = [self objectForExtensionClass:[GDataYouTubeRelationship class]];
  201. return [obj stringValue];
  202. }
  203. - (void)setRelationship:(NSString *)str {
  204. GDataYouTubeRelationship *obj = [GDataYouTubeRelationship valueWithString:str];
  205. [self setObject:obj forExtensionClass:[GDataYouTubeRelationship class]];
  206. }
  207. - (NSString *)school {
  208. GDataYouTubeSchool *obj = [self objectForExtensionClass:[GDataYouTubeSchool class]];
  209. return [obj stringValue];
  210. }
  211. - (void)setSchool:(NSString *)str {
  212. GDataYouTubeSchool *obj = [GDataYouTubeSchool valueWithString:str];
  213. [self setObject:obj forExtensionClass:[GDataYouTubeSchool class]];
  214. }
  215. - (NSString *)username {
  216. GDataYouTubeUsername *obj = [self objectForExtensionClass:[GDataYouTubeUsername class]];
  217. return [obj stringValue];
  218. }
  219. - (void)setUsername:(NSString *)str {
  220. GDataYouTubeUsername *obj = [GDataYouTubeUsername valueWithString:str];
  221. [self setObject:obj forExtensionClass:[GDataYouTubeUsername class]];
  222. }
  223. - (NSString *)firstName {
  224. GDataYouTubeFirstName *obj = [self objectForExtensionClass:[GDataYouTubeFirstName class]];
  225. return [obj stringValue];
  226. }
  227. - (void)setFirstName:(NSString *)str {
  228. GDataYouTubeFirstName *obj = [GDataYouTubeFirstName valueWithString:str];
  229. [self setObject:obj forExtensionClass:[GDataYouTubeFirstName class]];
  230. }
  231. - (NSString *)lastName {
  232. GDataYouTubeLastName *obj = [self objectForExtensionClass:[GDataYouTubeLastName class]];
  233. return [obj stringValue];
  234. }
  235. - (void)setLastName:(NSString *)str {
  236. GDataYouTubeLastName *obj = [GDataYouTubeLastName valueWithString:str];
  237. [self setObject:obj forExtensionClass:[GDataYouTubeLastName class]];
  238. }
  239. - (NSArray *)feedLinks {
  240. return [self objectsForExtensionClass:[GDataFeedLink class]];
  241. }
  242. #pragma mark Convenience accessors
  243. - (GDataLink *)videoLogLink {
  244. return [self linkWithRelAttributeValue:kGDataLinkYouTubeVlog];
  245. }
  246. - (GDataLink *)featuredVideoLink {
  247. return [self linkWithRelAttributeValue:kGDataLinkYouTubeFeatured];
  248. }
  249. - (GDataFeedLink *)feedLinkForRel:(NSString *)rel {
  250. return [GDataUtilities firstObjectFromArray:[self feedLinks]
  251. withValue:rel
  252. forKeyPath:@"rel"];
  253. }
  254. - (GDataFeedLink *)favoritesFeedLink {
  255. return [self feedLinkForRel:kGDataLinkYouTubeFavorites];
  256. }
  257. - (GDataFeedLink *)contactsFeedLink {
  258. return [self feedLinkForRel:kGDataLinkYouTubeContacts];
  259. }
  260. - (GDataFeedLink *)inboxFeedLink {
  261. return [self feedLinkForRel:kGDataLinkYouTubeInbox];
  262. }
  263. - (GDataFeedLink *)playlistsFeedLink {
  264. return [self feedLinkForRel:kGDataLinkYouTubePlaylists];
  265. }
  266. - (GDataFeedLink *)subscriptionsFeedLink {
  267. return [self feedLinkForRel:kGDataLinkYouTubeSubscriptions];
  268. }
  269. - (GDataFeedLink *)uploadsFeedLink {
  270. return [self feedLinkForRel:kGDataLinkYouTubeUploads];
  271. }
  272. - (GDataFeedLink *)recentSubscriptionVideosFeedLink {
  273. return [self feedLinkForRel:kGDataLinkYouTubeNewSubscriptionVideos];
  274. }
  275. - (GDataFeedLink *)friendsActivityFeedLink {
  276. return [self feedLinkForRel:kGDataLinkYouTubeFriendsActivity];
  277. }
  278. - (GDataFeedLink *)recentActivityFeedLink {
  279. return [self feedLinkForRel:kGDataLinkYouTubeRecentActivity];
  280. }
  281. @end
  282. #endif // !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_YOUTUBE_SERVICE