单军华
2018-07-11 acdf41fa3b32b628d9d7bba1f975060567dad3d7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//
//  ASICloudFilesContainerXMLParserDelegate.m
//
//  Created by Michael Mayo on 1/10/10.
//
 
#import "ASICloudFilesContainerXMLParserDelegate.h"
#import "ASICloudFilesContainer.h"
 
 
@implementation ASICloudFilesContainerXMLParserDelegate
 
@synthesize containerObjects, currentElement, currentContent, currentObject;
 
#pragma mark -
#pragma mark XML Parser Delegate
 
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
    [self setCurrentElement:elementName];
    
    if ([elementName isEqualToString:@"container"]) {
        [self setCurrentObject:[ASICloudFilesContainer container]];
    }
    [self setCurrentContent:@""];
}
 
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
 
    if ([elementName isEqualToString:@"name"]) {
        [self currentObject].name = [self currentContent];
    } else if ([elementName isEqualToString:@"count"]) {
        [self currentObject].count = [[self currentContent] intValue];
    } else if ([elementName isEqualToString:@"bytes"]) {
        [self currentObject].bytes = [[self currentContent] intValue];
    } else if ([elementName isEqualToString:@"cdn_enabled"]) {
        [self currentObject].cdnEnabled = [[self currentObject] isEqual:@"True"];
    } else if ([elementName isEqualToString:@"ttl"]) {
        [self currentObject].ttl = [[self currentContent] intValue];
    } else if ([elementName isEqualToString:@"cdn_url"]) {
        [self currentObject].cdnURL = [self currentContent];
    } else if ([elementName isEqualToString:@"log_retention"]) {
        [self currentObject].logRetention = [[self currentObject] isEqual:@"True"];
    } else if ([elementName isEqualToString:@"referrer_acl"]) {
        [self currentObject].referrerACL = [self currentContent];
    } else if ([elementName isEqualToString:@"useragent_acl"]) {
        [self currentObject].useragentACL = [self currentContent];
    } else if ([elementName isEqualToString:@"container"]) {
        // we're done with this container.  time to move on to the next
        if (containerObjects == nil) {
            containerObjects = [[NSMutableArray alloc] init];
        }
        [containerObjects addObject:currentObject];
        [self setCurrentObject:nil];
    }
}
 
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
    [self setCurrentContent:[[self currentContent] stringByAppendingString:string]];
}
 
#pragma mark -
#pragma mark Memory Management
 
- (void)dealloc {
    [containerObjects release];
    [currentElement release];
    [currentContent release];
    [currentObject release];
    [super dealloc];
}
 
@end