// // 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