main
 1//
 2// Licensed under the terms in License.txt
 3//
 4// Copyright 2010 Allen Ding. All rights reserved.
 5//
 6
 7#import "KiwiConfiguration.h"
 8
 9@interface KWMessagePattern : NSObject<NSCopying> {
10@private
11    SEL selector;
12    NSArray *argumentFilters;
13}
14
15#pragma mark -
16#pragma mark Initializing
17
18- (id)initWithSelector:(SEL)aSelector;
19- (id)initWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray;
20- (id)initWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList;
21
22+ (id)messagePatternWithSelector:(SEL)aSelector;
23+ (id)messagePatternWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray;
24+ (id)messagePatternWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList;
25
26+ (id)messagePatternFromInvocation:(NSInvocation *)anInvocation;
27
28#pragma mark -
29#pragma mark Properties
30
31@property (nonatomic, readonly) SEL selector;
32@property (nonatomic, readonly) NSArray *argumentFilters;
33
34#pragma mark -
35#pragma mark Matching Invocations
36
37- (BOOL)matchesInvocation:(NSInvocation *)anInvocation;
38
39#pragma mark -
40#pragma mark Comparing Message Patterns
41
42- (BOOL)isEqualToMessagePattern:(KWMessagePattern *)aMessagePattern;
43
44#pragma mark -
45#pragma mark Retrieving String Representations
46
47- (NSString *)stringValue;
48
49@end