001: package example.nz.org.take.compiler.userv.generated;
002:
003: import nz.org.take.rt.*;
004:
005: /**
006: * Class generated by the take compiler.
007: * @version Mon Feb 11 13:49:16 NZDT 2008
008: */
009: @SuppressWarnings("unchecked")
010: class KBFragement_getAdditionalDriverPremium {
011: /**
012: * Method generated for query /additionalDriverPremium[in,out]
013: * @param driver input parameter generated from slot 0
014: * @return an iterator for instances of AdditionalDriverPremium
015: */
016: public static ResultSet<AdditionalDriverPremium> getAdditionalDriverPremium(
017: final example.nz.org.take.compiler.userv.domainmodel.Driver driver) {
018: DerivationController _derivation = new DefaultDerivationController();
019: ResultSet<AdditionalDriverPremium> _result = new ResultSet(
020: KBFragement_getAdditionalDriverPremium
021: .getAdditionalDriverPremium(driver, _derivation),
022: _derivation);
023:
024: return _result;
025: }
026:
027: /**
028: * Method generated for query /additionalDriverPremium[in,out]
029: * @param driver input parameter generated from slot 0
030: * @return an iterator for instances of AdditionalDriverPremium
031: */
032: static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium(
033: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
034: final DerivationController _derivation) {
035: final int _derivationlevel = _derivation.getDepth();
036: ResourceIterator<AdditionalDriverPremium> result = new IteratorChain<AdditionalDriverPremium>(
037: 10) {
038: public Object getIteratorOrObject(int pos) {
039: switch (pos) {
040: // DP_01 IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,700)
041: case 0:
042: return getAdditionalDriverPremium_0(driver,
043: _derivation.reset(_derivationlevel));
044:
045: // DP_02 IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,720)
046: case 1:
047: return getAdditionalDriverPremium_1(driver,
048: _derivation.reset(_derivationlevel));
049:
050: // DP_03 IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,300)
051: case 2:
052: return getAdditionalDriverPremium_2(driver,
053: _derivation.reset(_derivationlevel));
054:
055: // DP_04 IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,300)
056: case 3:
057: return getAdditionalDriverPremium_3(driver,
058: _derivation.reset(_derivationlevel));
059:
060: // DP_05 IF /driverCategory(<driver>,senior driver) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,500)
061: case 4:
062: return getAdditionalDriverPremium_4(driver,
063: _derivation.reset(_derivationlevel));
064:
065: // DP_06 IF /driverCategory(<driver>,senior driver) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,200)
066: case 5:
067: return getAdditionalDriverPremium_5(driver,
068: _derivation.reset(_derivationlevel));
069:
070: // DP_08 IF /isHighRiskDriver(<driver>) THEN /additionalDriverPremium(<driver>,1000)
071: case 6:
072: return getAdditionalDriverPremium_6(driver,
073: _derivation.reset(_derivationlevel));
074:
075: // DP_09 IF greater_than(getNumberOfAccidentsInvolvedIn(<driver>),0) THEN /additionalDriverPremium(<driver>,*(150,getNumberOfAccidentsInvolvedIn(<driver>)))
076: case 7:
077: return getAdditionalDriverPremium_7(driver,
078: _derivation.reset(_derivationlevel));
079:
080: // MSD_01 IF isPreferred(<client>) THEN /additionalDriverPremium(<client>,-250)
081: case 8:
082: return getAdditionalDriverPremium_8(driver,
083: _derivation.reset(_derivationlevel));
084:
085: // MSD_02 IF isElite(<client>) THEN /additionalDriverPremium(<client>,-500)
086: case 9:
087: return getAdditionalDriverPremium_9(driver,
088: _derivation.reset(_derivationlevel));
089:
090: default:
091: return EmptyIterator.DEFAULT;
092: } // switch(pos)
093: } // getIterator()
094:
095: public String getRuleRef(int pos) {
096: switch (pos) {
097: // DP_01 IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,700)
098: case 0:
099: return "DP_01";
100:
101: // DP_02 IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,720)
102: case 1:
103: return "DP_02";
104:
105: // DP_03 IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,300)
106: case 2:
107: return "DP_03";
108:
109: // DP_04 IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,300)
110: case 3:
111: return "DP_04";
112:
113: // DP_05 IF /driverCategory(<driver>,senior driver) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,500)
114: case 4:
115: return "DP_05";
116:
117: // DP_06 IF /driverCategory(<driver>,senior driver) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,200)
118: case 5:
119: return "DP_06";
120:
121: // DP_08 IF /isHighRiskDriver(<driver>) THEN /additionalDriverPremium(<driver>,1000)
122: case 6:
123: return "DP_08";
124:
125: // DP_09 IF greater_than(getNumberOfAccidentsInvolvedIn(<driver>),0) THEN /additionalDriverPremium(<driver>,*(150,getNumberOfAccidentsInvolvedIn(<driver>)))
126: case 7:
127: return "DP_09";
128:
129: // MSD_01 IF isPreferred(<client>) THEN /additionalDriverPremium(<client>,-250)
130: case 8:
131: return "MSD_01";
132:
133: // MSD_02 IF isElite(<client>) THEN /additionalDriverPremium(<client>,-500)
134: case 9:
135: return "MSD_02";
136:
137: default:
138: return "";
139: } // switch(pos)
140: } // getRuleRef()
141: };
142:
143: return result;
144: }
145:
146: /**
147: * Method generated for query /additionalDriverPremium[in,out]
148: * @param driver input parameter generated from slot 0
149: * @return an iterator for instances of AdditionalDriverPremium
150: */
151: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_0(
152: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
153: final DerivationController _derivation) {
154: _derivation.log("DP_01", DerivationController.RULE, driver,
155: DerivationController.NIL);
156:
157: // Variable bindings in rule: IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,700)
158: class bindingsInRule50 {
159: // Property generated for term "young driver"
160: java.lang.String p1;
161:
162: // Property generated for term "<driver>"
163: example.nz.org.take.compiler.userv.domainmodel.Driver p2;
164:
165: // Property generated for term "700"
166: long p3;
167: }
168: ;
169:
170: final bindingsInRule50 bindings = new bindingsInRule50();
171: bindings.p1 = "young driver";
172: bindings.p2 = driver;
173: bindings.p3 = 700;
174:
175: // code for prereq /driverCategory(<driver>,young driver)
176: final ResourceIterator<DriverCategory> iterator1 = KBFragement_getDriverCategory
177: .getDriverCategory(driver, "young driver", _derivation
178: .increaseDepth());
179:
180: // code for prereq isMarried(<driver>)
181: final ResourceIterator<isMarried> iterator2 = new NestedIterator<DriverCategory, isMarried>(
182: iterator1) {
183: public ResourceIterator<isMarried> getNextIterator(
184: DriverCategory object) {
185: bindings.p2 = object.driver;
186: bindings.p1 = "young driver";
187:
188: return KBFragement_isMarried_1.isMarried_1(bindings.p2,
189: _derivation.increaseDepth());
190: }
191: };
192:
193: // code for prereq /specialLocation(<driver>)
194: final ResourceIterator<specialLocation> iterator3 = new NestedIterator<isMarried, specialLocation>(
195: iterator2) {
196: public ResourceIterator<specialLocation> getNextIterator(
197: isMarried object) {
198: bindings.p2 = object.slot1;
199:
200: return KBFragement_specialLocation_1.specialLocation_1(
201: bindings.p2, _derivation.increaseDepth());
202: }
203: };
204:
205: // code for prereq /additionalDriverPremium(<driver>,700)
206: final ResourceIterator<AdditionalDriverPremium> iterator4 = new NestedIterator<specialLocation, AdditionalDriverPremium>(
207: iterator3) {
208: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
209: specialLocation object) {
210: bindings.p2 = object.slot1;
211:
212: return new SingletonIterator(
213: new AdditionalDriverPremium(bindings.p2,
214: bindings.p3));
215: }
216: };
217:
218: return iterator4;
219: }
220:
221: /**
222: * Method generated for query /additionalDriverPremium[in,out]
223: * @param driver input parameter generated from slot 0
224: * @return an iterator for instances of AdditionalDriverPremium
225: */
226: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_1(
227: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
228: final DerivationController _derivation) {
229: _derivation.log("DP_02", DerivationController.RULE, driver,
230: DerivationController.NIL);
231:
232: // Variable bindings in rule: IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,720)
233: class bindingsInRule51 {
234: // Property generated for term "young driver"
235: java.lang.String p1;
236:
237: // Property generated for term "720"
238: long p2;
239:
240: // Property generated for term "<driver>"
241: example.nz.org.take.compiler.userv.domainmodel.Driver p3;
242: }
243: ;
244:
245: final bindingsInRule51 bindings = new bindingsInRule51();
246: bindings.p1 = "young driver";
247: bindings.p3 = driver;
248: bindings.p2 = 720;
249:
250: // code for prereq /driverCategory(<driver>,young driver)
251: final ResourceIterator<DriverCategory> iterator1 = KBFragement_getDriverCategory
252: .getDriverCategory(driver, "young driver", _derivation
253: .increaseDepth());
254:
255: // code for prereq isMarried(<driver>)
256: final ResourceIterator<not_isMarried> iterator2 = new NestedIterator<DriverCategory, not_isMarried>(
257: iterator1) {
258: public ResourceIterator<not_isMarried> getNextIterator(
259: DriverCategory object) {
260: bindings.p3 = object.driver;
261: bindings.p1 = "young driver";
262:
263: return KBFragement_not_isMarried_1.not_isMarried_1(
264: bindings.p3, _derivation.increaseDepth());
265: }
266: };
267:
268: // code for prereq /specialLocation(<driver>)
269: final ResourceIterator<specialLocation> iterator3 = new NestedIterator<not_isMarried, specialLocation>(
270: iterator2) {
271: public ResourceIterator<specialLocation> getNextIterator(
272: not_isMarried object) {
273: bindings.p3 = object.slot1;
274:
275: return KBFragement_specialLocation_1.specialLocation_1(
276: bindings.p3, _derivation.increaseDepth());
277: }
278: };
279:
280: // code for prereq /additionalDriverPremium(<driver>,720)
281: final ResourceIterator<AdditionalDriverPremium> iterator4 = new NestedIterator<specialLocation, AdditionalDriverPremium>(
282: iterator3) {
283: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
284: specialLocation object) {
285: bindings.p3 = object.slot1;
286:
287: return new SingletonIterator(
288: new AdditionalDriverPremium(bindings.p3,
289: bindings.p2));
290: }
291: };
292:
293: return iterator4;
294: }
295:
296: /**
297: * Method generated for query /additionalDriverPremium[in,out]
298: * @param driver input parameter generated from slot 0
299: * @return an iterator for instances of AdditionalDriverPremium
300: */
301: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_2(
302: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
303: final DerivationController _derivation) {
304: _derivation.log("DP_03", DerivationController.RULE, driver,
305: DerivationController.NIL);
306:
307: // Variable bindings in rule: IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,300)
308: class bindingsInRule52 {
309: // Property generated for term "young driver"
310: java.lang.String p1;
311:
312: // Property generated for term "<driver>"
313: example.nz.org.take.compiler.userv.domainmodel.Driver p2;
314:
315: // Property generated for term "300"
316: long p3;
317: }
318: ;
319:
320: final bindingsInRule52 bindings = new bindingsInRule52();
321: bindings.p1 = "young driver";
322: bindings.p2 = driver;
323: bindings.p3 = 300;
324:
325: // code for prereq /driverCategory(<driver>,young driver)
326: final ResourceIterator<DriverCategory> iterator1 = KBFragement_getDriverCategory
327: .getDriverCategory(driver, "young driver", _derivation
328: .increaseDepth());
329:
330: // code for prereq isMarried(<driver>)
331: final ResourceIterator<isMarried> iterator2 = new NestedIterator<DriverCategory, isMarried>(
332: iterator1) {
333: public ResourceIterator<isMarried> getNextIterator(
334: DriverCategory object) {
335: bindings.p2 = object.driver;
336: bindings.p1 = "young driver";
337:
338: return KBFragement_isMarried_1.isMarried_1(bindings.p2,
339: _derivation.increaseDepth());
340: }
341: };
342:
343: // code for prereq /specialLocation(<driver>)
344: final ResourceIterator<not_specialLocation> iterator3 = new NestedIterator<isMarried, not_specialLocation>(
345: iterator2) {
346: public ResourceIterator<not_specialLocation> getNextIterator(
347: isMarried object) {
348: bindings.p2 = object.slot1;
349:
350: return KBFragement_not_specialLocation_1
351: .not_specialLocation_1(bindings.p2, _derivation
352: .increaseDepth());
353: }
354: };
355:
356: // code for prereq /additionalDriverPremium(<driver>,300)
357: final ResourceIterator<AdditionalDriverPremium> iterator4 = new NestedIterator<not_specialLocation, AdditionalDriverPremium>(
358: iterator3) {
359: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
360: not_specialLocation object) {
361: bindings.p2 = object.slot1;
362:
363: return new SingletonIterator(
364: new AdditionalDriverPremium(bindings.p2,
365: bindings.p3));
366: }
367: };
368:
369: return iterator4;
370: }
371:
372: /**
373: * Method generated for query /additionalDriverPremium[in,out]
374: * @param driver input parameter generated from slot 0
375: * @return an iterator for instances of AdditionalDriverPremium
376: */
377: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_3(
378: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
379: final DerivationController _derivation) {
380: _derivation.log("DP_04", DerivationController.RULE, driver,
381: DerivationController.NIL);
382:
383: // Variable bindings in rule: IF /driverCategory(<driver>,young driver) AND isMarried(<driver>) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,300)
384: class bindingsInRule53 {
385: // Property generated for term "young driver"
386: java.lang.String p1;
387:
388: // Property generated for term "<driver>"
389: example.nz.org.take.compiler.userv.domainmodel.Driver p2;
390:
391: // Property generated for term "300"
392: long p3;
393: }
394: ;
395:
396: final bindingsInRule53 bindings = new bindingsInRule53();
397: bindings.p1 = "young driver";
398: bindings.p2 = driver;
399: bindings.p3 = 300;
400:
401: // code for prereq /driverCategory(<driver>,young driver)
402: final ResourceIterator<DriverCategory> iterator1 = KBFragement_getDriverCategory
403: .getDriverCategory(driver, "young driver", _derivation
404: .increaseDepth());
405:
406: // code for prereq isMarried(<driver>)
407: final ResourceIterator<not_isMarried> iterator2 = new NestedIterator<DriverCategory, not_isMarried>(
408: iterator1) {
409: public ResourceIterator<not_isMarried> getNextIterator(
410: DriverCategory object) {
411: bindings.p2 = object.driver;
412: bindings.p1 = "young driver";
413:
414: return KBFragement_not_isMarried_1.not_isMarried_1(
415: bindings.p2, _derivation.increaseDepth());
416: }
417: };
418:
419: // code for prereq /specialLocation(<driver>)
420: final ResourceIterator<not_specialLocation> iterator3 = new NestedIterator<not_isMarried, not_specialLocation>(
421: iterator2) {
422: public ResourceIterator<not_specialLocation> getNextIterator(
423: not_isMarried object) {
424: bindings.p2 = object.slot1;
425:
426: return KBFragement_not_specialLocation_1
427: .not_specialLocation_1(bindings.p2, _derivation
428: .increaseDepth());
429: }
430: };
431:
432: // code for prereq /additionalDriverPremium(<driver>,300)
433: final ResourceIterator<AdditionalDriverPremium> iterator4 = new NestedIterator<not_specialLocation, AdditionalDriverPremium>(
434: iterator3) {
435: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
436: not_specialLocation object) {
437: bindings.p2 = object.slot1;
438:
439: return new SingletonIterator(
440: new AdditionalDriverPremium(bindings.p2,
441: bindings.p3));
442: }
443: };
444:
445: return iterator4;
446: }
447:
448: /**
449: * Method generated for query /additionalDriverPremium[in,out]
450: * @param driver input parameter generated from slot 0
451: * @return an iterator for instances of AdditionalDriverPremium
452: */
453: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_4(
454: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
455: final DerivationController _derivation) {
456: _derivation.log("DP_05", DerivationController.RULE, driver,
457: DerivationController.NIL);
458:
459: // Variable bindings in rule: IF /driverCategory(<driver>,senior driver) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,500)
460: class bindingsInRule54 {
461: // Property generated for term "<driver>"
462: example.nz.org.take.compiler.userv.domainmodel.Driver p1;
463:
464: // Property generated for term "500"
465: long p2;
466:
467: // Property generated for term "senior driver"
468: java.lang.String p3;
469: }
470: ;
471:
472: final bindingsInRule54 bindings = new bindingsInRule54();
473: bindings.p1 = driver;
474: bindings.p3 = "senior driver";
475: bindings.p2 = 500;
476:
477: // code for prereq /driverCategory(<driver>,senior driver)
478: final ResourceIterator<DriverCategory> iterator1 = KBFragement_getDriverCategory
479: .getDriverCategory(driver, "senior driver", _derivation
480: .increaseDepth());
481:
482: // code for prereq /specialLocation(<driver>)
483: final ResourceIterator<specialLocation> iterator2 = new NestedIterator<DriverCategory, specialLocation>(
484: iterator1) {
485: public ResourceIterator<specialLocation> getNextIterator(
486: DriverCategory object) {
487: bindings.p1 = object.driver;
488: bindings.p3 = "senior driver";
489:
490: return KBFragement_specialLocation_1.specialLocation_1(
491: bindings.p1, _derivation.increaseDepth());
492: }
493: };
494:
495: // code for prereq /additionalDriverPremium(<driver>,500)
496: final ResourceIterator<AdditionalDriverPremium> iterator3 = new NestedIterator<specialLocation, AdditionalDriverPremium>(
497: iterator2) {
498: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
499: specialLocation object) {
500: bindings.p1 = object.slot1;
501:
502: return new SingletonIterator(
503: new AdditionalDriverPremium(bindings.p1,
504: bindings.p2));
505: }
506: };
507:
508: return iterator3;
509: }
510:
511: /**
512: * Method generated for query /additionalDriverPremium[in,out]
513: * @param driver input parameter generated from slot 0
514: * @return an iterator for instances of AdditionalDriverPremium
515: */
516: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_5(
517: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
518: final DerivationController _derivation) {
519: _derivation.log("DP_06", DerivationController.RULE, driver,
520: DerivationController.NIL);
521:
522: // Variable bindings in rule: IF /driverCategory(<driver>,senior driver) AND /specialLocation(<driver>) THEN /additionalDriverPremium(<driver>,200)
523: class bindingsInRule55 {
524: // Property generated for term "<driver>"
525: example.nz.org.take.compiler.userv.domainmodel.Driver p1;
526:
527: // Property generated for term "200"
528: long p2;
529:
530: // Property generated for term "senior driver"
531: java.lang.String p3;
532: }
533: ;
534:
535: final bindingsInRule55 bindings = new bindingsInRule55();
536: bindings.p1 = driver;
537: bindings.p2 = 200;
538: bindings.p3 = "senior driver";
539:
540: // code for prereq /driverCategory(<driver>,senior driver)
541: final ResourceIterator<DriverCategory> iterator1 = KBFragement_getDriverCategory
542: .getDriverCategory(driver, "senior driver", _derivation
543: .increaseDepth());
544:
545: // code for prereq /specialLocation(<driver>)
546: final ResourceIterator<not_specialLocation> iterator2 = new NestedIterator<DriverCategory, not_specialLocation>(
547: iterator1) {
548: public ResourceIterator<not_specialLocation> getNextIterator(
549: DriverCategory object) {
550: bindings.p1 = object.driver;
551: bindings.p3 = "senior driver";
552:
553: return KBFragement_not_specialLocation_1
554: .not_specialLocation_1(bindings.p1, _derivation
555: .increaseDepth());
556: }
557: };
558:
559: // code for prereq /additionalDriverPremium(<driver>,200)
560: final ResourceIterator<AdditionalDriverPremium> iterator3 = new NestedIterator<not_specialLocation, AdditionalDriverPremium>(
561: iterator2) {
562: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
563: not_specialLocation object) {
564: bindings.p1 = object.slot1;
565:
566: return new SingletonIterator(
567: new AdditionalDriverPremium(bindings.p1,
568: bindings.p2));
569: }
570: };
571:
572: return iterator3;
573: }
574:
575: /**
576: * Method generated for query /additionalDriverPremium[in,out]
577: * @param driver input parameter generated from slot 0
578: * @return an iterator for instances of AdditionalDriverPremium
579: */
580: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_6(
581: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
582: final DerivationController _derivation) {
583: _derivation.log("DP_08", DerivationController.RULE, driver,
584: DerivationController.NIL);
585:
586: // Variable bindings in rule: IF /isHighRiskDriver(<driver>) THEN /additionalDriverPremium(<driver>,1000)
587: class bindingsInRule56 {
588: // Property generated for term "1000"
589: long p1;
590:
591: // Property generated for term "<driver>"
592: example.nz.org.take.compiler.userv.domainmodel.Driver p2;
593: }
594: ;
595:
596: final bindingsInRule56 bindings = new bindingsInRule56();
597: bindings.p1 = 1000;
598: bindings.p2 = driver;
599:
600: // code for prereq /isHighRiskDriver(<driver>)
601: final ResourceIterator<HighRiskDriver> iterator1 = KBFragement_isHighRiskDriver
602: .isHighRiskDriver(driver, _derivation.increaseDepth());
603:
604: // code for prereq /additionalDriverPremium(<driver>,1000)
605: final ResourceIterator<AdditionalDriverPremium> iterator2 = new NestedIterator<HighRiskDriver, AdditionalDriverPremium>(
606: iterator1) {
607: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
608: HighRiskDriver object) {
609: bindings.p2 = object.driver;
610:
611: return new SingletonIterator(
612: new AdditionalDriverPremium(bindings.p2,
613: bindings.p1));
614: }
615: };
616:
617: return iterator2;
618: }
619:
620: /**
621: * Method generated for query /additionalDriverPremium[in,out]
622: * @param driver input parameter generated from slot 0
623: * @return an iterator for instances of AdditionalDriverPremium
624: */
625: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_7(
626: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
627: final DerivationController _derivation) {
628: _derivation.log("DP_09", DerivationController.RULE, driver,
629: DerivationController.NIL);
630:
631: // Variable bindings in rule: IF greater_than(getNumberOfAccidentsInvolvedIn(<driver>),0) THEN /additionalDriverPremium(<driver>,*(150,getNumberOfAccidentsInvolvedIn(<driver>)))
632: class bindingsInRule57 {
633: // Property generated for term "<driver>"
634: example.nz.org.take.compiler.userv.domainmodel.Driver p1;
635:
636: // Property generated for term "150"
637: long p2;
638:
639: // Property generated for term "0"
640: long p3;
641:
642: // Property generated for term "getNumberOfAccidentsInvolvedIn(<driver>)"
643: long p4;
644:
645: // Property generated for term "*(150,getNumberOfAccidentsInvolvedIn(<driver>))"
646: long p5;
647: }
648: ;
649:
650: final bindingsInRule57 bindings = new bindingsInRule57();
651: bindings.p1 = driver;
652: bindings.p2 = 150;
653: bindings.p3 = 0;
654: bindings.p4 = driver.getNumberOfAccidentsInvolvedIn();
655: bindings.p5 = 150 * bindings.p4;
656:
657: // code for prereq greater_than(getNumberOfAccidentsInvolvedIn(<driver>),0)
658: final ResourceIterator<greater_than> iterator1 = KBFragement_greater_than_11
659: .greater_than_11(bindings.p4, 0, _derivation
660: .increaseDepth());
661:
662: // code for prereq /additionalDriverPremium(<driver>,*(150,getNumberOfAccidentsInvolvedIn(<driver>)))
663: final ResourceIterator<AdditionalDriverPremium> iterator2 = new NestedIterator<greater_than, AdditionalDriverPremium>(
664: iterator1) {
665: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
666: greater_than object) {
667: bindings.p4 = (long) object.slot1;
668: bindings.p3 = (long) 0;
669:
670: return new SingletonIterator(
671: new AdditionalDriverPremium(bindings.p1,
672: bindings.p5));
673: }
674: };
675:
676: return iterator2;
677: }
678:
679: /**
680: * Method generated for query /additionalDriverPremium[in,out]
681: * @param driver input parameter generated from slot 0
682: * @return an iterator for instances of AdditionalDriverPremium
683: */
684: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_8(
685: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
686: final DerivationController _derivation) {
687: _derivation.log("MSD_01", DerivationController.RULE, driver,
688: DerivationController.NIL);
689:
690: // Variable bindings in rule: IF isPreferred(<client>) THEN /additionalDriverPremium(<client>,-250)
691: class bindingsInRule58 {
692: // Property generated for term "<client>"
693: example.nz.org.take.compiler.userv.domainmodel.Driver p1;
694:
695: // Property generated for term "-250"
696: long p2;
697: }
698: ;
699:
700: final bindingsInRule58 bindings = new bindingsInRule58();
701: bindings.p1 = driver;
702: bindings.p2 = -250;
703:
704: // code for prereq isPreferred(<client>)
705: final ResourceIterator<isPreferred> iterator1 = KBFragement_isPreferred_1
706: .isPreferred_1(driver, _derivation.increaseDepth());
707:
708: // code for prereq /additionalDriverPremium(<client>,-250)
709: final ResourceIterator<AdditionalDriverPremium> iterator2 = new NestedIterator<isPreferred, AdditionalDriverPremium>(
710: iterator1) {
711: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
712: isPreferred object) {
713: bindings.p1 = object.slot1;
714:
715: return new SingletonIterator(
716: new AdditionalDriverPremium(bindings.p1,
717: bindings.p2));
718: }
719: };
720:
721: return iterator2;
722: }
723:
724: /**
725: * Method generated for query /additionalDriverPremium[in,out]
726: * @param driver input parameter generated from slot 0
727: * @return an iterator for instances of AdditionalDriverPremium
728: */
729: private static ResourceIterator<AdditionalDriverPremium> getAdditionalDriverPremium_9(
730: final example.nz.org.take.compiler.userv.domainmodel.Driver driver,
731: final DerivationController _derivation) {
732: _derivation.log("MSD_02", DerivationController.RULE, driver,
733: DerivationController.NIL);
734:
735: // Variable bindings in rule: IF isElite(<client>) THEN /additionalDriverPremium(<client>,-500)
736: class bindingsInRule59 {
737: // Property generated for term "<client>"
738: example.nz.org.take.compiler.userv.domainmodel.Driver p1;
739:
740: // Property generated for term "-500"
741: long p2;
742: }
743: ;
744:
745: final bindingsInRule59 bindings = new bindingsInRule59();
746: bindings.p1 = driver;
747: bindings.p2 = -500;
748:
749: // code for prereq isElite(<client>)
750: final ResourceIterator<isElite> iterator1 = KBFragement_isElite_1
751: .isElite_1(driver, _derivation.increaseDepth());
752:
753: // code for prereq /additionalDriverPremium(<client>,-500)
754: final ResourceIterator<AdditionalDriverPremium> iterator2 = new NestedIterator<isElite, AdditionalDriverPremium>(
755: iterator1) {
756: public ResourceIterator<AdditionalDriverPremium> getNextIterator(
757: isElite object) {
758: bindings.p1 = object.slot1;
759:
760: return new SingletonIterator(
761: new AdditionalDriverPremium(bindings.p1,
762: bindings.p2));
763: }
764: };
765:
766: return iterator2;
767: }
768: }
|