2
0
MasterPassword/External/google-plus-ios-sdk/OpenSource/GTL/GTLBatchResult.m
Maarten Billemont 5e7b6ed60e Sharing on Facebook, Twitter and Google+
[FIXED]     Font of navbar.
[FIXED]     A few compile fixes.
[IMPROVED]  Made properties nonatomic.
[ADDED]     Support for facebook, twitter and google+ sharing.
2012-08-25 12:55:07 +02:00

93 lines
2.9 KiB
Objective-C

/* Copyright (c) 2011 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//
// GTLBatchResult.m
//
#import "GTLBatchResult.h"
#import "GTLErrorObject.h"
@implementation GTLBatchResult
@synthesize successes = successes_,
failures = failures_;
- (id)copyWithZone:(NSZone *)zone {
GTLBatchResult* newObject = [super copyWithZone:zone];
newObject.successes = [[self.successes mutableCopyWithZone:zone] autorelease];
newObject.failures = [[self.failures mutableCopyWithZone:zone] autorelease];
return newObject;
}
- (void)dealloc {
[successes_ release];
[failures_ release];
[super dealloc];
}
- (NSString *)description {
return [NSString stringWithFormat:@"%@ %p (successes:%lu failures:%lu)",
[self class], self,
(unsigned long) [self.successes count],
(unsigned long) [self.failures count]];
}
#pragma mark -
- (void)createItemsWithClassMap:(NSDictionary *)batchClassMap {
// This is called by GTLObject objectForJSON:defaultClass:
// JSON is defined to be a dictionary, but for batch results, it really
// is any array.
id json = self.JSON;
GTL_DEBUG_ASSERT([json isKindOfClass:[NSArray class]],
@"didn't get an array for the batch results");
NSArray *jsonArray = json;
NSMutableDictionary *successes = [NSMutableDictionary dictionary];
NSMutableDictionary *failures = [NSMutableDictionary dictionary];
for (NSMutableDictionary *rpcResponse in jsonArray) {
NSString *responseID = [rpcResponse objectForKey:@"id"];
NSMutableDictionary *errorJSON = [rpcResponse objectForKey:@"error"];
if (errorJSON) {
GTLErrorObject *errorObject = [GTLErrorObject objectWithJSON:errorJSON];
[failures setValue:errorObject forKey:responseID];
} else {
NSMutableDictionary *resultJSON = [rpcResponse objectForKey:@"result"];
NSDictionary *surrogates = self.surrogates;
Class defaultClass = [batchClassMap objectForKey:responseID];
id resultObject = [[self class] objectForJSON:resultJSON
defaultClass:defaultClass
surrogates:surrogates
batchClassMap:nil];
if (resultObject == nil) {
// methods like delete return no object
resultObject = [NSNull null];
}
[successes setValue:resultObject forKey:responseID];
}
}
self.successes = successes;
self.failures = failures;
}
@end