2
0
MasterPassword/External/google-plus-ios-sdk/OpenSource/GTL/GTLErrorObject.m

79 lines
2.3 KiB
Mathematica
Raw Normal View History

/* 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.
*/
//
// GTLErrorObject.m
//
#import "GTLErrorObject.h"
#import "GTLService.h"
@implementation GTLErrorObject
@dynamic code;
@dynamic message;
@dynamic data;
+ (NSDictionary *)arrayPropertyToClassMap {
NSDictionary *map = [NSDictionary dictionaryWithObject:[GTLErrorObjectData class]
forKey:@"data"];
return map;
}
- (NSError *)foundationError {
NSMutableDictionary *userInfo;
// This structured GTLErrorObject will be available in the error's userInfo
// dictionary
userInfo = [NSMutableDictionary dictionaryWithObject:self
forKey:kGTLStructuredErrorKey];
NSString *reasonStr = self.message;
if (reasonStr) {
// We always store an error in the userInfo key "error"
[userInfo setObject:reasonStr
forKey:kGTLServerErrorStringKey];
// Store a user-readable "reason" to show up when an error is logged,
// in parentheses like NSError does it
NSString *parenthesized = [NSString stringWithFormat:@"(%@)", reasonStr];
[userInfo setObject:parenthesized
forKey:NSLocalizedFailureReasonErrorKey];
}
NSInteger code = [self.code integerValue];
NSError *error = [NSError errorWithDomain:kGTLJSONRPCErrorDomain
code:code
userInfo:userInfo];
return error;
}
+ (GTLErrorObject *)underlyingObjectForError:(NSError *)foundationError {
NSDictionary *userInfo = [foundationError userInfo];
GTLErrorObject *errorObj = [userInfo objectForKey:kGTLStructuredErrorKey];
return errorObj;
}
@end
@implementation GTLErrorObjectData
@dynamic domain;
@dynamic reason;
@dynamic message;
@dynamic location;
@end