aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/imap/MCIMAPSearchExpression.h
blob: b65465070a6958ca57b1d41df1f1d2cddc7a25c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef __MAILCORE_MCIMAPSEARCHEXPRESSION_H_

#define __MAILCORE_MCIMAPSEARCHEXPRESSION_H_

#include <mailcore/MCBaseTypes.h>
#include <mailcore/MCMessageConstants.h>

#ifdef __cplusplus

namespace mailcore {

	class IMAPSearchExpression : public Object {
	public:
		IMAPSearchExpression();
		virtual ~IMAPSearchExpression();
		
		virtual IMAPSearchKind kind();
		virtual String * header();
		virtual String * value();
		virtual IMAPSearchExpression * leftExpression();
		virtual IMAPSearchExpression * rightExpression();
		
		static IMAPSearchExpression * searchFrom(String * value);
		static IMAPSearchExpression * searchRecipient(String * value);
		static IMAPSearchExpression * searchSubject(String * value);
		static IMAPSearchExpression * searchContent(String * value);
		static IMAPSearchExpression * searchHeader(String * header, String * value);
		static IMAPSearchExpression * searchAnd(IMAPSearchExpression * left, IMAPSearchExpression * right);
		static IMAPSearchExpression * searchOr(IMAPSearchExpression * left, IMAPSearchExpression * right);
        
    public: // subclass behavior
		IMAPSearchExpression(IMAPSearchExpression * other);
		virtual String * description();
		virtual Object * copy();
        
	private:
		IMAPSearchKind mKind;
		String * mHeader;
		String * mValue;
		IMAPSearchExpression * mLeftExpression;
		IMAPSearchExpression * mRightExpression;
		void init();
	};
	
}

#endif

#endif