1 package com.instantbank.collections.creditInfo.web;
2
3 import java.io.ByteArrayInputStream;
4 import oracle.xml.parser.v2.DOMParser;
5 import oracle.xml.parser.v2.XMLDocument;
6 import oracle.xml.parser.v2.XMLNode;
7 import org.w3c.dom.Element;
8 import org.w3c.dom.NodeList;
9 import com.instantbank.collections.basicInfo.ejb.BasicInfoServices;
10 import com.instantbank.collections.basicInfo.ejb.BasicInfoServicesHome;
11 import com.instantbank.collections.customerInfo.ejb.CustomerInfoServices;
12 import com.instantbank.collections.customerInfo.ejb.CustomerInfoServicesHome;
13 import com.instantbank.collections.util.ServiceLocator;
14
15 public class DemographicsTransformer {
16
17 private BasicInfoServices basicInfoServices;
18 private CustomerInfoServices customerInfoServices;
19 private String customerXmlString;
20 private XMLDocument customerXml;
21
22
23 public DemographicsTransformer() {
24 try {
25 CustomerInfoServicesHome cishome = (CustomerInfoServicesHome)
26 ServiceLocator.instance().createEJB("CustomerInfoServicesHome", CustomerInfoServicesHome.class, false);
27 customerInfoServices = cishome.create();
28
29 BasicInfoServicesHome bishome = (BasicInfoServicesHome)
30 ServiceLocator.instance().createEJB("BasicInfoServicesHome", BasicInfoServicesHome.class, false);
31 basicInfoServices = bishome.create();
32 }
33 catch(Exception e) {
34 }
35 }
36
37
38 public String getAccommodationStatusesOptions() throws Exception {
39
40 DOMParser docParser = new DOMParser();
41 XMLNode node;
42 NodeList nodeList;
43 String asOptions = "";
44 XMLDocument asXml;
45 String asXmlStr;
46 Element root;
47 ByteArrayInputStream stream;
48
49 try {
50 asXmlStr = basicInfoServices.getAccommodationStatuses();
51
52 stream = new ByteArrayInputStream(asXmlStr.getBytes());
53 docParser.setValidationMode(false);
54 docParser.parse(stream);
55 asXml = docParser.getDocument();
56
57 root = asXml.getDocumentElement();
58
59 nodeList = root.getChildNodes();
60 for(int i = 0; i < nodeList.getLength(); i++) {
61 node = (XMLNode)nodeList.item(i);
62 asOptions += "<option value='" + node.valueOf("./code") + "'>" + node.valueOf("./description") + "</option>";
63 }
64 }
65 catch(Exception e) {
66 }
67 return asOptions;
68 }
69
70
71 public String getCustomersArray() throws Exception {
72 String customerRole = "";
73 String customersArray = "";
74 int index;
75 String businessExtension = "";
76 String businessPhone = "";
77 String businessPhoneId = "";
78 String homePhone = "";
79 String homePhoneId = "";
80 String mobilePhone = "";
81 String mobilePhoneId = "";
82 XMLNode node;
83 NodeList nodeList;
84 String pager = "";
85 String pagerCode = "";
86 String pagerId = "";
87 XMLNode phoneNode;
88 NodeList phoneNodeList;
89 Element root;
90 String screenType;
91
92 root = customerXml.getDocumentElement();
93 nodeList = root.getChildNodes();
94 for(index = 0; index < nodeList.getLength(); index++) {
95 node = (XMLNode)nodeList.item(index);
96 customerRole = node.valueOf("./role");
97 screenType = node.valueOf("./screentype");
98 if(!screenType.equals("EM")) {
99 phoneNodeList = node.selectNodes("./Customer/Info/PhoneList/Phone");
100 businessExtension = "";
101 businessPhone = "";
102 businessPhoneId = "";
103 pager = "";
104 pagerCode = "";
105 pagerId = "";
106 mobilePhone = "";
107 mobilePhoneId = "";
108 for(int i = 0; i < phoneNodeList.getLength(); i++) {
109 phoneNode = (XMLNode)phoneNodeList.item(i);
110 if(phoneNode.valueOf("./phonetype").equals("BU")) {
111 businessExtension = phoneNode.valueOf("./phoneextension");
112 businessPhone = phoneNode.valueOf("./phonenumber");
113 businessPhoneId = phoneNode.valueOf("./phoneid");
114 }
115 else if(phoneNode.valueOf("./phonetype").equals("PG")) {
116 pager = phoneNode.valueOf("./phonenumber");
117 pagerCode = phoneNode.valueOf("./phoneextension");
118 pagerId = phoneNode.valueOf("./phoneid");
119 }
120 else if(phoneNode.valueOf("./phonetype").equals("MB")) {
121 mobilePhone = phoneNode.valueOf("./phonenumber");
122 mobilePhoneId = phoneNode.valueOf("./phoneid");
123 }
124 else if(phoneNode.valueOf("./phonetype").equals("HO")) {
125 homePhone = phoneNode.valueOf("./phonenumber");
126 homePhoneId = phoneNode.valueOf("./phoneid");
127 }
128 }
129 customersArray += "cust = new Customer(" +
130 "\"" + node.valueOf("./Customer/Info/id") + "\", " +
131 "\"" + node.valueOf("./Customer/Info/firstname") + "\", " +
132 "\"" + node.valueOf("./Customer/Info/middlename") + "\", " +
133 "\"" + node.valueOf("./Customer/Info/lastname") + "\", " +
134 "\"" + node.valueOf("./Customer/Info/generation") + "\", " +
135 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/addressid") + "\", " +
136 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/address1") + "\", " +
137 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/address2") + "\", " +
138 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/city") + "\", " +
139 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/stateid") + "\", " +
140 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/statecode") + "\", " +
141 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/zipcode") + "\", " +
142 "\"" + node.valueOf("./Customer/Info/email") + "\", " +
143 "\"" + node.valueOf("./Customer/Info/Occupation/OccupationInfo/description") + "\", " +
144 "\"" + node.valueOf("./Customer/Info/Occupation/OccupationInfo/employer") + "\", " +
145 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/countryid") + "\", " +
146 "\"" + homePhone + "\", " +
147 node.valueOf("./Customer/Info/statusid") + ", " +
148 "\"" + mobilePhoneId + "\", " +
149 "\"" + mobilePhone + "\", " +
150 "\"" + pagerId + "\", " +
151 "\"" + pager + "\", " +
152 "\"" + pagerCode + "\", " +
153 "\"" + businessPhoneId + "\", " +
154 "\"" + businessPhone + "\", " +
155 "\"" + businessExtension + "\", " +
156 "\"" + node.valueOf("./Customer/Info/birthdate") + "\", " +
157 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/accommodationstatusid") + "\", " +
158 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/timeinresidence") + "\", " +
159 "\"" + node.valueOf("./Customer/Info/Occupation/OccupationInfo/timejob") + "\", " +
160 "\"" + node.valueOf("./Customer/Info/ssn") + "\", " +
161 "\"" + node.valueOf("./Customer/Info/Occupation/OccupationInfo/income") + "\", " +
162 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/startdate") + "\", " +
163 "\"" + node.valueOf("./Customer/Info/Address/AddressInfo/enddate") + "\", " +
164
165 "\"" + node.valueOf("./Customer/Info/driverslicense") + "\"," +
166 "\"" + node.valueOf("./Customer/Info/namekey") + "\"" +
167
168 ");\n";
169
170
171 String sNameKey = node.valueOf("./Customer/Info/namekey");
172
173
174 customersArray += "customersArray[" + (new Integer(index)).toString() + "] = new CustomerRole(\"" + customerRole + "\",cust,\"" + screenType + "\");\n";
175 }
176 else {
177 customersArray += "corp = new Corporation(" +
178 "\"" + node.valueOf("./Corporation/Info/id") + "\", " +
179 "\"" + node.valueOf("./Corporation/Info/name") + "\", " +
180 "\"" + node.valueOf("./Corporation/Info/Address/AddressInfo/addressid") + "\", " +
181 "\"" + node.valueOf("./Corporation/Info/Address/AddressInfo/address1") + "\", " +
182 "\"" + node.valueOf("./Corporation/Info/Address/AddressInfo/address2") + "\", " +
183 "\"" + node.valueOf("./Corporation/Info/Address/AddressInfo/city") + "\", " +
184 "\"" + node.valueOf("./Corporation/Info/Address/AddressInfo/stateid") + "\", " +
185 "\"" + node.valueOf("./Corporation/Info/Address/AddressInfo/statecode") + "\", " +
186 "\"" + node.valueOf("./Corporation/Info/Address/AddressInfo/zipcode") + "\", " +
187 "\"" + node.valueOf("./Corporation/Info/email") + "\", " +
188 "\"" + node.valueOf("./Corporation/Info/Address/AddressInfo/countryid") + "\", " +
189 "\"" + node.valueOf("./Corporation/Info/Address/AddressInfo/phone") + "\", " +
190 node.valueOf("./Corporation/Info/statusid") +
191 ");\n";
192 customersArray += "customersArray[" + (new Integer(index)).toString() + "] = new CustomerRole(\"" + customerRole + "\",corp,\"" + screenType + "\");\n";
193 }
194 }
195
196 return customersArray;
197 }
198
199
200 public String getGenerationOptions() throws Exception {
201 DOMParser docParser = new DOMParser();
202 XMLNode node;
203 NodeList nodeList;
204 String generationOptions = "";
205 XMLDocument generationXml;
206 String generationXmlStr;
207 Element root;
208 ByteArrayInputStream stream;
209
210 generationXmlStr = basicInfoServices.getGenerationCodes();
211
212 stream = new ByteArrayInputStream(generationXmlStr.getBytes());
213 docParser.setValidationMode(false);
214 docParser.parse(stream);
215 generationXml = docParser.getDocument();
216 root = generationXml.getDocumentElement();
217
218 nodeList = root.getChildNodes();
219 for(int i = 0; i < nodeList.getLength(); i++) {
220 node = (XMLNode)nodeList.item(i);
221 generationOptions += "<option value='" + node.valueOf("./code") + "'>" + node.valueOf("./code") + "</option>";
222 }
223
224 return generationOptions;
225 }
226
227
228 public String getRolesOptions() throws Exception {
229
230 DOMParser docParser = new DOMParser();
231 XMLNode node;
232 NodeList nodeList;
233 String rolesOptions = "";
234 XMLDocument rolesXml;
235 String rolesXmlStr;
236 Element root;
237 ByteArrayInputStream stream;
238
239 rolesXmlStr = basicInfoServices.getCustomerRoles();
240
241 stream = new ByteArrayInputStream(rolesXmlStr.getBytes());
242 docParser.setValidationMode(false);
243 docParser.parse(stream);
244 rolesXml = docParser.getDocument();
245
246 root = rolesXml.getDocumentElement();
247
248 nodeList = root.getChildNodes();
249 for(int i = 0; i < nodeList.getLength(); i++) {
250 node = (XMLNode)nodeList.item(i);
251 rolesOptions += "<option value='" + node.valueOf("./code") + "' screenType='" + node.valueOf("./screentype") + "' multiple='" + node.valueOf("./allowmultiple") + "'>" + node.valueOf("./description") + "</option>";
252 }
253
254 return rolesOptions;
255 }
256
257
258 public String getStatusOptions(Long companyId) throws Exception {
259
260 DOMParser docParser = new DOMParser();
261 XMLNode node;
262 NodeList nodeList;
263 String statusOptions = "";
264 XMLDocument statusXml;
265 String statusXmlStr;
266 Element root;
267 ByteArrayInputStream stream;
268
269 statusXmlStr = customerInfoServices.getCustomerStatuses(companyId);
270
271 stream = new ByteArrayInputStream(statusXmlStr.getBytes());
272 docParser.setValidationMode(false);
273 docParser.parse(stream);
274 statusXml = docParser.getDocument();
275
276 root = statusXml.getDocumentElement();
277
278 nodeList = root.getChildNodes();
279 for(int i = 0; i < nodeList.getLength(); i++) {
280 node = (XMLNode)nodeList.item(i);
281 statusOptions += "<option value='" + node.valueOf("./statusid") + "'>" + node.valueOf("./statusdescription") + "</option>";
282 }
283
284 return statusOptions;
285 }
286
287
288 public void setData(String customerXmlString) throws Exception {
289 DOMParser docParser = new DOMParser();
290 ByteArrayInputStream stream = null;
291 this.customerXmlString = customerXmlString;
292 try {
293 stream = new ByteArrayInputStream(customerXmlString.getBytes());
294 docParser.setValidationMode(false);
295 docParser.parse(stream);
296 customerXml = docParser.getDocument();
297 }
298 catch(Exception e) {
299 }
300 }
301 }
302
303