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:$
23: *
24: */
25: package com.bostechcorp.cbesb.common.util.custom.code;
26:
27: /**
28: * @author inpro
29: *
30: */
31: public class GeneratorFactory {
32:
33: private static final Exception WrongGeneratorId = new Exception(
34: "Wrong source generator identifier, check the Id number.");
35:
36: /**
37: * Source generator's identifiers
38: */
39: final static public int GROOVY_UPOC = 11;
40: final static public int GROOVY_TRX_ID = 12;
41: final static public int GROOVY_SCRIPT = 13;
42:
43: final static public int JAVA_MAP_FILTER = 21;
44: final static public int JAVA_MAP_USER_OPERATION = 22;
45: final static public int JAVA_SCRIPT_COMPONENT = 23;
46: final static public int JAVA_TRX_ID = 24;
47: final static public int JAVA_UPOC = 25;
48: final static public int JAVA_ETL_ERROR_HANDLER = 26;
49:
50: /**
51: * return an instance of a specific type ($id) source generator,
52: * otherwise thows an exception if could not instantiate
53: * @param id should be one of the class constants
54: * @param outputFile - specifyes the oputput file
55: * @return instance of specific FileGenerator
56: * @throws Exception if there is a wrong generator id
57: */
58: public AbstractCodeGenerator getGenerator(int id, String outputFile)
59: throws Exception {
60: switch (id) {
61: case GROOVY_UPOC:
62: return new GroovyUpocGenerator(outputFile);
63: case GROOVY_SCRIPT:
64: return new GroovyScriptGenerator(outputFile);
65: case GROOVY_TRX_ID:
66: return new GroovyTrxIDGenerator(outputFile);
67: case JAVA_MAP_FILTER:
68: return new JavaMapFilterGenerator(outputFile);
69: case JAVA_MAP_USER_OPERATION:
70: return new JavaMapUserOperationGenerator(outputFile);
71: case JAVA_SCRIPT_COMPONENT:
72: return new JavaScriptGenerator(outputFile);
73: case JAVA_TRX_ID:
74: return new JavaTrxIDGenerator(outputFile);
75: case JAVA_UPOC:
76: return new JavaUpocGenerator(outputFile);
77: case JAVA_ETL_ERROR_HANDLER:
78: return new JavaEtlErrorHandlerGenerator(outputFile);
79:
80: default:
81: throw WrongGeneratorId;
82: }
83: }
84:
85: }
|