1    package com.instantbank.collections.creditInfo.web;
2    
3    import java.io.ByteArrayInputStream;
4    import java.io.IOException;
5    import java.io.PrintWriter;
6    import java.io.StringWriter;
7    import javax.servlet.http.HttpSession;
8    import oracle.xml.parser.v2.DOMParser;
9    import oracle.xml.parser.v2.XMLDocument;
10   import oracle.xml.parser.v2.XMLParseException;
11   import oracle.xml.parser.v2.XSLException;
12   import org.w3c.dom.Node;
13   import org.xml.sax.SAXException;
14   import com.instantbank.collections.creditInfo.ejb.CreditInfoServices;
15   import com.instantbank.collections.creditInfo.ejb.CreditInfoServicesHome;
16   import com.instantbank.collections.util.ServiceLocator;
17   
18   public class AccountStatusTransformer {
19     private CreditInfoServicesHome chome;
20     private XMLDocument data;
21     private HttpSession gblSession;
22     private CreditInfoServices services;
23     private StatusCategoriesTransformer sct;
24   
25   
26     public AccountStatusTransformer() { }
27   
28   
29     public String getAccountsValuesArray() throws Exception {
30       String arrayLoad = "";
31       String categoryId = null;
32       String categoryName = null;
33       String categoryNumber = null;
34       String NodeName = null;
35       Node status;
36       int statusNumber = 0;
37       String valueName = null;
38       String valueId = null;
39       // 10222002 tjm CR20021011030.0 - add changed by text, id and date
40       String changedby = null;
41       String changeddate = null;
42       String changedById = null;
43   
44       try {
45         StringWriter sw = new StringWriter();
46         PrintWriter pw = new PrintWriter(sw);
47         data.print(pw);
48         statusNumber = data.selectNodes("/StatusValuesList/StatusValue").getLength();
49         for(int i = 0; i < statusNumber; i++) {
50           status = data.selectNodes("/StatusValuesList/StatusValue").item(i);
51           categoryId = "";
52           categoryNumber = "";
53           categoryName = "";
54           valueId = "";
55           valueName = "";
56           changedby = "";
57           changeddate = "";
58           changedById = "";
59           for(int j = 0; j < status.getChildNodes().getLength(); j++) {
60             NodeName = status.getChildNodes().item(j).getNodeName();
61             if(NodeName.equals("categoryid")) {
62               categoryId = status.getChildNodes().item(j).getFirstChild().getNodeValue();
63             }
64             else if(NodeName.equals("categorynumber")) {
65               categoryNumber = status.getChildNodes().item(j).getFirstChild().getNodeValue();
66             }
67             else if(NodeName.equals("categoryname")) {
68               categoryName = status.getChildNodes().item(j).getFirstChild().getNodeValue();
69             }
70             else if(NodeName.equals("valueid")) {
71               valueId = status.getChildNodes().item(j).getFirstChild().getNodeValue();
72             }
73             else if(NodeName.equals("changedby")) {
74               changedby = status.getChildNodes().item(j).getFirstChild().getNodeValue();
75             }
76             else if(NodeName.equals("changeddate")) {
77               changeddate = status.getChildNodes().item(j).getFirstChild().getNodeValue();
78             }
79             else if(NodeName.equals("changedbyid")) {
80               changedById = status.getChildNodes().item(j).getFirstChild().getNodeValue();
81             }
82             else if(NodeName.equals("valuename")) {
83               valueName = status.getChildNodes().item(j).getFirstChild().getNodeValue();
84             }
85           }
86           arrayLoad += "status[" + i + "]=new Status(\'" + categoryId + "\',\'" + categoryNumber + "\',\'";
87           arrayLoad += categoryName + "\',\'" + valueId + "\',\'" + valueName + "\',\'"
88             + changedby + "\',\'" + changeddate + "\',\'" + changedById + "\');\n";
89         }
90       }
91       catch(Exception e) {
92       }
93       arrayLoad += "statusNumber = " + statusNumber + ";";
94       return arrayLoad;
95     }
96   
97   
98     public String getCategoriesArray() throws Exception {
99       String array = "";
100  
101      try {
102        sct = new StatusCategoriesTransformer();
103        array += sct.getCategoriesArray();
104      }
105      catch(Exception e) {
106      }
107      return array;
108    }
109  
110  
111    public void setData(String data) throws XMLParseException, XSLException, SAXException, IOException, Exception {
112      String cat;
113      String catString;
114      Long companyId;
115      DOMParser docParser = new DOMParser();
116      StatusCategoriesTransformer sct;
117      ByteArrayInputStream stream;
118  
119      try {
120        stream = new ByteArrayInputStream(data.getBytes());
121        docParser.setValidationMode(false);
122        docParser.parse(stream);
123        this.data = docParser.getDocument();
124  
125        chome = (CreditInfoServicesHome)ServiceLocator.instance().createEJB("CreditInfoServicesHome", CreditInfoServicesHome.class, false);
126        services = chome.create();
127  
128        companyId = (Long)gblSession.getAttribute("companyId");
129        cat = services.getStatusCategoriesValues(companyId);
130  
131        sct = new StatusCategoriesTransformer();
132        sct.setData(cat);
133      }
134      catch(Exception e) {
135      }
136    }
137  
138  
139    public void setSession(HttpSession session) {
140      gblSession = session;
141    }
142  
143  }
144  
145