KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > webdocwf > util > loader > generator > WriteSqlFiles


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

22
23 package org.webdocwf.util.loader.generator;
24
25 import java.io.BufferedWriter JavaDoc;
26 import java.io.File JavaDoc;
27 import java.io.FileWriter JavaDoc;
28 import java.io.Writer JavaDoc;
29 import java.util.Vector JavaDoc;
30
31 import org.webdocwf.util.loader.LoaderException;
32 import org.webdocwf.util.loader.logging.Logger;
33 import org.webdocwf.util.loader.logging.StandardLogger;
34
35 /**
36  *
37  * WriteSqlFiles class creates sql files from input data.
38  * @author Radoslav Dutina
39  * @version 1.0
40  */

41 public class WriteSqlFiles {
42     private Logger logger;
43
44     /**
45      * Construct object WriteSqlFiles with associated parameters.
46      * @param generatorParameters represents the references to InputParameter object.
47      * @param tableName is name of the table form which we retrieve data.
48      * @param i is the number of tables in generatorOutput directories.
49      * @param importDefinitionAttributes is references to ImportDefinitionAttributes object.
50      * @param relationshipsAttributes is references to RelationshipsAttributes object.
51      * @throws LoaderException
52      */

53
54     public WriteSqlFiles(String JavaDoc tableName, int i, ImportDefinitionAttributes importDefinitionAttributes, RelationshipsAttributes relationshipsAttributes, InputParameters generatorParameters) throws LoaderException {
55                 setLogger();
56                 this.logger.write("full", "WriteSqlFiles is started.");
57         Writer JavaDoc out;
58         SqlTagAttributes sqlTagAttributes = null;
59         String JavaDoc nameSQL;
60         Vector JavaDoc sqlStatement = generatorParameters.getSqlToGenerate();
61         try {
62             File JavaDoc sqlFile = null;
63             if (generatorParameters.getGeneratorOutput().equalsIgnoreCase("")) {
64                 sqlFile = new File JavaDoc("sql");
65             } else {
66                 sqlFile = new File JavaDoc(generatorParameters.getGeneratorOutput() + "/sql");
67             }
68             if (!sqlFile.exists())
69                 sqlFile.mkdirs();
70             int x = 0;
71             while (x < 6) {
72                 if (sqlStatement.get(x) != null) {
73                     sqlTagAttributes = new SqlTagAttributes(x);
74                     nameSQL = sqlTagAttributes.getHref().substring(sqlTagAttributes.getHref().lastIndexOf("/") + 1, sqlTagAttributes.getHref().lastIndexOf("."));
75                     SqlStatements sqlStatements = new SqlStatements(nameSQL, tableName, importDefinitionAttributes, relationshipsAttributes, i, generatorParameters);
76                     String JavaDoc lineSeparator = System.getProperty("line.separator");
77                     String JavaDoc[] lines = sqlStatements.getCreateStream();
78
79                     if (i == 0) {
80                         //this is the first time, that we are write sql files.
81
out = new BufferedWriter JavaDoc(new FileWriter JavaDoc(sqlFile + sqlTagAttributes.getHref().substring(sqlTagAttributes.getHref().lastIndexOf("/")), false));
82                     } else {
83                         out = new BufferedWriter JavaDoc(new FileWriter JavaDoc(sqlFile + sqlTagAttributes.getHref().substring(sqlTagAttributes.getHref().lastIndexOf("/")), true));
84                     }
85                     for (int k = 0; k < lines.length; k++) {
86                         out.write(lines[k]);
87                         out.write(lineSeparator);
88                     }
89                     out.close();
90                 }
91                 x++;
92
93             } //end while
94
} catch (Exception JavaDoc e) {
95             String JavaDoc msg = "Exception in class WriteSqlFiles: Error has occurred when trying to write sql file!";
96             LoaderException le = new LoaderException(msg + "\n" + e.getMessage(), (Throwable JavaDoc) e);
97                         this.logger.write("full","Exception:"+ msg + "\n" + le.getStackTraceAsString());
98             throw le;
99         }
100         this.logger.write("full", "WriteSqlFiles is finished.");
101
102     }
103     /**
104      * This method will set logger object
105      * @param logger
106        */

107     private void setLogger() {
108         this.logger = StandardLogger.getCentralLogger();
109     }
110 }
Popular Tags