001: /**
002: LoaderGenerator - tool for generated xml, sql and doml file needed for Octopus.
003:
004:
005: Copyright (C) 2003 Together
006:
007: This library is free software; you can redistribute it and/or
008: modify it under the terms of the GNU Lesser General Public
009: License as published by the Free Software Foundation; either
010: version 2.1 of the License, or (at your option) any later version.
011:
012: This library is distributed in the hope that it will be useful,
013: but WITHOUT ANY WARRANTY; without even the implied warranty of
014: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: Lesser General Public License for more details.
016:
017: You should have received a copy of the GNU Lesser General Public
018: License along with this library; if not, write to the Free Software
019: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020: */package org.webdocwf.util.loader.transformation;
021:
022: import java.util.Vector;
023:
024: import org.webdocwf.util.loader.ConfigReader;
025: import org.webdocwf.util.loader.LoaderException;
026:
027: /**
028: *
029: * QueryTransformationSet class sets the query statement for constant columns
030: * @author unascribed
031: * @version 1.0
032: * @author Zeljko Kovacevic
033: */
034: public class QueryTransformationSet {
035:
036: private String strQueryTransformation = null;
037: private Vector indexDummyOverwrite = new Vector();
038: private Vector indexDummyNull = new Vector();
039: private Vector indexDummyUpdate = new Vector();
040: private ConfigReader targetConfigReader;
041:
042: /**
043: * Construct object QueryTransformationSet class with associated parameters
044: * @param tableName current table name
045: * @param vecTransformationColumns vector of tarnsformation column names
046: * @param vecTransformationValueMode vector of tarnsformation column modes
047: * @param vecTransformationType vector of tarnsformation column types
048: * @param targetConfigReader is ConfigReader object for target database
049: */
050: public QueryTransformationSet(String tableName,
051: Vector vecTransformationColumns,
052: Vector vecTransformationValueMode,
053: Vector vecTransformationType,
054: ConfigReader targetConfigReader) throws LoaderException {
055: strQueryTransformation = "update " + tableName + " set ";
056: for (int i = 0; i < vecTransformationColumns.size(); i++) {
057: if (vecTransformationValueMode.get(i).toString()
058: .equalsIgnoreCase("Overwrite")) {
059: //ZK change this from CheckType to targetConfigReader
060: try {
061: if (!targetConfigReader
062: .isNumber(vecTransformationType.get(i)
063: .toString())) {
064: strQueryTransformation += vecTransformationColumns
065: .get(i).toString()
066: + " = "
067: + "'dummyTransformationOver'"
068: + ", ";
069: } else {
070: strQueryTransformation += vecTransformationColumns
071: .get(i).toString()
072: + " = "
073: + "dummyTransformationOver"
074: + ", ";
075: }
076:
077: } catch (LoaderException e) {
078: LoaderException le = new LoaderException(
079: "Exception:Type not present in conf file for target database, add it into conf file.",
080: (Throwable) e);
081: throw le;
082: }
083: indexDummyOverwrite.add(String.valueOf(i));
084: } else if (vecTransformationValueMode.get(i).toString()
085: .equalsIgnoreCase("SetNull")) {
086: strQueryTransformation += "dummyTransformationNull, ";
087: indexDummyNull.add(String.valueOf(i));
088: } else if (vecTransformationValueMode.get(i).toString()
089: .equalsIgnoreCase("Update")) {
090: indexDummyUpdate.add(String.valueOf(i));
091: }
092: }
093: }
094:
095: /**
096: * This method read value of strQueryTransformation parameter
097: * @return value of parameter
098: */
099: public String getQueryTransformation() {
100: return strQueryTransformation;
101: }
102:
103: /**
104: * This method read value from indexDummyOverwrite parameter
105: * @return value of parameter
106: */
107: public Vector getIndexDummyOverwrite() {
108: return indexDummyOverwrite;
109: }
110:
111: /**
112: * This method read value from indexDummyNull parameter
113: * @return value of parameter
114: */
115: public Vector getIndexDummyNull() {
116: return indexDummyNull;
117: }
118:
119: /**
120: * This method read value from indexDummyUpdate parameter
121: * @return value of parameter
122: */
123: public Vector getIndexDummyUpdate() {
124: return indexDummyUpdate;
125: }
126: }
|