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: Filter.java 12236 2008-03-06 03:23:18Z lzheng $
23: */
24: package com.bostechcorp.cbesb.common.trn.compiler;
25:
26: import com.bostechcorp.cbesb.common.util.TabbingPrintWriter;
27: import com.bostechcorp.cbesb.common.util.macro.MacroUtil;
28:
29: public class Filter {
30:
31: private String className = "";
32: private String methodName = "";
33:
34: public String getClassName() {
35: return className;
36: }
37:
38: public void setClassName(String className) {
39: this .className = className;
40: }
41:
42: public String getMethodName() {
43: return methodName;
44: }
45:
46: public void setMethodName(String methodName) {
47: this .methodName = methodName;
48: }
49:
50: private boolean isValid() {
51: return (this .className != null && this .className.length() > 0
52: && this .methodName != null && this .methodName.length() > 0);
53: }
54:
55: /**
56: * need to be tested
57: * @param javaWriter
58: * @return
59: */
60: public void generateCode(TabbingPrintWriter javaWriter,
61: String saName) {
62:
63: if (this .isValid()) {
64: javaWriter.println("//----- START FILTER -----------");
65: javaWriter.println("if(true){");
66: javaWriter.addTab();
67: javaWriter
68: .println("Class filterClass=Class.forName(\""
69: + MacroUtil.resolveBuiltinMacro(this
70: .getClassName(), saName)
71: + "\", true, RuntimeClassLoader.getClassLoader(getServiceAssemblyName(), this));");
72: javaWriter
73: .println("Object filter=(Object)filterClass.newInstance();");
74: javaWriter.println("Class partypes[] = new Class[1];");
75: javaWriter
76: .println("partypes[0] = Class.forName(\"java.lang.String\");");
77:
78: javaWriter
79: .println("Method mtd=(Method)filterClass.getMethod(\""
80: + this .getMethodName() + "\",partypes);");
81: javaWriter.println(" Object arglist[] = new Object[1];");
82: javaWriter
83: .println(" arglist[0] = new String(outStrings[0]);");
84:
85: javaWriter
86: .println("outStrings[0]=(String)mtd.invoke(filter,arglist);");
87: javaWriter.delTab();
88: javaWriter.println("}");
89:
90: }
91:
92: }
93: }
|