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
14 public class TransactionHistoryTransformer {
15 private String controller;
16 private XMLDocument data;
17
18
19 public TransactionHistoryTransformer() { }
20
21
22 public String getHistoryArray() throws Exception {
23 String arrayLoad = "";
24 String Description = null;
25 String EffectiveDate = null;
26 String EndingBalance = null;
27 String FeesAmount = null;
28 String Id = null;
29 String InterestAmount = null;
30 String OnlineOperator = null;
31 String PrincipalAmount = null;
32 String ProcessingDate = null;
33 String Reversed = null;
34 String Source = null;
35 String TraceNumber = null;
36 int transactionNumber = 0;
37 String Type = null;
38
39 StringWriter sw = new StringWriter();
40 PrintWriter pw = new PrintWriter(sw);
41 data.print(pw);
42
43 if(data.getDocumentElement().hasChildNodes()) {
44 transactionNumber = data.selectNodes("/TransactionHistory/Transaction").getLength();
45 try {
46 for(int i = 0; i < transactionNumber; i++) {
47 Node transaction = data.selectNodes("/TransactionHistory/Transaction").item(i);
48 for(int j = 0; j < transaction.getChildNodes().getLength(); j++) {
49 String NodeName = transaction.getChildNodes().item(j).getNodeName();
50 if(NodeName.equals("id")) {
51 Id = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
52 }
53 else if(NodeName.equals("onlineoperator")) {
54 if(transaction.getChildNodes().item(j).getFirstChild() != null) {
55 OnlineOperator = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
56 }
57 }
58 else if(NodeName.equals("processingdate")) {
59 ProcessingDate = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
60 }
61 else if(NodeName.equals("effectivedate")) {
62 EffectiveDate = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
63 }
64 else if(NodeName.equals("type")) {
65 Type = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
66 }
67 else if(NodeName.equals("reversed")) {
68 Reversed = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
69 }
70 else if(NodeName.equals("principalamount")) {
71 PrincipalAmount = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
72 }
73 else if(NodeName.equals("interestamount")) {
74 InterestAmount = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
75 }
76 else if(NodeName.equals("feesamount")) {
77 FeesAmount = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
78 }
79 else if(NodeName.equals("endingbalance")) {
80 EndingBalance = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
81 }
82 else if(NodeName.equals("source")) {
83 Source = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
84 }
85 else if(NodeName.equals("tracenumber")) {
86 TraceNumber = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
87 }
88 else if(NodeName.equals("description")) {
89 Description = transaction.getChildNodes().item(j).getFirstChild().getNodeValue();
90 }
91 else {
92 System.out.println("Error determining node name: " + NodeName);
93 }
94 }
95 arrayLoad += "transactions[" + i + "]=new Transaction(\'" + Id + "\',\'" + ProcessingDate + "\',\'";
96 arrayLoad += EffectiveDate + "\',\'" + Type + "\',\'" + Reversed + "\',\'" + PrincipalAmount + "\',\'";
97 arrayLoad += InterestAmount + "\',\'" + FeesAmount + "\',\'" + EndingBalance + "\',\'" + Source + "\',\'";
98 arrayLoad += TraceNumber + "\',\'" + OnlineOperator + "\',\'" + Description + "\');\n";
99 }
100 }
101 catch(Exception e) {
102 e.printStackTrace();
103 }
104 }
105 arrayLoad += "transactionNumber = " + transactionNumber + ";";
106 return arrayLoad;
107 }
108
109
110 public void setController(String controller) {
111 this.controller = controller;
112 }
113
114
115 public void setData(String data) throws XMLParseException, XSLException, SAXException, IOException {
116 DOMParser docParser = new DOMParser();
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 catch(Exception e) {
126 }
127 }
128
129 }
130
131