SVGKParseResult.m 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #import "SVGKParseResult.h"
  2. #import "SVGKDefine_Private.h"
  3. @implementation SVGKParseResult
  4. @synthesize libXMLFailed;
  5. @synthesize parsedDocument, rootOfSVGTree, namespacesEncountered;
  6. @synthesize warnings, errorsRecoverable, errorsFatal;
  7. #if ENABLE_PARSER_EXTENSIONS_CUSTOM_DATA
  8. @synthesize extensionsData;
  9. #endif
  10. - (id)init
  11. {
  12. self = [super init];
  13. if (self) {
  14. self.warnings = [NSMutableArray array];
  15. self.errorsRecoverable = [NSMutableArray array];
  16. self.errorsFatal = [NSMutableArray array];
  17. self.namespacesEncountered = [NSMutableDictionary dictionary];
  18. #if ENABLE_PARSER_EXTENSIONS_CUSTOM_DATA
  19. self.extensionsData = [NSMutableDictionary dictionary];
  20. #endif
  21. }
  22. return self;
  23. }
  24. -(NSString *)description
  25. {
  26. return [NSString stringWithFormat:@"[Parse result: %lu warnings, %lu errors(recoverable), %lu errors (fatal). %@%@", (unsigned long)self.warnings.count, (unsigned long)self.errorsRecoverable.count, (unsigned long)self.errorsFatal.count, (self.errorsFatal.count > 0)?@"First fatal error: ":@"Last recoverable error: ", self.errorsFatal.count > 0 ? [self.errorsFatal firstObject] : self.errorsRecoverable.count > 0 ? [self.errorsRecoverable lastObject] : @"(n/a)"];
  27. }
  28. -(void) addSourceError:(NSError*) fatalError
  29. {
  30. SVGKitLogError(@"[%@] SVG ERROR: %@", [self class], fatalError);
  31. [self.errorsRecoverable addObject:fatalError];
  32. }
  33. -(void) addParseWarning:(NSError*) warning
  34. {
  35. SVGKitLogWarn(@"[%@] SVG WARNING: %@", [self class], warning);
  36. [self.warnings addObject:warning];
  37. }
  38. -(void) addParseErrorRecoverable:(NSError*) recoverableError
  39. {
  40. SVGKitLogWarn(@"[%@] SVG WARNING (recoverable): %@", [self class], recoverableError);
  41. [self.errorsRecoverable addObject:recoverableError];
  42. }
  43. -(void) addParseErrorFatal:(NSError*) fatalError
  44. {
  45. SVGKitLogError(@"[%@] SVG ERROR: %@", [self class], fatalError);
  46. [self.errorsFatal addObject:fatalError];
  47. }
  48. -(void) addSAXError:(NSError*) saxError
  49. {
  50. SVGKitLogWarn(@"[%@] SVG ERROR: %@", [self class], [saxError localizedDescription]);
  51. [self.errorsFatal addObject:saxError];
  52. }
  53. #if ENABLE_PARSER_EXTENSIONS_CUSTOM_DATA
  54. -(NSMutableDictionary*) dictionaryForParserExtension:(NSObject<SVGKParserExtension>*) extension
  55. {
  56. NSMutableDictionary* d = [self.extensionsData objectForKey:[extension class]];
  57. if( d == nil )
  58. {
  59. d = [NSMutableDictionary dictionary];
  60. [self.extensionsData setObject:d forKey:[extension class]];
  61. }
  62. return d;
  63. }
  64. #endif
  65. @end