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