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_getPremiumDiscount {
011: /**
012: * Method generated for query /premiumDiscount[in,out]
013: * @param car input parameter generated from slot 0
014: * @return an iterator for instances of PremiumDiscount
015: */
016: public static ResultSet<PremiumDiscount> getPremiumDiscount(
017: final example.nz.org.take.compiler.userv.domainmodel.Car car) {
018: DerivationController _derivation = new DefaultDerivationController();
019: ResultSet<PremiumDiscount> _result = new ResultSet(
020: KBFragement_getPremiumDiscount.getPremiumDiscount(car,
021: _derivation), _derivation);
022:
023: return _result;
024: }
025:
026: /**
027: * Method generated for query /premiumDiscount[in,out]
028: * @param car input parameter generated from slot 0
029: * @return an iterator for instances of PremiumDiscount
030: */
031: static ResourceIterator<PremiumDiscount> getPremiumDiscount(
032: final example.nz.org.take.compiler.userv.domainmodel.Car car,
033: final DerivationController _derivation) {
034: final int _derivationlevel = _derivation.getDepth();
035: ResourceIterator<PremiumDiscount> result = new IteratorChain<PremiumDiscount>(
036: 4) {
037: public Object getIteratorOrObject(int pos) {
038: switch (pos) {
039: // AD_01 IF hasAirbags(<car>) AND hasFrontPassengerAirbag(<car>) AND hasSidePanelAirbags(<car>) THEN /premiumDiscount(<car>,12)
040: case 0:
041: return getPremiumDiscount_0(car, _derivation
042: .reset(_derivationlevel));
043:
044: // AD_02 IF hasAirbags(<car>) AND hasFrontPassengerAirbag(<car>) AND hasSidePanelAirbags(<car>) THEN /premiumDiscount(<car>,15)
045: case 1:
046: return getPremiumDiscount_1(car, _derivation
047: .reset(_derivationlevel));
048:
049: // AD_03 IF hasAirbags(<car>) AND hasFrontPassengerAirbag(<car>) AND hasSidePanelAirbags(<car>) THEN /premiumDiscount(<car>,18)
050: case 2:
051: return getPremiumDiscount_2(car, _derivation
052: .reset(_derivationlevel));
053:
054: // AD_04 IF /potentialTheftRating(<car>,high) AND hasAlarm(<car>) THEN /premiumDiscount(<car>,10)
055: case 3:
056: return getPremiumDiscount_3(car, _derivation
057: .reset(_derivationlevel));
058:
059: default:
060: return EmptyIterator.DEFAULT;
061: } // switch(pos)
062: } // getIterator()
063:
064: public String getRuleRef(int pos) {
065: switch (pos) {
066: // AD_01 IF hasAirbags(<car>) AND hasFrontPassengerAirbag(<car>) AND hasSidePanelAirbags(<car>) THEN /premiumDiscount(<car>,12)
067: case 0:
068: return "AD_01";
069:
070: // AD_02 IF hasAirbags(<car>) AND hasFrontPassengerAirbag(<car>) AND hasSidePanelAirbags(<car>) THEN /premiumDiscount(<car>,15)
071: case 1:
072: return "AD_02";
073:
074: // AD_03 IF hasAirbags(<car>) AND hasFrontPassengerAirbag(<car>) AND hasSidePanelAirbags(<car>) THEN /premiumDiscount(<car>,18)
075: case 2:
076: return "AD_03";
077:
078: // AD_04 IF /potentialTheftRating(<car>,high) AND hasAlarm(<car>) THEN /premiumDiscount(<car>,10)
079: case 3:
080: return "AD_04";
081:
082: default:
083: return "";
084: } // switch(pos)
085: } // getRuleRef()
086: };
087:
088: return result;
089: }
090:
091: /**
092: * Method generated for query /premiumDiscount[in,out]
093: * @param car input parameter generated from slot 0
094: * @return an iterator for instances of PremiumDiscount
095: */
096: private static ResourceIterator<PremiumDiscount> getPremiumDiscount_0(
097: final example.nz.org.take.compiler.userv.domainmodel.Car car,
098: final DerivationController _derivation) {
099: _derivation.log("AD_01", DerivationController.RULE, car,
100: DerivationController.NIL);
101:
102: // Variable bindings in rule: IF hasAirbags(<car>) AND hasFrontPassengerAirbag(<car>) AND hasSidePanelAirbags(<car>) THEN /premiumDiscount(<car>,12)
103: class bindingsInRule60 {
104: // Property generated for term "12"
105: long p1;
106:
107: // Property generated for term "<car>"
108: example.nz.org.take.compiler.userv.domainmodel.Car p2;
109: }
110: ;
111:
112: final bindingsInRule60 bindings = new bindingsInRule60();
113: bindings.p1 = 12;
114: bindings.p2 = car;
115:
116: // code for prereq hasAirbags(<car>)
117: final ResourceIterator<hasAirbags> iterator1 = KBFragement_hasAirbags_1
118: .hasAirbags_1(car, _derivation.increaseDepth());
119:
120: // code for prereq hasFrontPassengerAirbag(<car>)
121: final ResourceIterator<not_hasFrontPassengerAirbag> iterator2 = new NestedIterator<hasAirbags, not_hasFrontPassengerAirbag>(
122: iterator1) {
123: public ResourceIterator<not_hasFrontPassengerAirbag> getNextIterator(
124: hasAirbags object) {
125: bindings.p2 = object.slot1;
126:
127: return KBFragement_not_hasFrontPassengerAirbag_1
128: .not_hasFrontPassengerAirbag_1(bindings.p2,
129: _derivation.increaseDepth());
130: }
131: };
132:
133: // code for prereq hasSidePanelAirbags(<car>)
134: final ResourceIterator<not_hasSidePanelAirbags> iterator3 = new NestedIterator<not_hasFrontPassengerAirbag, not_hasSidePanelAirbags>(
135: iterator2) {
136: public ResourceIterator<not_hasSidePanelAirbags> getNextIterator(
137: not_hasFrontPassengerAirbag object) {
138: bindings.p2 = object.slot1;
139:
140: return KBFragement_not_hasSidePanelAirbags_1
141: .not_hasSidePanelAirbags_1(bindings.p2,
142: _derivation.increaseDepth());
143: }
144: };
145:
146: // code for prereq /premiumDiscount(<car>,12)
147: final ResourceIterator<PremiumDiscount> iterator4 = new NestedIterator<not_hasSidePanelAirbags, PremiumDiscount>(
148: iterator3) {
149: public ResourceIterator<PremiumDiscount> getNextIterator(
150: not_hasSidePanelAirbags object) {
151: bindings.p2 = object.slot1;
152:
153: return new SingletonIterator(new PremiumDiscount(
154: bindings.p2, bindings.p1));
155: }
156: };
157:
158: return iterator4;
159: }
160:
161: /**
162: * Method generated for query /premiumDiscount[in,out]
163: * @param car input parameter generated from slot 0
164: * @return an iterator for instances of PremiumDiscount
165: */
166: private static ResourceIterator<PremiumDiscount> getPremiumDiscount_1(
167: final example.nz.org.take.compiler.userv.domainmodel.Car car,
168: final DerivationController _derivation) {
169: _derivation.log("AD_02", DerivationController.RULE, car,
170: DerivationController.NIL);
171:
172: // Variable bindings in rule: IF hasAirbags(<car>) AND hasFrontPassengerAirbag(<car>) AND hasSidePanelAirbags(<car>) THEN /premiumDiscount(<car>,15)
173: class bindingsInRule61 {
174: // Property generated for term "15"
175: long p1;
176:
177: // Property generated for term "<car>"
178: example.nz.org.take.compiler.userv.domainmodel.Car p2;
179: }
180: ;
181:
182: final bindingsInRule61 bindings = new bindingsInRule61();
183: bindings.p1 = 15;
184: bindings.p2 = car;
185:
186: // code for prereq hasAirbags(<car>)
187: final ResourceIterator<hasAirbags> iterator1 = KBFragement_hasAirbags_1
188: .hasAirbags_1(car, _derivation.increaseDepth());
189:
190: // code for prereq hasFrontPassengerAirbag(<car>)
191: final ResourceIterator<hasFrontPassengerAirbag> iterator2 = new NestedIterator<hasAirbags, hasFrontPassengerAirbag>(
192: iterator1) {
193: public ResourceIterator<hasFrontPassengerAirbag> getNextIterator(
194: hasAirbags object) {
195: bindings.p2 = object.slot1;
196:
197: return KBFragement_hasFrontPassengerAirbag_1
198: .hasFrontPassengerAirbag_1(bindings.p2,
199: _derivation.increaseDepth());
200: }
201: };
202:
203: // code for prereq hasSidePanelAirbags(<car>)
204: final ResourceIterator<not_hasSidePanelAirbags> iterator3 = new NestedIterator<hasFrontPassengerAirbag, not_hasSidePanelAirbags>(
205: iterator2) {
206: public ResourceIterator<not_hasSidePanelAirbags> getNextIterator(
207: hasFrontPassengerAirbag object) {
208: bindings.p2 = object.slot1;
209:
210: return KBFragement_not_hasSidePanelAirbags_1
211: .not_hasSidePanelAirbags_1(bindings.p2,
212: _derivation.increaseDepth());
213: }
214: };
215:
216: // code for prereq /premiumDiscount(<car>,15)
217: final ResourceIterator<PremiumDiscount> iterator4 = new NestedIterator<not_hasSidePanelAirbags, PremiumDiscount>(
218: iterator3) {
219: public ResourceIterator<PremiumDiscount> getNextIterator(
220: not_hasSidePanelAirbags object) {
221: bindings.p2 = object.slot1;
222:
223: return new SingletonIterator(new PremiumDiscount(
224: bindings.p2, bindings.p1));
225: }
226: };
227:
228: return iterator4;
229: }
230:
231: /**
232: * Method generated for query /premiumDiscount[in,out]
233: * @param car input parameter generated from slot 0
234: * @return an iterator for instances of PremiumDiscount
235: */
236: private static ResourceIterator<PremiumDiscount> getPremiumDiscount_2(
237: final example.nz.org.take.compiler.userv.domainmodel.Car car,
238: final DerivationController _derivation) {
239: _derivation.log("AD_03", DerivationController.RULE, car,
240: DerivationController.NIL);
241:
242: // Variable bindings in rule: IF hasAirbags(<car>) AND hasFrontPassengerAirbag(<car>) AND hasSidePanelAirbags(<car>) THEN /premiumDiscount(<car>,18)
243: class bindingsInRule62 {
244: // Property generated for term "<car>"
245: example.nz.org.take.compiler.userv.domainmodel.Car p1;
246:
247: // Property generated for term "18"
248: long p2;
249: }
250: ;
251:
252: final bindingsInRule62 bindings = new bindingsInRule62();
253: bindings.p1 = car;
254: bindings.p2 = 18;
255:
256: // code for prereq hasAirbags(<car>)
257: final ResourceIterator<hasAirbags> iterator1 = KBFragement_hasAirbags_1
258: .hasAirbags_1(car, _derivation.increaseDepth());
259:
260: // code for prereq hasFrontPassengerAirbag(<car>)
261: final ResourceIterator<hasFrontPassengerAirbag> iterator2 = new NestedIterator<hasAirbags, hasFrontPassengerAirbag>(
262: iterator1) {
263: public ResourceIterator<hasFrontPassengerAirbag> getNextIterator(
264: hasAirbags object) {
265: bindings.p1 = object.slot1;
266:
267: return KBFragement_hasFrontPassengerAirbag_1
268: .hasFrontPassengerAirbag_1(bindings.p1,
269: _derivation.increaseDepth());
270: }
271: };
272:
273: // code for prereq hasSidePanelAirbags(<car>)
274: final ResourceIterator<hasSidePanelAirbags> iterator3 = new NestedIterator<hasFrontPassengerAirbag, hasSidePanelAirbags>(
275: iterator2) {
276: public ResourceIterator<hasSidePanelAirbags> getNextIterator(
277: hasFrontPassengerAirbag object) {
278: bindings.p1 = object.slot1;
279:
280: return KBFragement_hasSidePanelAirbags_1
281: .hasSidePanelAirbags_1(bindings.p1, _derivation
282: .increaseDepth());
283: }
284: };
285:
286: // code for prereq /premiumDiscount(<car>,18)
287: final ResourceIterator<PremiumDiscount> iterator4 = new NestedIterator<hasSidePanelAirbags, PremiumDiscount>(
288: iterator3) {
289: public ResourceIterator<PremiumDiscount> getNextIterator(
290: hasSidePanelAirbags object) {
291: bindings.p1 = object.slot1;
292:
293: return new SingletonIterator(new PremiumDiscount(
294: bindings.p1, bindings.p2));
295: }
296: };
297:
298: return iterator4;
299: }
300:
301: /**
302: * Method generated for query /premiumDiscount[in,out]
303: * @param car input parameter generated from slot 0
304: * @return an iterator for instances of PremiumDiscount
305: */
306: private static ResourceIterator<PremiumDiscount> getPremiumDiscount_3(
307: final example.nz.org.take.compiler.userv.domainmodel.Car car,
308: final DerivationController _derivation) {
309: _derivation.log("AD_04", DerivationController.RULE, car,
310: DerivationController.NIL);
311:
312: // Variable bindings in rule: IF /potentialTheftRating(<car>,high) AND hasAlarm(<car>) THEN /premiumDiscount(<car>,10)
313: class bindingsInRule63 {
314: // Property generated for term "high"
315: java.lang.String p1;
316:
317: // Property generated for term "<car>"
318: example.nz.org.take.compiler.userv.domainmodel.Car p2;
319:
320: // Property generated for term "10"
321: long p3;
322: }
323: ;
324:
325: final bindingsInRule63 bindings = new bindingsInRule63();
326: bindings.p1 = "high";
327: bindings.p2 = car;
328: bindings.p3 = 10;
329:
330: // code for prereq /potentialTheftRating(<car>,high)
331: final ResourceIterator<PotentialTheftRating> iterator1 = KBFragement_getPotenialTheftRating
332: .getPotenialTheftRating(car, "high", _derivation
333: .increaseDepth());
334:
335: // code for prereq hasAlarm(<car>)
336: final ResourceIterator<hasAlarm> iterator2 = new NestedIterator<PotentialTheftRating, hasAlarm>(
337: iterator1) {
338: public ResourceIterator<hasAlarm> getNextIterator(
339: PotentialTheftRating object) {
340: bindings.p2 = object.car;
341: bindings.p1 = "high";
342:
343: return KBFragement_hasAlarm_1.hasAlarm_1(bindings.p2,
344: _derivation.increaseDepth());
345: }
346: };
347:
348: // code for prereq /premiumDiscount(<car>,10)
349: final ResourceIterator<PremiumDiscount> iterator3 = new NestedIterator<hasAlarm, PremiumDiscount>(
350: iterator2) {
351: public ResourceIterator<PremiumDiscount> getNextIterator(
352: hasAlarm object) {
353: bindings.p2 = object.slot1;
354:
355: return new SingletonIterator(new PremiumDiscount(
356: bindings.p2, bindings.p3));
357: }
358: };
359:
360: return iterator3;
361: }
362: }
|