1 package com.instantbank.collections.security.web;
2
3 import java.io.ByteArrayInputStream;
4 import java.io.IOException;
5 import java.io.Serializable;
6 import java.util.Vector;
7 import oracle.xml.parser.v2.DOMParser;
8 import oracle.xml.parser.v2.XMLDocument;
9 import oracle.xml.parser.v2.XMLNode;
10 import oracle.xml.parser.v2.XMLParseException;
11 import oracle.xml.parser.v2.XSLException;
12 import org.w3c.dom.Element;
13 import org.w3c.dom.NodeList;
14 import org.xml.sax.SAXException;
15 import com.instantbank.collections.util.StringFormat;
16
17 public class SecurityReportTransformer
18 implements Serializable {
19 private Vector groupName;
20 private int nlLength;
21 private NodeList nlParents;
22 private Vector userNumber;
23 private Vector userName;
24 private Vector userStatus;
25 private XMLDocument xmlGroups;
26
27
28 public String getUserArray() {
29 String Body = null;
30 String Asignament = null;
31 char Ch = '"';
32 String elementGroupName = new String();
33 String elementUserNumber = new String();
34 String elementUserName = new String();
35 String elementUserStatus = new String();
36 String Head = null;
37 int j = 0;
38 int l = 0;
39
40 l = userNumber.size();
41 Head = "numberOfUsers = " + l + "; \n";
42 Body = "";
43 for(int i = 0; i < userNumber.size(); i++) {
44 elementGroupName = StringFormat.toSafeJavaString((String)groupName.elementAt(i));
45 elementUserNumber = StringFormat.toSafeJavaString((String)userNumber.elementAt(i));
46 elementUserName = StringFormat.toSafeJavaString((String)userName.elementAt(i));
47 if(userStatus.elementAt(i).equals("1")) {
48 elementUserStatus = "Active";
49 }
50 else if(userStatus.elementAt(i).equals("2")) {
51 elementUserStatus = "Inactive";
52 }
53 else if(userStatus.elementAt(i).equals("3")) {
54 elementUserStatus = "Reset";
55 }
56 Body = Body +
57 "usersArray[" + i + "] = new user(" + Ch + elementGroupName + Ch +
58 "," + Ch + elementUserNumber + Ch + "," + Ch + elementUserName + Ch +
59 "," + Ch + elementUserStatus + Ch + ");\n";
60 }
61 return (Head + Body);
62 }
63
64
65 public XMLDocument parseInfo(String data) throws XMLParseException, XSLException, SAXException, IOException {
66 DOMParser docParser = new DOMParser();
67 ByteArrayInputStream stream;
68 XMLDocument xmlDoc;
69
70 xmlDoc = null;
71 stream = new ByteArrayInputStream(data.getBytes());
72 docParser.setValidationMode(false);
73 docParser.parse(stream);
74 xmlDoc = docParser.getDocument();
75 return xmlDoc;
76 }
77
78
79 public void setData(String data) throws XMLParseException, XSLException, SAXException, IOException {
80 NodeList nlUsers;
81 XMLNode node;
82 XMLNode nodeUsers;
83 Element parElement;
84
85 xmlGroups = parseInfo(data);
86 parElement = xmlGroups.getDocumentElement();
87 nlParents = parElement.getChildNodes();
88 nlLength = nlParents.getLength();
89 groupName = new Vector();
90 userNumber = new Vector();
91 userName = new Vector();
92 userStatus = new Vector();
93 for(int i = 0; i < nlLength; i++) {
94 node = (XMLNode)nlParents.item(i);
95 nlUsers = node.selectNodes("./ChildUsers/User");
96 for(int j = 0; j < nlUsers.getLength(); j++) {
97 groupName.addElement(node.valueOf("./name"));
98 nodeUsers = (XMLNode)nlUsers.item(j);
99 userNumber.addElement(nodeUsers.valueOf("./userid"));
100 userName.addElement(nodeUsers.valueOf("./name"));
101 userStatus.addElement(nodeUsers.valueOf("./status"));
102 }
103 nlUsers = node.selectNodes("./ChildGroups");
104 if(nlUsers.getLength() > 0) {
105 setChildren(node);
106 }
107 }
108 }
109
110
111 public void setChildren(XMLNode parent) throws XSLException {
112 XMLNode childNode;
113 NodeList nlChild;
114 int nlChildLen;
115 NodeList nlChildren;
116 NodeList nlUsers;
117 XMLNode nodeUsers;
118
119 nlChildren = parent.selectNodes("./ChildGroups/Group");
120 nlChildLen = nlChildren.getLength();
121 for(int j = 0; j < nlChildLen; j++) {
122 childNode = (XMLNode)nlChildren.item(j);
123 nlUsers = childNode.selectNodes("./ChildUsers/User");
124 for(int k = 0; k < nlUsers.getLength(); k++) {
125 groupName.addElement(childNode.valueOf("./name"));
126 nodeUsers = (XMLNode)nlUsers.item(k);
127 userNumber.addElement(nodeUsers.valueOf("./userid"));
128 userName.addElement(nodeUsers.valueOf("./name"));
129 userStatus.addElement(nodeUsers.valueOf("./status"));
130 }
131 nlChild = childNode.selectNodes("./ChildGroups");
132 if(nlChild.getLength() > 0) {
133 setChildren(childNode);
134 }
135 }
136 }
137 }
138