- (void)parsingSucceededForRequest:(NSString *)identifier
                    ofResponseType:(SuperCheckoutResponseType)responseType
                     parsedObjects:(NSDictionary *)parsedObject
{
   switch (responseType)
   {
      case SuperCheckoutProductList:
         if([self
            _isValidDelegateForSelector:@selector(productListReceived:forRequest:)])
         {
            NSArray *result = [parsedObject objectForKey:@"result"];
            NSMutableArray *newResult =
              [NSMutableArray arrayWithCapacity:[result count]];

            for(NSDictionary *obj in result)
            {
               Product *prod = [[Product alloc] initWithDictionary:obj];
               [newResult addObject:prod];

               [prod release];
            }

            [delegate productListReceived:
               [NSArray arrayWithArray:newResult] forRequest:identifier];
         }
         break;
      case SuperCheckoutCartContents:
         if([self
            _isValidDelegateForSelector:@selector(cartContentsReceived:forRequest:)])
         {
            [delegate cartContentsReceived:
               [parsedObject objectForKey:@"result"] forRequest:identifier];
         }

      default:
         break;
   }
}
