01: /*
02: * ChainBuilder ESB
03: * Visual Enterprise Integration
04: *
05: * Copyright (C) 2006 Bostech Corporation
06: *
07: * This program is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU General Public License as published by the
09: * Free Software Foundation; either version 2 of the License, or (at your option)
10: * any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15: * for more details.
16: *
17: * You should have received a copy of the GNU General Public License along with
18: * this program; if not, write to the Free Software Foundation, Inc.,
19: * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20: *
21: *
22: * $Id: OperWhile.java 4289 2007-01-11 11:41:33Z lzheng $
23: */
24: package com.bostechcorp.cbesb.common.trn.compiler;
25:
26: import com.bostechcorp.cbesb.common.util.TabbingPrintWriter;
27:
28: public class OperWhile extends OperArithmetic {
29:
30: public OperWhile(String name) {
31: super (name);
32: this .builtinType = OpType.BUILTIN_OP_WHILE;
33: }
34:
35: @Override
36: public void startCode(TransformerCompiler compiler) {
37:
38: TabbingPrintWriter javaWriter = compiler.javaWriter;
39:
40: javaWriter.println("// START WHILE ");
41: // javaWriter.println("inStrings = new String["+this.sources.length+"];");
42: // for (int i=0; i<this.sources.length; i++) javaWriter.println("inStrings["+i+"] = dataAddresses["+this.sources[i].getAddressIndex()+"].getValue(sourceTree, userVars);");
43:
44: String[] varArray = DataAddress.createVarArray(this .sources,
45: this .arithmeticType);
46:
47: javaWriter.println("while("
48: + this .getExp().getJavaExp(varArray) + "){");
49:
50: javaWriter.addTab();
51: for (int i = 0; i < this .targets.length; i++) {
52: javaWriter.println("dataAddresses["
53: + this .targets[i].getAddressIndex()
54: + "].setValue(targetDoc, outTree, outStrings[" + i
55: + "],metadataMap);");
56: }
57:
58: }
59:
60: public void endCode(TabbingPrintWriter javaWriter) {
61: javaWriter.delTab();
62: javaWriter.println("}");
63: }
64:
65: }
|