TyphoonOptionMatcher

Objective-C

@interface TyphoonOptionMatcher : NSObject

/** If 'option' equals 'optionValue' then use 'injection' */
- (void)caseEqual:(id)optionValue use:(id)injection;

/** If 'option' is kind of class 'optionClass' then use 'injection' */
- (void)caseKindOfClass:(Class)optionClass use:(id)injection;

/** If 'option' is member of class 'optionClass' then use 'injection' */
- (void)caseMemberOfClass:(Class)optionClass use:(id)injection;

/** When matcher can't match injection from optionValue, use 'injection' */
- (void)defaultUse:(id)injection;

/**
* If this method called, matcher will find definition using 'option' value as key for definition.
* @note When matching definition from 'option', 'caseEqual:use:', 'caseKindOfClass:use:' and 'caseMemberOfClass:use:' has higher priority than matching by definition key */
- (void)useDefinitionWithKeyMatchedOptionValue;

@end

Swift

class TyphoonOptionMatcher : NSObject

Undocumented

  • If ‘option’ equals ‘optionValue’ then use ‘injection’

    Declaration

    Objective-C

    - (void)caseEqual:(id)optionValue use:(id)injection;

    Swift

    func caseEqual(_ optionValue: Any!, use injection: Any!)
  • If ‘option’ is kind of class ‘optionClass’ then use ‘injection’

    Declaration

    Objective-C

    - (void)caseKindOfClass:(Class)optionClass use:(id)injection;

    Swift

    func caseKind(of optionClass: AnyClass!, use injection: Any!)
  • If ‘option’ is member of class ‘optionClass’ then use ‘injection’

    Declaration

    Objective-C

    - (void)caseMemberOfClass:(Class)optionClass use:(id)injection;

    Swift

    func caseMember(of optionClass: AnyClass!, use injection: Any!)
  • When matcher can’t match injection from optionValue, use ‘injection’

    Declaration

    Objective-C

    - (void)defaultUse:(id)injection;

    Swift

    func defaultUse(_ injection: Any!)
  • If this method called, matcher will find definition using ‘option’ value as key for definition.

    Note

    When matching definition from ‘option’, ‘caseEqual:use:’, ‘caseKindOfClass:use:’ and ‘caseMemberOfClass:use:’ has higher priority than matching by definition key

    Declaration

    Objective-C

    - (void)useDefinitionWithKeyMatchedOptionValue;

    Swift

    func useDefinitionWithKeyMatchedOptionValue()