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 oracle.xml.parser.v2.DOMParser;
8 import oracle.xml.parser.v2.XMLDocument;
9 import oracle.xml.parser.v2.XMLParseException;
10 import oracle.xml.parser.v2.XSLException;
11 import org.w3c.dom.Node;
12 import org.xml.sax.SAXException;
13 import com.instantbank.collections.util.StringFormat;
14
15 public class StatusCategoriesTransformer {
16 private static XMLDocument data;
17
18
19 public StatusCategoriesTransformer() { }
20
21
22 public String getCategoriesArray() throws Exception {
23 String arrayLoad = "";
24 String categoryId = "";
25 String categoryIFN = "";
26 String categoryChangedDate = "";
27 String categoryChangedBy = "";
28 String categoryName = "";
29 int categoryNumberI = 0;
30 String categoryNumber = "";
31 int l = 0;
32 String valueId = "";
33 String valueName = "";
34 String valueIFN = "";
35
36 try {
37 if(data != null) {
38 if(this.data.getDocumentElement().hasChildNodes()) {
39 categoryNumberI = data.selectNodes("/Categories/Category").getLength();
40 for(int i = 0; i < categoryNumberI; i++) {
41 Node category = data.selectNodes("/Categories/Category").item(i);
42 for(int j = 0; j < category.getChildNodes().getLength(); j++) {
43 String NodeName = category.getChildNodes().item(j).getNodeName();
44 if(NodeName.equals("id")) {
45 categoryId = category.getChildNodes().item(j).getFirstChild().getNodeValue();
46 }
47 else if(NodeName.equals("name")) {
48 categoryName = category.getChildNodes().item(j).getFirstChild().getNodeValue();
49 }
50 else if(NodeName.equals("cnumber")) {
51 categoryNumber = category.getChildNodes().item(j).getFirstChild().getNodeValue();
52 }
53 else if(NodeName.equals("interfacefieldno")) {
54 categoryIFN = category.getChildNodes().item(j).getFirstChild().getNodeValue();
55 }
56 else if(NodeName.equals("changeddate")) {
57 categoryChangedDate = category.getChildNodes().item(j).getFirstChild().getNodeValue();
58 }
59 else if(NodeName.equals("changedby")) {
60 categoryChangedBy = category.getChildNodes().item(j).getFirstChild().getNodeValue();
61 }
62 else if(NodeName.equals("Values")) {
63 Node values = category.getChildNodes().item(j);
64 arrayLoad += "values = new Object();";
65 if(values.hasChildNodes()) {
66 int valueNumber = values.getChildNodes().getLength();
67 for(l = 0; l < valueNumber; l++) {
68 Node value = values.getChildNodes().item(l);
69 String NodeNa = value.getNodeName();
70 for(int k = 0; k < value.getChildNodes().getLength(); k++) {
71 String NodeNameValue = value.getChildNodes().item(k).getNodeName();
72 if(NodeNameValue.equals("id")) {
73 valueId = value.getChildNodes().item(k).getFirstChild().getNodeValue();
74 }
75 else if(NodeNameValue.equals("name")) {
76 valueName = value.getChildNodes().item(k).getFirstChild().getNodeValue();
77 }
78 else if(NodeNameValue.equals("interfacefieldno")) {
79 valueIFN = value.getChildNodes().item(k).getFirstChild().getNodeValue();
80 }
81 }
82 arrayLoad += "values[" + l + "]= new Value(\'" + valueId + "\',\'" + StringFormat.toSafeJavaString(valueName) + "\',\'" + valueIFN + "\');\n";
83 }
84 }
85 }
86 }
87 arrayLoad += "categories[" + i + "]=new Category(\'" + categoryId + "\',\'" + categoryNumber + "\',\'";
88 arrayLoad += StringFormat.toSafeJavaString(categoryName) + "\',\'" + categoryIFN + "\',values,\'" + l + "\',\'" + categoryChangedDate + "\',\'" + categoryChangedBy + "\');\n";
89 }
90 }
91 arrayLoad += "categoryNumber = " + categoryNumberI + ";";
92 }
93 else {
94 arrayLoad = "values = new Object();";
95 arrayLoad += "values[0]= new Value('','','');";
96 arrayLoad += "categories[0]=new Category('','','','',values,'','','');";
97 arrayLoad += "categoryNumber = 0;";
98 }
99 }
100 catch(Exception e) {
101 e.printStackTrace();
102 }
103 return arrayLoad;
104 }
105
106
107 public void setData(String dato) throws XMLParseException, XSLException, SAXException, IOException {
108
109 DOMParser docParser = new DOMParser();
110 ByteArrayInputStream stream;
111
112 try {
113 if(!dato.equals(new String(""))) {
114 stream = new ByteArrayInputStream(dato.getBytes());
115 docParser.setValidationMode(false);
116 docParser.parse(stream);
117 this.data = docParser.getDocument();
118 StringWriter sw = new StringWriter();
119 PrintWriter pw = new PrintWriter(sw);
120 this.data.print(pw);
121 }
122 else {
123 this.data = null;
124 }
125 }
126 catch(Exception e) {
127 }
128 }
129
130 }
131