/core/externals/update-engine/externals/gdata-objectivec-client/Source/Clients/Finance/GDataEntryFinancePosition.m

http://macfuse.googlecode.com/ · Objective C · 124 lines · 72 code · 35 blank · 17 comment · 3 complexity · 856fdeb230e9652b67425098178d1a3a 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. // GDataEntryFinancePosition.m
  17. //
  18. #if !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_FINANCE_SERVICE
  19. #import "GDataEntryFinancePosition.h"
  20. #import "GDataEntryFinancePortfolio.h" // for namespace and constants
  21. @implementation GDataEntryFinancePosition
  22. + (GDataEntryFinancePosition *)positionEntry {
  23. GDataEntryFinancePosition *obj;
  24. obj = [self object];
  25. [obj setNamespaces:[GDataEntryFinancePortfolio financeNamespaces]];
  26. return obj;
  27. }
  28. #pragma mark -
  29. + (NSString *)standardEntryKind {
  30. return kGDataCategoryFinancePosition;
  31. }
  32. + (void)load {
  33. [self registerEntryClass];
  34. }
  35. - (void)addExtensionDeclarations {
  36. [super addExtensionDeclarations];
  37. Class entryClass = [self class];
  38. [self addExtensionDeclarationForParentClass:entryClass
  39. childClasses:
  40. [GDataPositionData class],
  41. [GDataFinanceSymbol class],
  42. [GDataFeedLink class],
  43. nil];
  44. }
  45. #if !GDATA_SIMPLE_DESCRIPTIONS
  46. - (NSMutableArray *)itemsForDescription {
  47. NSMutableArray *items = [super itemsForDescription];
  48. [self addToArray:items objectDescriptionIfNonNil:[self symbol] withName:@"symbol"];
  49. [self addToArray:items objectDescriptionIfNonNil:[self positionData] withName:@"position"];
  50. [self addToArray:items objectDescriptionIfNonNil:[self feedLink] withName:@"feedLink"];
  51. return items;
  52. }
  53. #endif
  54. + (NSString *)defaultServiceVersion {
  55. return kGDataFinanceDefaultServiceVersion;
  56. }
  57. #pragma mark -
  58. - (void)setPositionData:(GDataPositionData *)obj {
  59. [self setObject:obj forExtensionClass:[GDataPositionData class]];
  60. }
  61. - (GDataPositionData *)positionData {
  62. return [self objectForExtensionClass:[GDataPositionData class]];
  63. }
  64. - (void)setFeedLink:(GDataFeedLink *)feedLink {
  65. [self setObject:feedLink forExtensionClass:[GDataFeedLink class]];
  66. }
  67. - (GDataFeedLink *)feedLink {
  68. return [self objectForExtensionClass:[GDataFeedLink class]];
  69. }
  70. - (void)setSymbol:(GDataFinanceSymbol *)obj {
  71. [self setObject:obj forExtensionClass:[GDataFinanceSymbol class]];
  72. }
  73. - (GDataFinanceSymbol *)symbol {
  74. return [self objectForExtensionClass:[GDataFinanceSymbol class]];
  75. }
  76. #pragma mark Convenience accessors
  77. - (NSURL *)transactionURL {
  78. GDataFeedLink *feedLink = [self feedLink];
  79. if (feedLink) {
  80. NSString *urlStr = [feedLink href];
  81. if ([urlStr length] > 0) {
  82. NSURL *url = [NSURL URLWithString:urlStr];
  83. return url;
  84. }
  85. }
  86. return nil;
  87. }
  88. @end
  89. #endif // !GDATA_REQUIRE_SERVICE_INCLUDES || GDATA_INCLUDE_FINANCE_SERVICE