// // OBSMTLTransformerErrorHandling.h // Mantle // // Created by Robert Böhnke on 10/6/13. // Copyright (c) 2013 GitHub. All rights reserved. // #import /// The domain for errors originating from the OBSMTLTransformerErrorHandling /// protocol. /// /// Transformers conforming to this protocol are expected to use this error /// domain if the transformation fails. extern NSString *const OBSMTLTransformerErrorHandlingErrorDomain; /// Used to indicate that the input value was illegal. /// /// Transformers conforming to this protocol are expected to use this error code /// if the transformation fails due to an invalid input value. extern const NSInteger OBSMTLTransformerErrorHandlingErrorInvalidInput; /// Associated with the invalid input value. /// /// Transformers conforming to this protocol are expected to associate this key /// with the invalid input in the userInfo dictionary. extern NSString *const OBSMTLTransformerErrorHandlingInputValueErrorKey; /// This protocol can be implemented by NSValueTransformer subclasses to /// communicate errors that occur during transformation. @protocol OBSMTLTransformerErrorHandling @required /// Transforms a value, returning any error that occurred during transformation. /// /// value - The value to transform. /// success - If not NULL, this will be set to a boolean indicating whether the /// transformation was successful. /// error - If not NULL, this may be set to an error that occurs during /// transforming the value. /// /// Returns the result of the transformation which may be nil. Clients should /// inspect the success parameter to decide how to proceed with the result. - (id)transformedValue:(id)value success:(BOOL *)success error:(NSError **)error; @optional /// Reverse-transforms a value, returning any error that occurred during /// transformation. /// /// Transformers conforming to this protocol are expected to implemented this /// method if they support reverse transformation. /// /// value - The value to transform. /// success - If not NULL, this will be set to a boolean indicating whether the /// transformation was successful. /// error - If not NULL, this may be set to an error that occurs during /// transforming the value. /// /// Returns the result of the reverse transformation which may be nil. Clients /// should inspect the success parameter to decide how to proceed with the /// result. - (id)reverseTransformedValue:(id)value success:(BOOL *)success error:(NSError **)error; @end