Mercurial > projects > dstep
annotate dstep/foundation/NSExpression.d @ 15:7ff919f595d5
Added the Foundation framework, again
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Mon, 03 Aug 2009 15:31:48 +0200 |
parents | 89f3c3ef1fd2 |
children | 19885b43130e |
rev | line source |
---|---|
14 | 1 /** |
2 * Copyright: Copyright (c) 2009 Jacob Carlborg. | |
3 * Authors: Jacob Carlborg | |
4 * Version: Initial created: Aug 3, 2009 | |
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) | |
6 */ | |
7 module dstep.foundation.NSExpression; | |
8 | |
9 import dstep.foundation.NSArray; | |
10 import dstep.foundation.NSMutableDictionary; | |
11 import dstep.foundation.NSObject; | |
12 import dstep.foundation.NSPredicate; | |
13 import dstep.foundation.NSString; | |
14 import dstep.objc.bridge.Bridge; | |
15 import dstep.objc.objc : id; | |
16 | |
17 alias NSUInteger NSExpressionType; | |
18 | |
19 enum | |
20 { | |
21 NSConstantValueExpressionType = 0, | |
22 NSEvaluatedObjectExpressionType, | |
23 NSVariableExpressionType, | |
24 NSKeyPathExpressionType, | |
25 NSFunctionExpressionType, | |
26 NSUnionSetExpressionType, | |
27 NSIntersectSetExpressionType, | |
28 NSMinusSetExpressionType, | |
29 NSSubqueryExpressionType = 13, | |
30 NSAggregateExpressionType | |
31 } | |
32 | |
33 class NSExpression : NSObject, INSCoding, INSCopying | |
34 { | |
35 mixin ObjcWrap; | |
36 | |
37 static NSExpression expressionForConstantValue (Object obj) | |
38 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
39 return invokeObjcSelfClass!(NSExpression, "expressionForConstantValue:", Object)(obj); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
40 } |
14 | 41 |
42 static NSExpression expressionForEvaluatedObject () | |
43 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
44 return invokeObjcSelfClass!(NSExpression, "expressionForEvaluatedObject"); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
45 } |
14 | 46 |
47 static NSExpression expressionForVariable (NSString string) | |
48 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
49 return invokeObjcSelfClass!(NSExpression, "expressionForVariable:", NSString)(string); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
50 } |
14 | 51 |
52 static NSExpression expressionForKeyPath (NSString keyPath) | |
53 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
54 return invokeObjcSelfClass!(NSExpression, "expressionForKeyPath:", NSString)(keyPath); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
55 } |
14 | 56 |
57 static NSExpression expressionForFunction (NSString name, NSArray parameters) | |
58 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
59 return invokeObjcSelfClass!(NSExpression, "expressionForFunction:arguments:", NSString, NSArray)(name, parameters); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
60 } |
14 | 61 |
62 static NSExpression expressionForAggregate (NSArray subexpressions) | |
63 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
64 return invokeObjcSelfClass!(NSExpression, "expressionForAggregate:", NSArray)(subexpressions); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
65 } |
14 | 66 |
67 static NSExpression expressionForUnionSet (NSExpression left, NSExpression right) | |
68 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
69 return invokeObjcSelfClass!(NSExpression, "expressionForUnionSet:with:", NSExpression, NSExpression)(left, right); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
70 } |
14 | 71 |
72 static NSExpression expressionForIntersectSet (NSExpression left, NSExpression right) | |
73 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
74 return invokeObjcSelfClass!(NSExpression, "expressionForIntersectSet:with:", NSExpression, NSExpression)(left, right); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
75 } |
14 | 76 |
77 static NSExpression expressionForMinusSet (NSExpression left, NSExpression right) | |
78 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
79 return invokeObjcSelfClass!(NSExpression, "expressionForMinusSet:with:", NSExpression, NSExpression)(left, right); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
80 } |
14 | 81 |
82 static NSExpression expressionForSubquery (NSExpression expression, NSString variable, Object predicate) | |
83 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
84 return invokeObjcSelfClass!(NSExpression, "expressionForSubquery:usingIteratorVariable:predicate:", NSExpression, NSString, Object)(expression, variable, predicate); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
85 } |
14 | 86 |
87 static NSExpression expressionForFunction (NSExpression target, NSString name, NSArray parameters) | |
88 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
89 return invokeObjcSelfClass!(NSExpression, "expressionForFunction:selectorName:arguments:", NSExpression, NSString, NSArray)(target, name, parameters); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
90 } |
14 | 91 |
92 Object initWithExpressionType (uint type) | |
93 { | |
94 return invokeObjcSelf!(Object, "initWithExpressionType:", uint)(type); | |
95 } | |
96 | |
97 this (uint type) | |
98 { | |
99 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
100 id result = Bridge.invokeObjcMethod!(id, "initWithExpressionType:", uint)(objcObject, type); | |
101 | |
102 if (result) | |
103 objcObject = ret; | |
104 | |
105 dObject = this; | |
106 } | |
107 | |
108 uint expressionType () | |
109 { | |
110 return invokeObjcSelf!(uint, "expressionType"); | |
111 } | |
112 | |
113 Object constantValue () | |
114 { | |
115 return invokeObjcSelf!(Object, "constantValue"); | |
116 } | |
117 | |
118 NSString keyPath () | |
119 { | |
120 return invokeObjcSelf!(NSString, "keyPath"); | |
121 } | |
122 | |
123 NSString function_ () | |
124 { | |
125 return invokeObjcSelf!(NSString, "function"); | |
126 } | |
127 | |
128 NSString variable () | |
129 { | |
130 return invokeObjcSelf!(NSString, "variable"); | |
131 } | |
132 | |
133 NSExpression operand () | |
134 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
135 id result = invokeObjcSelf!(id, "operand"); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
136 return result is this.objcObject ? this : (result !is null ? new NSExpression(result) : null); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
137 } |
14 | 138 |
139 NSArray arguments () | |
140 { | |
141 return invokeObjcSelf!(NSArray, "arguments"); | |
142 } | |
143 | |
144 Object collection () | |
145 { | |
146 return invokeObjcSelf!(Object, "collection"); | |
147 } | |
148 | |
149 NSPredicate predicate () | |
150 { | |
151 return invokeObjcSelf!(NSPredicate, "predicate"); | |
152 } | |
153 | |
154 NSExpression leftExpression () | |
155 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
156 id result = invokeObjcSelf!(id, "leftExpression"); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
157 return result is this.objcObject ? this : (result !is null ? new NSExpression(result) : null); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
158 } |
14 | 159 |
160 NSExpression rightExpression () | |
161 { | |
15
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
162 id result = invokeObjcSelf!(id, "rightExpression"); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
163 return result is this.objcObject ? this : (result !is null ? new NSExpression(result) : null); |
7ff919f595d5
Added the Foundation framework, again
Jacob Carlborg <doob@me.com>
parents:
14
diff
changeset
|
164 } |
14 | 165 |
166 Object expressionValueWithObject (Object object, NSMutableDictionary context) | |
167 { | |
168 return invokeObjcSelf!(Object, "expressionValueWithObject:context:", Object, NSMutableDictionary)(object, context); | |
169 } | |
170 | |
171 void encodeWithCoder (NSCoder aCoder) | |
172 { | |
173 return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder); | |
174 } | |
175 | |
176 Object initWithCoder (NSCoder aDecoder) | |
177 { | |
178 return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder); | |
179 } | |
180 | |
181 this (NSCoder aDecoder) | |
182 { | |
183 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
184 id result = Bridge.invokeObjcMethod!(id, "initWithCoder:", NSCoder)(objcObject, aDecoder); | |
185 | |
186 if (result) | |
187 objcObject = ret; | |
188 | |
189 dObject = this; | |
190 } | |
191 | |
192 Object copyWithZone (NSZone* zone) | |
193 { | |
194 return invokeObjcSelf!(Object, "copyWithZone:", NSZone*)(zone); | |
195 } | |
196 } | |
197 |