/core/externals/update-engine/externals/gdata-objectivec-client/Source/Elements/GDataRating.m

http://macfuse.googlecode.com/ · Objective C · 113 lines · 68 code · 24 blank · 21 comment · 3 complexity · a1392ef6d0f3d4cf788a1dd0a8e9e227 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. // GDataRating.m
  17. //
  18. #if !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_BOOKS_SERVICE \
  19. || GDATA_INCLUDE_CALENDAR_SERVICE || GDATA_INCLUDE_YOUTUBE_SERVICE
  20. #define GDATARATING_DEFINE_GLOBALS 1
  21. #import "GDataRating.h"
  22. static NSString* const kRelAttr = @"rel";
  23. static NSString* const kValueAttr = @"value";
  24. static NSString* const kMaxAttr = @"max";
  25. static NSString* const kMinAttr = @"min";
  26. static NSString* const kAverageAttr = @"average";
  27. static NSString* const kNumRatersAttr = @"numRaters";
  28. @implementation GDataRating
  29. // rating, as in
  30. // <gd:rating rel="http://schemas.google.com/g/2005#price" value="5" min="1" max="5"/>
  31. //
  32. // http://code.google.com/apis/gdata/common-elements.html#gdRating
  33. + (NSString *)extensionElementURI { return kGDataNamespaceGData; }
  34. + (NSString *)extensionElementPrefix { return kGDataNamespaceGDataPrefix; }
  35. + (NSString *)extensionElementLocalName { return @"rating"; }
  36. + (GDataRating *)ratingWithValue:(NSInteger)value
  37. max:(NSInteger)max
  38. min:(NSInteger)min {
  39. GDataRating *obj = [self object];
  40. [obj setValue:[NSNumber numberWithInt:(int)value]];
  41. [obj setMax:[NSNumber numberWithInt:(int)max]];
  42. [obj setMin:[NSNumber numberWithInt:(int)min]];
  43. return obj;
  44. }
  45. - (void)addParseDeclarations {
  46. NSArray *attrs = [NSArray arrayWithObjects:
  47. kRelAttr, kValueAttr, kMaxAttr, kMinAttr,
  48. kAverageAttr, kNumRatersAttr, nil];
  49. [self addLocalAttributeDeclarations:attrs];
  50. }
  51. #pragma mark -
  52. - (NSString *)rel {
  53. return [self stringValueForAttribute:kRelAttr];
  54. }
  55. - (void)setRel:(NSString *)str {
  56. [self setStringValue:str forAttribute:kRelAttr];
  57. }
  58. - (NSNumber *)value {
  59. return [self intNumberForAttribute:kValueAttr];
  60. }
  61. - (void)setValue:(NSNumber *)num {
  62. [self setStringValue:[num stringValue] forAttribute:kValueAttr];
  63. }
  64. - (NSNumber *)max {
  65. return [self intNumberForAttribute:kMaxAttr];
  66. }
  67. - (void)setMax:(NSNumber *)num {
  68. [self setStringValue:[num stringValue] forAttribute:kMaxAttr];
  69. }
  70. - (NSNumber *)min {
  71. return [self intNumberForAttribute:kMinAttr];
  72. }
  73. - (void)setMin:(NSNumber *)num {
  74. [self setStringValue:[num stringValue] forAttribute:kMinAttr];
  75. }
  76. - (NSNumber *)average {
  77. return [self doubleNumberForAttribute:kAverageAttr];
  78. }
  79. - (void)setAverage:(NSNumber *)num {
  80. [self setStringValue:[num stringValue] forAttribute:kAverageAttr];
  81. }
  82. - (NSNumber *)numberOfRaters {
  83. return [self intNumberForAttribute:kNumRatersAttr];
  84. }
  85. - (void)setNumberOfRaters:(NSNumber *)num {
  86. [self setStringValue:[num stringValue] forAttribute:kNumRatersAttr];
  87. }
  88. @end
  89. #endif // #if !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_*_SERVICE