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          // RGEE
165            "\"" + node.valueOf("./Customer/Info/driverslicense") + "\"," +
166            "\"" + node.valueOf("./Customer/Info/namekey") + "\"" +
167          //
168            ");\n";
169  
170          // RGEE
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