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 org.w3c.dom.Document;
26 import org.w3c.dom.Element;
27 import org.webdocwf.util.loader.LoaderException;
28 import org.webdocwf.util.loader.logging.Logger;
29 import org.webdocwf.util.loader.logging.StandardLogger;
30
31 /***
32 *
33 * WriteImportDefinition class creates ImportDefinition.xml file.
34 * @author Radoslav Dutina
35 * @version 1.0
36 */
37 public class WriteImportDefinition {
38 private Logger logger;
39
40 /***
41 * Construct object WriteImportDefinition with associated parameters.
42 * @param document is the org.w3c.dom.Document object, which is created in CreateIncludeFile class.
43 * @param root is the root element from document object.
44 * @param importDefinitionAttributes is references to ImportDefinitionAttributes object.
45 * @param generatorParameters represents the references to InputParameter object.
46 * @throws LoaderException
47 */
48
49 public WriteImportDefinition(Document document, Element root, ImportDefinitionAttributes importDefinitionAttributes, InputParameters generatorParameters) throws LoaderException {
50 setLogger();
51 this.logger.write("full", "WriteImportDefinition is started.");
52 if (!generatorParameters.getFullMode()) {
53
54 Element childRoot1 = (Element) document.createElement("copyTable");
55 root.appendChild(childRoot1);
56 childRoot1.setAttribute("name", importDefinitionAttributes.getName());
57 childRoot1.setAttribute("sourceTableName", importDefinitionAttributes.getName());
58 childRoot1.setAttribute("targetTableName", importDefinitionAttributes.getName());
59 // childRoot1.setAttribute("logMode", importDefinitionAttributes.getLogMode());
60 childRoot1.setAttribute("objectIDIncrement", importDefinitionAttributes.getObjectIDIncrementid());
61 childRoot1.setAttribute("oidLogic", "false");
62 childRoot1.setAttribute("onErrorContinue", "false");
63
64 } else {
65 Element childRoot1 = (Element) document.createElement("importDefinition");
66 root.appendChild(childRoot1);
67 childRoot1.setAttribute("name", importDefinitionAttributes.getName());
68 childRoot1.setAttribute("tableName", importDefinitionAttributes.getTableName());
69 //childRoot1.setAttribute("objectIDIncrement", importDefinitionAttributes.getObjectIDIncrementid());
70 // childRoot1.setAttribute("logMode", importDefinitionAttributes.getLogMode());
71
72 Element childRoot2 = (Element) document.createElement("valueColumns");
73 childRoot1.appendChild(childRoot2);
74
75 for (int i = 0; i < importDefinitionAttributes.getTagSourceColumnName().length; i++) {
76 if (generatorParameters.getSourceType().equalsIgnoreCase("csv")) {
77 Element childRoot3 = (Element) document.createElement("valueColumn");
78 childRoot2.appendChild(childRoot3);
79 childRoot3.setAttribute("sourceColumnName", importDefinitionAttributes.getTagSourceColumnName()[i]);
80 childRoot3.setAttribute("targetTableName", importDefinitionAttributes.getTagTargetTableName()[i]);
81 childRoot3.setAttribute("targetColumnName", importDefinitionAttributes.getTagTargetColumnName()[i]);
82 childRoot3.setAttribute("targetTableID", importDefinitionAttributes.getTagTargetTableID()[i]);
83 childRoot3.setAttribute("valueMode", generatorParameters.getValueMode());
84 } else {
85 if (!generatorParameters.getValueMode().equalsIgnoreCase("Overwrite")) {
86 if (!importDefinitionAttributes.getTagSourceColumnName()[i].equalsIgnoreCase("oid") && !importDefinitionAttributes.getTagSourceColumnName()[i].equalsIgnoreCase("version")) {
87 boolean fk = true;
88 for (int j = 0; j < RelationshipsAttributes.getForeignVariables().length; j = j + 5) {
89 if (RelationshipsAttributes.getForeignVariables()[j + 2].equalsIgnoreCase(importDefinitionAttributes.getTagSourceColumnName()[i])) {
90 fk = false;
91 break;
92 }
93 }
94 if (fk) {
95 Element childRoot3 = (Element) document.createElement("valueColumn");
96 childRoot2.appendChild(childRoot3);
97 childRoot3.setAttribute("sourceColumnName", importDefinitionAttributes.getTagSourceColumnName()[i]);
98 childRoot3.setAttribute("targetTableName", importDefinitionAttributes.getTagTargetTableName()[i]);
99 childRoot3.setAttribute("targetColumnName", importDefinitionAttributes.getTagTargetColumnName()[i]);
100 childRoot3.setAttribute("targetTableID", importDefinitionAttributes.getTagTargetTableID()[i]);
101 childRoot3.setAttribute("valueMode", generatorParameters.getValueMode());
102
103 }
104 }
105 } else {
106 // if (!importDefinitionAttributes.getTagSourceColumnName()[i].equalsIgnoreCase("version")) {
107 if (!importDefinitionAttributes.getTagColumnType()[i].toLowerCase().endsWith("identity")) {
108 Element childRoot3 = (Element) document.createElement("valueColumn");
109 childRoot2.appendChild(childRoot3);
110 childRoot3.setAttribute("sourceColumnName", importDefinitionAttributes.getTagSourceColumnName()[i]);
111 childRoot3.setAttribute("targetTableName", importDefinitionAttributes.getTagTargetTableName()[i]);
112 childRoot3.setAttribute("targetColumnName", importDefinitionAttributes.getTagTargetColumnName()[i]);
113 childRoot3.setAttribute("targetTableID", importDefinitionAttributes.getTagTargetTableID()[i]);
114 childRoot3.setAttribute("valueMode", generatorParameters.getValueMode());
115 }
116 // } else {
117 // Element childRoot5 = (Element) document.createElement("constantColumns");
118 // childRoot1.appendChild(childRoot5);
119 // Element childRoot3 = (Element) document.createElement("constantColumn");
120 // childRoot5.appendChild(childRoot3);
121 // childRoot3.setAttribute("constantValue", "0");
122 // childRoot3.setAttribute("targetTableName", importDefinitionAttributes.getTagTargetTableName()[i]);
123 // childRoot3.setAttribute("targetColumnName", "version");
124 // childRoot3.setAttribute("targetTableID", "0");
125 // childRoot3.setAttribute("valueMode", generatorParameters.getValueMode());
126 // }
127 }
128 }
129 }
130
131 if (!generatorParameters.getSourceType().equalsIgnoreCase("csv")) {
132 int j = 0;
133 if (generatorParameters.getValueMode().equalsIgnoreCase("Overwrite")) {
134 //
135 } else {
136 //valueMode=Overwrite
137 if (RelationshipsAttributes.getForeignVariables().length != 0) {
138 Element childRoot100 = (Element) document.createElement("relationColumns");
139 childRoot1.appendChild(childRoot100);
140 for (int i = 0; i < RelationshipsAttributes.getForeignVariables().length; i = i + 5) {
141 Element childRoot101 = (Element) document.createElement("relationColumn");
142 childRoot100.appendChild(childRoot101);
143 childRoot101.setAttribute("relationSourceTableName", RelationshipsAttributes.getForeignVariables()[i + 3]);
144 childRoot101.setAttribute("relationTargetTableName", importDefinitionAttributes.getTableName());
145 childRoot101.setAttribute("relationTargetColumnName", RelationshipsAttributes.getForeignVariables()[i + 2]);
146
147 if (i > 5 && RelationshipsAttributes.getForeignVariables()[i + 3].equalsIgnoreCase(RelationshipsAttributes.getForeignVariables()[(i + 3) - 5])) {
148 j = j + 1;
149 } else {
150 j = 0;
151 }
152 childRoot101.setAttribute("relationSourceTableID", "" + j);
153 childRoot101.setAttribute("relationTargetTableID", "0");
154 childRoot101.setAttribute("relationMode", generatorParameters.getValueMode());
155 }
156 }
157 }
158
159 int k = 0;
160 int l = 0;
161 if (RelationshipsAttributes.getForeignVariables().length != 0) {
162 Element childRoot200 = (Element) document.createElement("tables");
163 childRoot1.appendChild(childRoot200);
164 for (int i = 0; i < RelationshipsAttributes.getForeignVariables().length; i = i + 5) {
165 TableAttributes tableAttributes = new TableAttributes(importDefinitionAttributes.getTableName(), generatorParameters.getValueMode());
166 if (l == 0) {
167 //in the first loop
168 Element childRoot201 = (Element) document.createElement("table");
169 childRoot200.appendChild(childRoot201);
170 childRoot201.setAttribute("tableName", tableAttributes.getTableName());
171 childRoot201.setAttribute("tableID", "" + k);
172 childRoot201.setAttribute("insert", tableAttributes.getInsert());
173 childRoot201.setAttribute("tableMode", tableAttributes.getTableMode());
174 childRoot201.setAttribute("oidLogic", tableAttributes.getOidLogic());
175 l++;
176 k++;
177 }
178 if (generatorParameters.getValueMode().equalsIgnoreCase("Overwrite")) {
179 //
180 } else {
181 //valueMode=Overwrite
182 if (RelationshipsAttributes.getForeignVariables()[i + 3].equalsIgnoreCase(importDefinitionAttributes.getTableName())) {
183 //k=k+1
184 Element childRoot202 = (Element) document.createElement("table");
185 childRoot200.appendChild(childRoot202);
186 childRoot202.setAttribute("tableName", tableAttributes.getTableName());
187 childRoot202.setAttribute("tableID", "" + k);
188 childRoot202.setAttribute("insert", "false");
189 childRoot202.setAttribute("tableMode", tableAttributes.getTableMode());
190 childRoot202.setAttribute("oidLogic", tableAttributes.getOidLogic());
191 k++; //
192 } else {
193 k = 0;
194 if (i > 5 && RelationshipsAttributes.getForeignVariables()[i + 3].equalsIgnoreCase(RelationshipsAttributes.getForeignVariables()[(i + 3) - 5])) {
195 k = k + 1;
196 } else {
197 k = 0;
198 }
199 Element childRoot205 = (Element) document.createElement("table");
200 childRoot200.appendChild(childRoot205);
201 childRoot205.setAttribute("tableName", RelationshipsAttributes.getForeignVariables()[i + 3]);
202 childRoot205.setAttribute("tableID", "" + k);
203 childRoot205.setAttribute("insert", "false");
204 childRoot205.setAttribute("tableMode", tableAttributes.getTableMode());
205 childRoot205.setAttribute("oidLogic", tableAttributes.getOidLogic());
206 }
207 }
208 }
209 } else {
210 //RelationshipsAttributes.getForeignVariables().length==0
211 Element childRoot200 = (Element) document.createElement("tables");
212 childRoot1.appendChild(childRoot200);
213 Element childRoot203 = (Element) document.createElement("table");
214 childRoot200.appendChild(childRoot203);
215 TableAttributes tableAttributes = new TableAttributes(importDefinitionAttributes.getTableName(), generatorParameters.getValueMode());
216 childRoot203.setAttribute("tableName", tableAttributes.getTableName());
217 childRoot203.setAttribute("tableID", "" + k);
218 childRoot203.setAttribute("insert", tableAttributes.getInsert());
219 childRoot203.setAttribute("tableMode", tableAttributes.getTableMode());
220 childRoot203.setAttribute("oidLogic", tableAttributes.getOidLogic());
221 }
222 } else {
223 //for csv tables
224 Element childRoot200 = (Element) document.createElement("tables");
225 childRoot1.appendChild(childRoot200);
226 Element childRoot201 = (Element) document.createElement("table");
227 childRoot200.appendChild(childRoot201);
228 TableAttributes tableAttributes = new TableAttributes(importDefinitionAttributes.getTableName(), generatorParameters.getValueMode());
229 childRoot201.setAttribute("tableName", tableAttributes.getTableName());
230 childRoot201.setAttribute("tableID", tableAttributes.getTableID());
231 childRoot201.setAttribute("insert", tableAttributes.getInsert());
232 childRoot201.setAttribute("tableMode", tableAttributes.getTableMode());
233 childRoot201.setAttribute("oidLogic", tableAttributes.getOidLogic());
234
235 }
236 }
237 this.logger.write("full", "WriteImportDefinition is finished.");
238 }
239 /***
240 * This method will set logger object
241 * @param logger
242 */
243 private void setLogger() {
244 this.logger = StandardLogger.getCentralLogger();
245 }
246 }
This page was automatically generated by Maven