comparison dstep/foundation/NSScriptObjectSpecifiers.d @ 14:89f3c3ef1fd2

Added the Foundation framework
author Jacob Carlborg <doob@me.com>
date Mon, 03 Aug 2009 15:23:15 +0200
parents
children 7ff919f595d5
comparison
equal deleted inserted replaced
13:4f583f7e242e 14:89f3c3ef1fd2
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.NSScriptObjectSpecifiers;
8
9 import dstep.foundation.NSAppleEventDescriptor;
10 import dstep.foundation.NSArray;
11 import dstep.foundation.NSObject;
12 import dstep.foundation.NSScriptClassDescription;
13 import dstep.foundation.NSScriptWhoseTest;
14 import dstep.foundation.NSString;
15 import dstep.objc.bridge.Bridge;
16 import dstep.objc.objc : id;
17
18 alias NSUInteger NSInsertionPosition;
19 alias NSUInteger NSRelativePosition;
20 alias NSUInteger NSWhoseSubelementIdentifier;
21
22 enum
23 {
24 NSNoSpecifierError = 0,
25 NSNoTopLevelContainersSpecifierError,
26 NSContainerSpecifierError,
27 NSUnknownKeySpecifierError,
28 NSInvalidIndexSpecifierError,
29 NSInternalSpecifierError,
30 NSOperationNotSupportedForKeySpecifierError
31 }
32
33 enum
34 {
35 NSPositionAfter,
36 NSPositionBefore,
37 NSPositionBeginning,
38 NSPositionEnd,
39 NSPositionReplace
40 }
41
42 enum
43 {
44 NSRelativeAfter = 0,
45 NSRelativeBefore
46 }
47
48 enum
49 {
50 NSIndexSubelement = 0,
51 NSEverySubelement = 1,
52 NSMiddleSubelement = 2,
53 NSRandomSubelement = 3,
54 NSNoSubelement = 4
55 }
56
57 class NSIndexSpecifier : NSScriptObjectSpecifier
58 {
59 mixin ObjcWrap;
60
61 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSInteger index)
62 {
63 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:index:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSInteger)(classDesc, container, property, index);
64 }
65
66 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSInteger index)
67 {
68 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
69 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:index:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSInteger)(objcObject, classDesc, container, property, index);
70
71 if (result)
72 objcObject = ret;
73
74 dObject = this;
75 }
76
77 NSInteger index ()
78 {
79 return invokeObjcSelf!(NSInteger, "index");
80 }
81
82 void setIndex (NSInteger index)
83 {
84 return invokeObjcSelf!(void, "setIndex:", NSInteger)(index);
85 }
86 }
87
88 class NSRangeSpecifier : NSScriptObjectSpecifier
89 {
90 mixin ObjcWrap;
91
92 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptObjectSpecifier startSpec, NSScriptObjectSpecifier endSpec)
93 {
94 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:startSpecifier:endSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptObjectSpecifier, NSScriptObjectSpecifier)(classDesc, container, property, startSpec, endSpec);
95 }
96
97 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptObjectSpecifier startSpec, NSScriptObjectSpecifier endSpec)
98 {
99 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
100 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:startSpecifier:endSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptObjectSpecifier, NSScriptObjectSpecifier)(objcObject, classDesc, container, property, startSpec, endSpec);
101
102 if (result)
103 objcObject = ret;
104
105 dObject = this;
106 }
107
108 NSScriptObjectSpecifier startSpecifier ()
109 {
110 return invokeObjcSelf!(NSScriptObjectSpecifier, "startSpecifier");
111 }
112
113 void setStartSpecifier (NSScriptObjectSpecifier startSpec)
114 {
115 return invokeObjcSelf!(void, "setStartSpecifier:", NSScriptObjectSpecifier)(startSpec);
116 }
117
118 NSScriptObjectSpecifier endSpecifier ()
119 {
120 return invokeObjcSelf!(NSScriptObjectSpecifier, "endSpecifier");
121 }
122
123 void setEndSpecifier (NSScriptObjectSpecifier endSpec)
124 {
125 return invokeObjcSelf!(void, "setEndSpecifier:", NSScriptObjectSpecifier)(endSpec);
126 }
127 }
128
129 class NSUniqueIDSpecifier : NSScriptObjectSpecifier
130 {
131 mixin ObjcWrap;
132
133 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, Object uniqueID)
134 {
135 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:uniqueID:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, Object)(classDesc, container, property, uniqueID);
136 }
137
138 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, Object uniqueID)
139 {
140 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
141 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:uniqueID:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, Object)(objcObject, classDesc, container, property, uniqueID);
142
143 if (result)
144 objcObject = ret;
145
146 dObject = this;
147 }
148
149 Object uniqueID ()
150 {
151 return invokeObjcSelf!(Object, "uniqueID");
152 }
153
154 void setUniqueID (Object uniqueID)
155 {
156 return invokeObjcSelf!(void, "setUniqueID:", Object)(uniqueID);
157 }
158 }
159
160 class NSRelativeSpecifier : NSScriptObjectSpecifier
161 {
162 mixin ObjcWrap;
163
164 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, uint relPos, NSScriptObjectSpecifier baseSpecifier)
165 {
166 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:relativePosition:baseSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, uint, NSScriptObjectSpecifier)(classDesc, container, property, relPos, baseSpecifier);
167 }
168
169 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, uint relPos, NSScriptObjectSpecifier baseSpecifier)
170 {
171 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
172 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:relativePosition:baseSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, uint, NSScriptObjectSpecifier)(objcObject, classDesc, container, property, relPos, baseSpecifier);
173
174 if (result)
175 objcObject = ret;
176
177 dObject = this;
178 }
179
180 uint relativePosition ()
181 {
182 return invokeObjcSelf!(uint, "relativePosition");
183 }
184
185 void setRelativePosition (uint relPos)
186 {
187 return invokeObjcSelf!(void, "setRelativePosition:", uint)(relPos);
188 }
189
190 NSScriptObjectSpecifier baseSpecifier ()
191 {
192 return invokeObjcSelf!(NSScriptObjectSpecifier, "baseSpecifier");
193 }
194
195 void setBaseSpecifier (NSScriptObjectSpecifier baseSpecifier)
196 {
197 return invokeObjcSelf!(void, "setBaseSpecifier:", NSScriptObjectSpecifier)(baseSpecifier);
198 }
199 }
200
201 class NSNameSpecifier : NSScriptObjectSpecifier
202 {
203 mixin ObjcWrap;
204
205 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSString name)
206 {
207 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:name:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSString)(classDesc, container, property, name);
208 }
209
210 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSString name)
211 {
212 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
213 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:name:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSString)(objcObject, classDesc, container, property, name);
214
215 if (result)
216 objcObject = ret;
217
218 dObject = this;
219 }
220
221 NSString name ()
222 {
223 return invokeObjcSelf!(NSString, "name");
224 }
225
226 void setName (NSString name)
227 {
228 return invokeObjcSelf!(void, "setName:", NSString)(name);
229 }
230 }
231
232 class NSPositionalSpecifier : NSObject
233 {
234 mixin ObjcWrap;
235
236 Object initWithPosition (uint position, NSScriptObjectSpecifier specifier)
237 {
238 return invokeObjcSelf!(Object, "initWithPosition:objectSpecifier:", uint, NSScriptObjectSpecifier)(position, specifier);
239 }
240
241 this (uint position, NSScriptObjectSpecifier specifier)
242 {
243 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
244 id result = Bridge.invokeObjcMethod!(id, "initWithPosition:objectSpecifier:", uint, NSScriptObjectSpecifier)(objcObject, position, specifier);
245
246 if (result)
247 objcObject = ret;
248
249 dObject = this;
250 }
251
252 uint position ()
253 {
254 return invokeObjcSelf!(uint, "position");
255 }
256
257 NSScriptObjectSpecifier objectSpecifier ()
258 {
259 return invokeObjcSelf!(NSScriptObjectSpecifier, "objectSpecifier");
260 }
261
262 void setInsertionClassDescription (NSScriptClassDescription classDescription)
263 {
264 return invokeObjcSelf!(void, "setInsertionClassDescription:", NSScriptClassDescription)(classDescription);
265 }
266
267 void evaluate ()
268 {
269 return invokeObjcSelf!(void, "evaluate");
270 }
271
272 Object insertionContainer ()
273 {
274 return invokeObjcSelf!(Object, "insertionContainer");
275 }
276
277 NSString insertionKey ()
278 {
279 return invokeObjcSelf!(NSString, "insertionKey");
280 }
281
282 NSInteger insertionIndex ()
283 {
284 return invokeObjcSelf!(NSInteger, "insertionIndex");
285 }
286
287 bool insertionReplaces ()
288 {
289 return invokeObjcSelf!(bool, "insertionReplaces");
290 }
291 }
292
293 class NSScriptObjectSpecifier : NSObject, INSCoding
294 {
295 mixin ObjcWrap;
296
297 static NSScriptObjectSpecifier objectSpecifierWithDescriptor (NSAppleEventDescriptor descriptor)
298 {
299 return invokeObjcSelfClass!(NSScriptObjectSpecifier, "objectSpecifierWithDescriptor:", NSAppleEventDescriptor)(descriptorreturn result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); }
300
301 Object initWithContainerSpecifier (NSScriptObjectSpecifier container, NSString property)
302 {
303 return invokeObjcSelf!(Object, "initWithContainerSpecifier:key:", NSScriptObjectSpecifier, NSString)(container, property);
304 }
305
306 this (NSScriptObjectSpecifier container, NSString property)
307 {
308 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
309 id result = Bridge.invokeObjcMethod!(id, "initWithContainerSpecifier:key:", NSScriptObjectSpecifier, NSString)(objcObject, container, property);
310
311 if (result)
312 objcObject = ret;
313
314 dObject = this;
315 }
316
317 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property)
318 {
319 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString)(classDesc, container, property);
320 }
321
322 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property)
323 {
324 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
325 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString)(objcObject, classDesc, container, property);
326
327 if (result)
328 objcObject = ret;
329
330 dObject = this;
331 }
332
333 NSScriptObjectSpecifier childSpecifier ()
334 {
335 id result = invokeObjcSelf!(id, "childSpecifier"return result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); }
336
337 void setChildSpecifier (NSScriptObjectSpecifier child)
338 {
339 return invokeObjcSelf!(void, "setChildSpecifier:", NSScriptObjectSpecifier)(child);
340 }
341
342 NSScriptObjectSpecifier containerSpecifier ()
343 {
344 id result = invokeObjcSelf!(id, "containerSpecifier"return result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); }
345
346 void setContainerSpecifier (NSScriptObjectSpecifier subRef)
347 {
348 return invokeObjcSelf!(void, "setContainerSpecifier:", NSScriptObjectSpecifier)(subRef);
349 }
350
351 bool containerIsObjectBeingTested ()
352 {
353 return invokeObjcSelf!(bool, "containerIsObjectBeingTested");
354 }
355
356 void setContainerIsObjectBeingTested (bool flag)
357 {
358 return invokeObjcSelf!(void, "setContainerIsObjectBeingTested:", bool)(flag);
359 }
360
361 bool containerIsRangeContainerObject ()
362 {
363 return invokeObjcSelf!(bool, "containerIsRangeContainerObject");
364 }
365
366 void setContainerIsRangeContainerObject (bool flag)
367 {
368 return invokeObjcSelf!(void, "setContainerIsRangeContainerObject:", bool)(flag);
369 }
370
371 NSString key ()
372 {
373 return invokeObjcSelf!(NSString, "key");
374 }
375
376 void setKey (NSString key)
377 {
378 return invokeObjcSelf!(void, "setKey:", NSString)(key);
379 }
380
381 NSScriptClassDescription containerClassDescription ()
382 {
383 return invokeObjcSelf!(NSScriptClassDescription, "containerClassDescription");
384 }
385
386 void setContainerClassDescription (NSScriptClassDescription classDesc)
387 {
388 return invokeObjcSelf!(void, "setContainerClassDescription:", NSScriptClassDescription)(classDesc);
389 }
390
391 NSScriptClassDescription keyClassDescription ()
392 {
393 return invokeObjcSelf!(NSScriptClassDescription, "keyClassDescription");
394 }
395
396 NSInteger* indicesOfObjectsByEvaluatingWithContainer (Object container, NSInteger* count)
397 {
398 return invokeObjcSelf!(NSInteger*, "indicesOfObjectsByEvaluatingWithContainer:count:", Object, NSInteger*)(container, count);
399 }
400
401 Object objectsByEvaluatingWithContainers (Object containers)
402 {
403 return invokeObjcSelf!(Object, "objectsByEvaluatingWithContainers:", Object)(containers);
404 }
405
406 Object objectsByEvaluatingSpecifier ()
407 {
408 return invokeObjcSelf!(Object, "objectsByEvaluatingSpecifier");
409 }
410
411 NSInteger evaluationErrorNumber ()
412 {
413 return invokeObjcSelf!(NSInteger, "evaluationErrorNumber");
414 }
415
416 void setEvaluationErrorNumber (NSInteger error)
417 {
418 return invokeObjcSelf!(void, "setEvaluationErrorNumber:", NSInteger)(error);
419 }
420
421 NSScriptObjectSpecifier evaluationErrorSpecifier ()
422 {
423 id result = invokeObjcSelf!(id, "evaluationErrorSpecifier"return result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); }
424
425 NSAppleEventDescriptor descriptor ()
426 {
427 return invokeObjcSelf!(NSAppleEventDescriptor, "descriptor");
428 }
429
430 void encodeWithCoder (NSCoder aCoder)
431 {
432 return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
433 }
434
435 Object initWithCoder (NSCoder aDecoder)
436 {
437 return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder);
438 }
439
440 this (NSCoder aDecoder)
441 {
442 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
443 id result = Bridge.invokeObjcMethod!(id, "initWithCoder:", NSCoder)(objcObject, aDecoder);
444
445 if (result)
446 objcObject = ret;
447
448 dObject = this;
449 }
450 }
451
452 class NSWhoseSpecifier : NSScriptObjectSpecifier
453 {
454 mixin ObjcWrap;
455
456 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptWhoseTest test)
457 {
458 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:test:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptWhoseTest)(classDesc, container, property, test);
459 }
460
461 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptWhoseTest test)
462 {
463 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
464 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:test:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptWhoseTest)(objcObject, classDesc, container, property, test);
465
466 if (result)
467 objcObject = ret;
468
469 dObject = this;
470 }
471
472 NSScriptWhoseTest test ()
473 {
474 return invokeObjcSelf!(NSScriptWhoseTest, "test");
475 }
476
477 void setTest (NSScriptWhoseTest test)
478 {
479 return invokeObjcSelf!(void, "setTest:", NSScriptWhoseTest)(test);
480 }
481
482 uint startSubelementIdentifier ()
483 {
484 return invokeObjcSelf!(uint, "startSubelementIdentifier");
485 }
486
487 void setStartSubelementIdentifier (uint subelement)
488 {
489 return invokeObjcSelf!(void, "setStartSubelementIdentifier:", uint)(subelement);
490 }
491
492 NSInteger startSubelementIndex ()
493 {
494 return invokeObjcSelf!(NSInteger, "startSubelementIndex");
495 }
496
497 void setStartSubelementIndex (NSInteger index)
498 {
499 return invokeObjcSelf!(void, "setStartSubelementIndex:", NSInteger)(index);
500 }
501
502 uint endSubelementIdentifier ()
503 {
504 return invokeObjcSelf!(uint, "endSubelementIdentifier");
505 }
506
507 void setEndSubelementIdentifier (uint subelement)
508 {
509 return invokeObjcSelf!(void, "setEndSubelementIdentifier:", uint)(subelement);
510 }
511
512 NSInteger endSubelementIndex ()
513 {
514 return invokeObjcSelf!(NSInteger, "endSubelementIndex");
515 }
516
517 void setEndSubelementIndex (NSInteger index)
518 {
519 return invokeObjcSelf!(void, "setEndSubelementIndex:", NSInteger)(index);
520 }
521 }
522
523 template TNSScriptObjectSpecifiers ()
524 {
525 NSScriptObjectSpecifier objectSpecifier ();
526 NSArray indicesOfObjectsByEvaluatingObjectSpecifier (NSScriptObjectSpecifier specifier);
527 }
528