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