初始化提交
This commit is contained in:
75
WebDriverAgentLib/Utilities/FBErrorBuilder.m
Normal file
75
WebDriverAgentLib/Utilities/FBErrorBuilder.m
Normal file
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import "FBErrorBuilder.h"
|
||||
|
||||
static NSString *const FBWebServerErrorDomain = @"com.facebook.WebDriverAgent";
|
||||
|
||||
@interface FBErrorBuilder ()
|
||||
@property (nonatomic, copy) NSString *errorDescription;
|
||||
@property (nonatomic, strong) NSError *innerError;
|
||||
@end
|
||||
|
||||
@implementation FBErrorBuilder
|
||||
|
||||
+ (instancetype)builder
|
||||
{
|
||||
return [FBErrorBuilder new];
|
||||
}
|
||||
|
||||
- (instancetype)withDescription:(NSString *)description
|
||||
{
|
||||
self.errorDescription = description;
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)withDescriptionFormat:(NSString *)format, ...
|
||||
{
|
||||
va_list argList;
|
||||
va_start(argList, format);
|
||||
self.errorDescription = [[NSString alloc] initWithFormat:format arguments:argList];
|
||||
va_end(argList);
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)withInnerError:(NSError *)error
|
||||
{
|
||||
self.innerError = error;
|
||||
return self;
|
||||
}
|
||||
|
||||
- (BOOL)buildError:(NSError **)errorOut
|
||||
{
|
||||
if (errorOut) {
|
||||
*errorOut = [self build];
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSError *)build
|
||||
{
|
||||
return
|
||||
[NSError errorWithDomain:FBWebServerErrorDomain
|
||||
code:1
|
||||
userInfo:[self buildUserInfo]
|
||||
];
|
||||
}
|
||||
|
||||
- (NSDictionary *)buildUserInfo
|
||||
{
|
||||
NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
|
||||
if (self.errorDescription) {
|
||||
userInfo[NSLocalizedDescriptionKey] = self.errorDescription;
|
||||
}
|
||||
if (self.innerError) {
|
||||
userInfo[NSUnderlyingErrorKey] = self.innerError;
|
||||
}
|
||||
return userInfo.copy;
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user