1 package com.instantbank.collections.commonQueuing.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 oracle.xml.parser.v2.XSLException;
8 import org.w3c.dom.Element;
9 import org.w3c.dom.NodeList;
10 import com.instantbank.collections.util.StringFormat;
11
12
18 public class WorkLoadReviewTransformer {
19 private String groupsUserArray;
20 private int vectorPosition = 0;
21
22
23 public WorkLoadReviewTransformer() { }
24
25
26 public String getQueuesArray(String data) {
27 int i;
28 ByteArrayInputStream inputStream = null;
29 XMLDocument inxml;
30 XMLNode node;
31 NodeList nodeList;
32 Element root;
33 NodeList userList;
34 XMLNode userNode;
35 String vectorQueue = "";
36 DOMParser xmlParser = new DOMParser();
37
38 try {
39 inputStream = new ByteArrayInputStream(data.getBytes());
40 xmlParser.setValidationMode(false);
41 xmlParser.parse(inputStream);
42 inxml = xmlParser.getDocument();
43 root = inxml.getDocumentElement();
44 nodeList = root.getChildNodes();
45
46 for(i = 0; i < nodeList.getLength(); i++) {
47 node = (XMLNode)nodeList.item(i);
48 userList = node.selectNodes("./UserList/User");
49 for(int j = 0; j < userList.getLength(); j++) {
50 userNode = (XMLNode)userList.item(j);
51 vectorQueue += "userVector[" + j + "]= new QueueStatistics(" + "'" + userNode.valueOf("./userid") + "','" + userNode.valueOf("./totalaccounts") + "','" + userNode.valueOf("./totalworked") + "','" + userNode.valueOf("./transferin") + "','" + userNode.valueOf("./transferout") + "','" + userNode.valueOf("./totalremaining") + "','" + userNode.valueOf("./custcontacts") + "','" + userNode.valueOf("./attempcontact") + "','" + userNode.valueOf("./indirectcontact") + "','" + userNode.valueOf("./custpromises") + "'" + ");\n";
52 }
53 vectorQueue += "queueVector[" + i + "]= new QueueItem(" + node.valueOf("./id") + ",";
54 vectorQueue += "'" + StringFormat.toSafeJavaString(node.valueOf("./name")) + "',userVector);\n";
55 vectorQueue += "userVector.length=0;\n";
56 }
57 vectorQueue += "numQueues=" + i + "; \n";
58
59 }
60 catch(Exception e) {
61 vectorQueue += "/* Error: " + e.getMessage() + " */\n";
62 vectorQueue += "numQueues=0;\n";
63 }
64 finally {
65 return vectorQueue;
66 }
67 }
68
69
70 public String getGroupsUsersArray(String data) {
71 DOMParser docParser = new DOMParser();
72 XMLDocument inxml;
73 int nlLength;
74 XMLNode node;
75 NodeList nodeList;
76 NodeList nodeListGroup;
77 NodeList nodeListUser;
78 XMLNode root;
79 ByteArrayInputStream stream = null;
80 String userId;
81 String xmlString = "";
82
83 vectorPosition = 0;
84 groupsUserArray = "";
85 try {
86 stream = new ByteArrayInputStream(data.getBytes());
87 docParser.setValidationMode(false);
88 docParser.parse(stream);
89 inxml = docParser.getDocument();
90 root = (XMLNode)inxml.getDocumentElement();
91
92 userId = root.valueOf("./Supervisor/id");
93 groupsUserArray += "groupsUsers[" + (vectorPosition++) + "] = new GroupUser(";
94 groupsUserArray += "'" + userId + "',";
95 groupsUserArray += "'0','" + StringFormat.toSafeJavaString(root.valueOf("./Supervisor/name")) + "',true,";
96 groupsUserArray += root.valueOf("./Supervisor/Summary/accounts") + ",";
97 groupsUserArray += root.valueOf("./Supervisor/Summary/worked") + ",";
98 groupsUserArray += root.valueOf("./Supervisor/Summary/transferredin") + ",";
99 groupsUserArray += root.valueOf("./Supervisor/Summary/transferredout") + ",";
100 groupsUserArray += root.valueOf("./Supervisor/Summary/remaining") + ",";
101 groupsUserArray += root.valueOf("./Supervisor/Summary/contacts") + ",";
102 groupsUserArray += root.valueOf("./Supervisor/Summary/indirectcontacts") + ",";
103 groupsUserArray += root.valueOf("./Supervisor/Summary/attemptedcontacts") + ",";
104 groupsUserArray += root.valueOf("./Supervisor/Summary/promises") + ",";
105 groupsUserArray += root.valueOf("./Supervisor/Summary/amountpromises") + ");\n";
106
107 nodeList = root.selectNodes("./Group");
108 nlLength = nodeList.getLength();
109 for(int i = 0; i < nlLength; i++) {
110 node = (XMLNode)nodeList.item(i);
111 groupsUserArray += "groupsUsers[" + (vectorPosition++) + "] = new GroupUser('" + node.valueOf("./id") + "','0','" + StringFormat.toSafeJavaString(node.valueOf("./name")) + "',false,";
112 groupsUserArray += node.valueOf("./Summary/accounts") + ",";
113 groupsUserArray += node.valueOf("./Summary/worked") + ",";
114 groupsUserArray += node.valueOf("./Summary/transferredin") + ",";
115 groupsUserArray += node.valueOf("./Summary/transferredout") + ",";
116 groupsUserArray += node.valueOf("./Summary/remaining") + ",";
117 groupsUserArray += node.valueOf("./Summary/contacts") + ",";
118 groupsUserArray += node.valueOf("./Summary/indirectcontacts") + ",";
119 groupsUserArray += node.valueOf("./Summary/attemptedcontacts") + ",";
120 groupsUserArray += node.valueOf("./Summary/promises") + ",";
121 groupsUserArray += node.valueOf("./Summary/amountpromises") + ");\n";
122 nodeListUser = node.selectNodes("./ChildUsers");
123 if(nodeListUser.getLength() > 0) {
124 setChildrenUser(node, 0, 0);
125 }
126 nodeListGroup = node.selectNodes("./ChildGroups");
127 if(nodeListGroup.getLength() > 0) {
128 setChildrenGroupd(node, 0, 0);
129 }
130 }
131 groupsUserArray += "numUsers = " + vectorPosition + ";\n";
132 }
133 catch(Exception e) {
134 }
135 return groupsUserArray;
136 }
137
138
139 private void setChildrenUser(XMLNode parent, int position, int hierarchy) throws XSLException {
140 XMLNode childNode;
141 NodeList nlChild;
142 int nlChildLen;
143 NodeList nlChildren;
144
145 nlChildren = parent.selectNodes("./ChildUsers/User");
146 nlChildLen = nlChildren.getLength();
147 int k = 0;
148 hierarchy = hierarchy + 1;
149 for(k = 0; k < nlChildLen; k++) {
150 childNode = (XMLNode)nlChildren.item(k);
151 groupsUserArray += "groupsUsers[" + vectorPosition + "] = new GroupUser('" + childNode.valueOf("./id") + "','" + hierarchy + "','" + StringFormat.toSafeJavaString(childNode.valueOf("./name")) + "',true,";
152 groupsUserArray += childNode.valueOf("./Summary/accounts") + ",";
153 groupsUserArray += childNode.valueOf("./Summary/worked") + ",";
154 groupsUserArray += childNode.valueOf("./Summary/transferredin") + ",";
155 groupsUserArray += childNode.valueOf("./Summary/transferredout") + ",";
156 groupsUserArray += childNode.valueOf("./Summary/remaining") + ",";
157 groupsUserArray += childNode.valueOf("./Summary/contacts") + ",";
158 groupsUserArray += childNode.valueOf("./Summary/indirectcontacts") + ",";
159 groupsUserArray += childNode.valueOf("./Summary/attemptedcontacts") + ",";
160 groupsUserArray += childNode.valueOf("./Summary/promises") + ",";
161 groupsUserArray += childNode.valueOf("./Summary/amountpromises") + ");\n";
162 vectorPosition++;
163 }
164 }
165
166
167 private void setChildrenGroupd(XMLNode parent, int position, int hierarchy) throws XSLException {
168 XMLNode childNode;
169 NodeList nlChildren;
170 NodeList nlChild;
171 int nlChildLen;
172 NodeList nlChildUser;
173
174 nlChildren = parent.selectNodes("./ChildGroups/Group");
175 nlChildLen = nlChildren.getLength();
176 int k = 0;
177 hierarchy = hierarchy + 1;
178 for(k = 0; k < nlChildLen; k++) {
179 childNode = (XMLNode)nlChildren.item(k);
180 groupsUserArray += "groupsUsers[" + vectorPosition + "] = new GroupUser('" + childNode.valueOf("./id") + "','" + hierarchy + "','" + StringFormat.toSafeJavaString(childNode.valueOf("./name")) + "',false,";
181 groupsUserArray += childNode.valueOf("./Summary/accounts") + ",";
182 groupsUserArray += childNode.valueOf("./Summary/worked") + ",";
183 groupsUserArray += childNode.valueOf("./Summary/transferredin") + ",";
184 groupsUserArray += childNode.valueOf("./Summary/transferredout") + ",";
185 groupsUserArray += childNode.valueOf("./Summary/remaining") + ",";
186 groupsUserArray += childNode.valueOf("./Summary/contacts") + ",";
187 groupsUserArray += childNode.valueOf("./Summary/indirectcontacts") + ",";
188 groupsUserArray += childNode.valueOf("./Summary/attemptedcontacts") + ",";
189 groupsUserArray += childNode.valueOf("./Summary/promises") + ",";
190 groupsUserArray += childNode.valueOf("./Summary/amountpromises") + ");\n";
191 vectorPosition++;
192 nlChildUser = childNode.selectNodes("./ChildUsers");
193 if(nlChildUser.getLength() > 0) {
194 setChildrenUser(childNode, 0, hierarchy);
195 }
196 nlChild = childNode.selectNodes("./ChildGroups");
197 if(nlChild.getLength() > 0) {
198 setChildrenGroupd(childNode, 0, hierarchy);
199 }
200 }
201 }
202
203
204 private void jbInit() throws Exception { }
205 }
206
207