/Source/externals/GData/Source/Clients/Spreadsheets/GDataEntrySpreadsheetTable.m

http://google-email-uploader-mac.googlecode.com/ · Objective C · 143 lines · 90 code · 36 blank · 17 comment · 1 complexity · ef019f54565d87f745736e43da86bf6d MD5 · raw file

  1. /* Copyright (c) 2009 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. // GDataEntrySpreadsheetTable.m
  17. //
  18. #if !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_SPREADSHEET_SERVICE
  19. #define GDATAENTRYSPREADSHEETTABLE_DEFINE_GLOBALS 1
  20. #import "GDataEntrySpreadsheetTable.h"
  21. #import "GDataSpreadsheetConstants.h"
  22. #import "GDataSpreadsheetData.h"
  23. #import "GDataSpreadsheetHeader.h"
  24. @implementation GDataWorksheetName
  25. + (NSString *)extensionElementURI { return kGDataNamespaceGSpread; }
  26. + (NSString *)extensionElementPrefix { return kGDataNamespaceGSpreadPrefix; }
  27. + (NSString *)extensionElementLocalName { return @"worksheet"; }
  28. - (NSString *)attributeName {
  29. return @"name";
  30. }
  31. + (GDataWorksheetName *)worksheetNameWithString:(NSString *)str {
  32. return [self valueWithString:str];
  33. }
  34. @end
  35. @implementation GDataEntrySpreadsheetTable
  36. + (GDataEntrySpreadsheetTable *)tableEntry {
  37. GDataEntrySpreadsheetTable *entry = [self object];
  38. [entry setNamespaces:[GDataSpreadsheetConstants spreadsheetNamespaces]];
  39. return entry;
  40. }
  41. #pragma mark -
  42. + (NSString *)standardEntryKind {
  43. return kGDataCategorySpreadsheetTable;
  44. }
  45. + (void)load {
  46. [self registerEntryClass];
  47. }
  48. - (void)addExtensionDeclarations {
  49. [super addExtensionDeclarations];
  50. Class entryClass = [self class];
  51. [self addExtensionDeclarationForParentClass:entryClass
  52. childClasses:
  53. [GDataSpreadsheetData class],
  54. [GDataSpreadsheetHeader class],
  55. [GDataWorksheetName class],
  56. nil];
  57. }
  58. #if !GDATA_SIMPLE_DESCRIPTIONS
  59. - (NSMutableArray *)itemsForDescription {
  60. static struct GDataDescriptionRecord descRecs[] = {
  61. { @"header", @"spreadsheetHeader", kGDataDescValueLabeled },
  62. { @"data", @"spreadsheetData", kGDataDescValueLabeled },
  63. { @"worksheet", @"worksheetName.stringValue", kGDataDescValueLabeled },
  64. { nil, nil,(GDataDescRecTypes) 0 }
  65. };
  66. NSMutableArray *items = [super itemsForDescription];
  67. [self addDescriptionRecords:descRecs toItems:items];
  68. return items;
  69. }
  70. #endif
  71. + (NSString *)defaultServiceVersion {
  72. return kGDataSpreadsheetDefaultServiceVersion;
  73. }
  74. #pragma mark -
  75. - (GDataSpreadsheetData *)spreadsheetData {
  76. return [self objectForExtensionClass:[GDataSpreadsheetData class]];
  77. }
  78. - (void)setSpreadsheetData:(GDataSpreadsheetData *)obj {
  79. [self setObject:obj forExtensionClass:[GDataSpreadsheetData class]];
  80. }
  81. - (GDataSpreadsheetHeader *)spreadsheetHeader {
  82. return [self objectForExtensionClass:[GDataSpreadsheetHeader class]];
  83. }
  84. - (void)setSpreadsheetHeader:(GDataSpreadsheetHeader *)obj {
  85. [self setObject:obj forExtensionClass:[GDataSpreadsheetHeader class]];
  86. }
  87. - (void)setSpreadsheetHeaderWithRow:(int)row {
  88. GDataSpreadsheetHeader *header = [GDataSpreadsheetHeader headerWithRow:row];
  89. [self setSpreadsheetHeader:header];
  90. }
  91. - (GDataWorksheetName *)worksheetName {
  92. return [self objectForExtensionClass:[GDataWorksheetName class]];
  93. }
  94. - (void)setWorksheetName:(GDataWorksheetName *)obj {
  95. [self setObject:obj forExtensionClass:[GDataWorksheetName class]];
  96. }
  97. - (void)setWorksheetNameWithString:(NSString *)str {
  98. [self setWorksheetName:[GDataWorksheetName worksheetNameWithString:str]];
  99. }
  100. #pragma mark -
  101. - (NSURL *)recordFeedURL {
  102. GDataEntryContent *content = [self content];
  103. NSURL *sourceURL = [content sourceURL];
  104. return sourceURL;
  105. }
  106. @end
  107. #endif // !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_SPREADSHEET_SERVICE