KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > webdocwf > util > loader > SqlElement


1 /**
2   SqlElement - Sql element in xml file.
3     Copyright (C) 2002-2003 Together
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Lesser General Public
6     License as published by the Free Software Foundation; either
7     version 2.1 of the License, or (at your option) any later version.
8     This library is distributed in the hope that it will be useful,
9     but WITHOUT ANY WARRANTY; without even the implied warranty of
10     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11     Lesser General Public License for more details.
12     You should have received a copy of the GNU Lesser General Public
13     License along with this library; if not, write to the Free Software
14     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15  SqlElement.java
16  Date: 20.5.2003.
17  @version 1.0.0
18  @author: Zoran Milakovic zoran@prozone.co.yu
19  */

20
21 package org.webdocwf.util.loader;
22
23 import java.io.*;
24 import java.util.*;
25 import javax.xml.parsers.*;
26 import org.w3c.dom.*;
27 import org.webdocwf.util.loader.logging.*;
28
29 /**
30  * Class is wrapper for SqlElement tag in XML file.
31  *
32  * @author Zoran Milakovic
33  * @version 1.1
34  */

35 public class SqlElement {
36
37   private String JavaDoc strSqlName = "";
38   //private String strSqlLogMode = "";
39
private String JavaDoc strSqlOnErrorContinue = "";
40   private String JavaDoc strSqlCommit = "";
41
42 // String strLogMode = "";
43
private String JavaDoc strDefaultLogMode = "";
44   private boolean bOnErrorContinue;
45   private boolean bDefaultOnErrorContinue = false;
46   private boolean bDefaultCommit = true;
47 // private String strTargetDbVendor = "";
48
// private String strTargetDriverName = "";
49

50 // private String strJDBCTargetParameterDriver = "";
51
// private String strJDBCTargetParameterConnection = "";
52
// private String strJDBCTargetParameterUser = "";
53
// private String strJDBCTargetParameterPassword = "";
54
// private String strTargetDriverClassName = "";
55

56   private JdbcParametersElement jdbcParametersElement;
57   private ConfigReader configReader;
58   private Logger logger;
59   private LoaderJobAttrReader loaderJobReader;
60
61   /**
62    * Method parseSql is used to analyse import XML file
63    * about sql tags. Return number of sql elements in a whole xml input file.
64    * @param inStream Data from inputXML file which is converted into InputStream.
65    * @return Number of sql tags in an input XML file.
66    * @throws LoaderException
67    */

68   public int parseSql(InputStream inStream) throws LoaderException {
69     int iNumTagsImportJob = 0;
70     Document doc = null;
71     this.logger.write("full", "\tparseSql method is started.");
72     try {
73       DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
74       DocumentBuilder db = null;
75       db = dbf.newDocumentBuilder();
76       doc = db.parse(inStream);
77     }
78     catch (Exception JavaDoc e) {
79       this.logger.write("normal", "Sorry, an error occurred: " + e);
80       LoaderException le = new LoaderException("Exception: ",
81                                                (Throwable JavaDoc) e);
82       throw le;
83 // System.exit(1);
84
}
85     if (doc != null) {
86       NodeList tagBasic = doc.getElementsByTagName("sql");
87       iNumTagsImportJob = tagBasic.getLength();
88         Vector vecNames = new Vector();
89         String JavaDoc strName = "";
90         for (int i = 0; i < iNumTagsImportJob; i++) {
91           strName = new String JavaDoc("");
92           strName = OctopusXMLUtil.importAttributeValue(doc, "sql","name",i);
93           for (int j = 0; j < vecNames.size(); j++) {
94             if (strName.equals("")) {
95               this.logger.write("normal",
96                   "Sorry, an error occurred: No Sql statement name .");
97               LoaderException le = new LoaderException("Exception: ",
98                   (Throwable JavaDoc) (new Exception JavaDoc(
99                   "Sorry, an error occurred: No Sql statement name .")));
100               throw le;
101             }
102             if (strName.equalsIgnoreCase(vecNames.get(j).toString())) {
103               this.logger.write("normal",
104                   "Sorry, an error occurred: More Sql statements with same name :"
105                   + strName);
106               LoaderException le = new LoaderException("Exception: ",
107                   (Throwable JavaDoc) (new Exception JavaDoc(
108                   "Sorry, an error occurred: More Sql statements with same name :")));
109               throw le;
110             }
111           }
112           vecNames.addElement(strName);
113         }
114     }
115     try {
116       inStream.reset();
117     }
118     catch (IOException e) {
119       this.logger.write("normal", "Sorry, an error occurred: " + e);
120       LoaderException le = new LoaderException("IOxception: ",
121                                                (Throwable JavaDoc) e);
122       throw le;
123 // System.exit(1);
124
}
125     this.logger.write("full", "\tparseSql method is finished.");
126     return iNumTagsImportJob;
127   }
128
129   /**
130    * This method set value of logger parameter
131    * @param logger is value of parameter
132    */

133   public void setLogger(Logger logger) {
134     this.logger = logger;
135   }
136
137   /**
138    * This method set value of echo parameter
139    * @param reader is value of parameter
140    */

141   public void setConfigReader(ConfigReader reader) {
142     this.configReader = reader;
143   }
144
145   /**
146    * This method set value of jdbcParametersElement parameter
147    * @param jdbc is value of parameter
148    */

149   public void setJdbcParametersElement(JdbcParametersElement jdbc) {
150     this.jdbcParametersElement = jdbc;
151   }
152
153   /**
154    * Method importSQLStatement imports sql attributes from xml file and puts them in the global variables.
155    * Return Vector. It's elements are strings which represents sql statements.
156    * @param inStream Data from inputXML file which is converted into InputStream.
157    * @param iSqlItem Number of sql tag in XML file which will be analised.
158    * @return vector
159    * @throws LoaderException
160    */

161   public Vector importSQLStatement(InputStream inStream, int iSqlItem) throws LoaderException {
162     Vector strValue = new Vector();
163     Vector vecJDBCTargetValue = new Vector();
164     Vector vecJDBCTargetName = new Vector();
165     Document doc = null;
166     String JavaDoc strNodeValue = "";
167     this.logger.write("full", "\timportSQLStatement method is started.");
168     try {
169       DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
170       DocumentBuilder db = null;
171       db = dbf.newDocumentBuilder();
172       doc = db.parse(inStream);
173       if (doc != null) {
174         NodeList tagBasic = doc.getElementsByTagName("sql");
175         if (tagBasic.getLength() != 0) {
176           Element docFragment = (Element) tagBasic.item(iSqlItem);
177           this.strSqlName = docFragment.getAttribute("name");
178 /*
179           this.strSqlLogMode = docFragment.getAttribute("logMode");
180           if (this.strSqlLogMode.equals("")) {
181               this.strSqlLogMode = loaderJobReader.getDefaultLogMode();
182           }
183 */

184           this.strSqlOnErrorContinue = docFragment.getAttribute("onErrorContinue");
185 // if (this.strSqlOnErrorContinue.equals("")) {
186
// if (this.bOnErrorContinue == true)
187
// this.strSqlOnErrorContinue = "true";
188
// else
189
// this.strSqlOnErrorContinue = (new Boolean(this.bDefaultOnErrorContinue)).toString();
190
// }
191

192
193           this.strSqlCommit = docFragment.getAttribute("commit");
194           if (this.strSqlCommit.equals("")) {
195             this.strSqlCommit = (new Boolean JavaDoc(this.bDefaultCommit)).toString();
196           }
197           String JavaDoc strReturnCode = docFragment.getAttribute("returnCode");
198           if (!strReturnCode.equals("")) {
199             ReturnCode.setErrorReturnCode(Integer.parseInt(strReturnCode));
200           }
201           else
202             ReturnCode.setErrorReturnCode(ReturnCode.getDefaultErrorReturnCode());
203
204           NodeList targetTag = docFragment.getElementsByTagName("sqlStmt");
205           for (int i = 0; i < targetTag.getLength(); i++) {
206             NodeList nodeText = targetTag.item(i).getChildNodes();
207             if (nodeText.item(0) != null) {
208               strNodeValue = nodeText.item(0).getNodeValue();
209               strValue.addElement(strNodeValue);
210             }
211           }
212         }
213       }
214     }
215     catch (Exception JavaDoc e) {
216       this.logger.write("normal", "Sorry, an error occurred: " + e);
217       LoaderException le = new LoaderException("Exception: ",
218                                                (Throwable JavaDoc) e);
219       throw le;
220 // System.exit(1);
221
}
222     try {
223       inStream.reset();
224     }
225     catch (IOException e) {
226       this.logger.write("normal", "Sorry, an error occurred: " + e);
227       LoaderException le = new LoaderException("IOException: ",
228                                                (Throwable JavaDoc) e);
229       throw le;
230 // System.exit(1);
231
}
232     this.logger.write("full", "\timportSQLStatement method is finished.");
233     return strValue;
234   }
235
236 // public String getTargetDriverClassName() {
237
// return this.strTargetDriverClassName;
238
// }
239
// public String getJDBCTargetParameterPassword() {
240
// return this.strJDBCTargetParameterPassword;
241
// }
242
//
243
// public String getJDBCTargetParameterUser() {
244
// return this.strJDBCTargetParameterUser;
245
// }
246
//
247
// public String getJDBCTargetParameterConnection() {
248
// return this.strJDBCTargetParameterConnection;
249
// }
250
//
251
// public String getJDBCTargetParameterDriver() {
252
// return this.strJDBCTargetParameterDriver;
253
// }
254

255 // public String getTargetDriverName() {
256
// return this.strTargetDriverName;
257
// }
258
//
259
// public String getTargetDbVendor() {
260
// return this.strTargetDbVendor;
261
// }
262

263   /**
264    * This method read value of bDefaultCommit parameter
265    * @return default value for attribute Commit
266    */

267   public boolean getDefaultCommit() {
268     return this.bDefaultCommit;
269   }
270
271   /**
272    * This method read value of bDefaultOnErrorContinue parameter
273    * @return default value for attribute OnErrorContinue
274    */

275   public boolean getDefaultOnErrorContinue() {
276     return this.bDefaultOnErrorContinue;
277   }
278
279   /**
280    * This method read value of bOnErrorContinue parameter
281    * @return value for attribute OnErrorContinue
282    */

283   public boolean getOnErrorContinue() {
284     return this.bOnErrorContinue;
285   }
286
287   /**
288    * This method read value of strDefaultLogMode parameter
289    * @return default value for attribute LogMode
290    */

291   public String JavaDoc getDefaultLogMode() {
292     return this.strDefaultLogMode;
293   }
294
295   /**
296    * This method read value of strLogMode parameter
297    * @return value for attribute LogMode
298    */

299 // public String getLogMode() {
300
// return this.strLogMode;
301
// }
302

303   /**
304    * This method read value of strSqlCommit parameter
305    * @return value for attribute SqlCommit
306    */

307   public String JavaDoc getSqlCommit() {
308     return this.strSqlCommit;
309   }
310
311   /**
312    * This method read value of strSqlOnErrorContinue parameter
313    * @return value for attribute SqlOnErrorContinue
314    */

315   public String JavaDoc getSqlOnErrorContinue() {
316     return this.strSqlOnErrorContinue;
317   }
318
319   /**
320    * This method read value of strSqlLogMode parameter
321    * @return value for attribute SqlLogMode
322    */

323 // public String getSqlLogMode() {
324
// return this.strSqlLogMode;
325
// }
326

327   /**
328    * This method read value of strSqlName parameter
329    * @return value for attribute SqlName
330    */

331   public String JavaDoc getSqlName() {
332     return this.strSqlName;
333   }
334
335   /**
336     * Set LoaderJobAttrReader object
337     * @param loader LoaderJobAttrReader object,which stores loaderJob tag attributes
338     */

339    public void setLoaderJob(LoaderJobAttrReader loader) {
340      this.loaderJobReader = loader;
341    }
342
343
344
345 }
Popular Tags