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 UserTransformer 18 implements Serializable { 19 20 private String alias; 21 private String currentSignonAttempts; 22 private String dateLastLogon; 23 private String datePwdCreated; 24 private String email; 25 private String extension; 26 private String firstName; 27 int grpIndex; 28 private String lastMaintainedById; 29 private String lastMaintainedByName; 30 private String lastMaintainedDate; 31 private String lastName; 32 private NodeList nlParents; 33 private int nlLength; 34 private String parentId; 35 private String ParId; 36 private String phone; 37 private String prData; 38 private String profileId; 39 private String statusFlag; 40 private String timeOffset; 41 private String timeLastTransaction; 42 private String title; 43 private String userId; 44 int usrIndex; 45 private String usrNumber; 46 private Vector vAlias; 47 private Vector vgroupId; 48 private Vector vgroupName; 49 private Vector vName; 50 private Vector vuserId; 51 private Vector vusrNumber; 52 private XMLDocument xmlUser; 53 private XMLDocument xmlUsers; 54 private XMLDocument xmlGroups; 55 56 57 public String getDataUser() { 58 String Variables = new String(); 59 char Ch1 = '"'; 60 String sign = ""; 61 if((!timeOffset.substring(0, 1).equals("-")) && (!timeOffset.substring(0, 1).equals("_"))) { 62 sign = "+"; 63 } 64 Variables = "txtFirstName.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(firstName)) + Ch1 + ";\n"; 65 Variables = Variables + "txtLastName.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(lastName)) + Ch1 + ";\n"; 66 Variables = Variables + "txtUserId.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(usrNumber)) + Ch1 + ";\n"; 67 Variables = Variables + "txtTitle.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(title)) + Ch1 + ";\n"; 68 Variables = Variables + "txtEMail.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(email)) + Ch1 + ";\n"; 69 Variables = Variables + "txtTimeOffset.value = " + Ch1 + sign + TrasData(StringFormat.toSafeJavaString(timeOffset)) + Ch1 + ";\n"; 70 Variables = Variables + "txtAlias.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(alias)) + Ch1 + ";\n"; 71 Variables = Variables + "txtPhone.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(phone)) + Ch1 + ";\n"; 72 Variables = Variables + "txtExtension.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(extension)) + Ch1 + ";\n"; 73 Variables = Variables + "txtDateLastLogon.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(dateLastLogon)) + Ch1 + ";\n"; 74 Variables = Variables + "txtNBRInvAtt.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(currentSignonAttempts)) + Ch1 + ";\n"; 75 Variables = Variables + "txtLastPassword.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(datePwdCreated)) + Ch1 + ";\n"; 76 Variables = Variables + "txtMaintainedBy.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(lastMaintainedByName)) + Ch1 + ";\n"; 77 Variables = Variables + "txtDateMaintained.value = " + Ch1 + TrasData(StringFormat.toSafeJavaString(lastMaintainedDate)) + Ch1 + ";\n"; 78 Variables = Variables + "currentStatus = " + Ch1 + TrasData(StringFormat.toSafeJavaString(statusFlag)) + Ch1 + ";\n"; 79 Variables = Variables + "SecPrfId = " + Ch1 + TrasData(StringFormat.toSafeJavaString(profileId)) + Ch1 + ";\n"; 80 81 return Variables; 82 } 83 84 85 public String getGroupOptions() { 86 87 String Body = null; 88 String elementId = new String(); 89 String elementName = new String(); 90 char Ch = '"'; 91 String Head = null; 92 int j = 0; 93 int l = 0; 94 95 l = vgroupId.size() + 1; 96 grpIndex = 0; 97 Head = "numberOfGroups = " + l + "; \n"; 98 Body = "GroupsArray[0] = new Group(" + Ch + Ch + "," + Ch + Ch + ");\n"; 99 for(int i = 0; i < vgroupId.size(); i++) { 100 elementId = StringFormat.toSafeJavaString((String)vgroupId.elementAt(i)); 101 elementName = StringFormat.toSafeJavaString((String)vgroupName.elementAt(i)); 102 j = i + 1; 103 if((elementId.equals(parentId)) && (grpIndex == 0)) { 104 grpIndex = j; 105 } 106 Body = Body + 107 "GroupsArray[" + j + "] = new Group(" + Ch + elementId + Ch + "," + Ch + elementName + Ch + ");\n"; 108 } 109 return (Head + Body); 110 } 111 112 113 public String getGroupSelected() { 114 String groupSel = null; 115 116 groupSel = "listGroupName[" + grpIndex + "].selected=true;\n"; 117 return groupSel; 118 } 119 120 121 public String getNameOptions() { 122 123 String Body = null; 124 String elementId = new String(); 125 String elementNumber = new String(); 126 String elementName = new String(); 127 String elementAlias = new String(); 128 char Ch = '"'; 129 String Head = null; 130 int j = 0; 131 int l = 0; 132 133 l = vuserId.size() + 1; 134 Head = "numberOfUsers = " + l + "; \n"; 135 Body = "UsersArray[0] = new User(" + Ch + Ch + "," + Ch + Ch + "," + Ch + Ch + "," + Ch + Ch + ");\n"; 136 for(int i = 0; i < vuserId.size(); i++) { 137 elementId = StringFormat.toSafeJavaString((String)vuserId.elementAt(i)); 138 elementNumber = StringFormat.toSafeJavaString((String)vusrNumber.elementAt(i)); 139 elementName = StringFormat.toSafeJavaString((String)vName.elementAt(i)); 140 elementAlias = StringFormat.toSafeJavaString((String)vAlias.elementAt(i)); 141 j = i + 1; 142 if((elementId.equals(userId)) && (usrIndex == 0)) { 143 usrIndex = j; 144 } 145 Body = Body + 146 "UsersArray[" + j + "] = new User(" + Ch + elementId + Ch + "," + Ch + elementNumber + Ch + 147 "," + Ch + elementName + Ch + "," + Ch + elementAlias + Ch + ");\n"; 148 } 149 return (Head + Body); 150 } 151 152 153 public String getSelected() { 154 String Foot = null; 155 156 Foot = "listUserName[" + usrIndex + "].selected=true; \n" + 157 "listUserId[" + usrIndex + "].selected=true; \n"; 158 return Foot; 159 } 160 161 162 public XMLDocument parseInfo(String data) throws XMLParseException, XSLException, SAXException, IOException { 163 DOMParser docParser = new DOMParser(); 164 ByteArrayInputStream stream; 165 XMLDocument xmlDoc; 166 167 xmlDoc = null; 168 prData = prData + data; 169 stream = new ByteArrayInputStream(data.getBytes()); 170 docParser.setValidationMode(false); 171 docParser.parse(stream); 172 xmlDoc = docParser.getDocument(); 173 return xmlDoc; 174 } 175 176 177 public void setChildren(XMLNode Parent, String ParentId) throws XSLException { 178 NodeList nlChildren; 179 NodeList nlChild; 180 XMLNode ChildNode; 181 int nlChildLen; 182 String ParId; 183 184 nlChildren = Parent.selectNodes("./ChildGroups/Group"); 185 nlChildLen = nlChildren.getLength(); 186 ParId = new String(); 187 for(int j = 0; j < nlChildLen; j++) { 188 ChildNode = (XMLNode)nlChildren.item(j); 189 ParId = ChildNode.valueOf("./id"); 190 vgroupId.addElement(ParId); 191 vgroupName.addElement(ChildNode.valueOf("./name")); 192 nlChild = ChildNode.selectNodes("./ChildGroups"); 193 if(nlChild.getLength() > 0) { 194 setChildren(ChildNode, ParId); 195 } 196 } 197 } 198 199 200 public void setData(String data) throws XMLParseException, XSLException, SAXException, IOException { 201 202 xmlUser = parseInfo(data); 203 userId = xmlUser.valueOf("/UserList/User/id"); 204 usrNumber = xmlUser.valueOf("/UserList/User/userid"); 205 firstName = xmlUser.valueOf("/UserList/User/firstname"); 206 lastName = xmlUser.valueOf("/UserList/User/lastname"); 207 alias = xmlUser.valueOf("/UserList/User/alias"); 208 dateLastLogon = xmlUser.valueOf("/UserList/User/datelastlogon"); 209 phone = xmlUser.valueOf("/UserList/User/phone"); 210 extension = xmlUser.valueOf("/UserList/User/extension"); 211 email = xmlUser.valueOf("/UserList/User/email"); 212 datePwdCreated = xmlUser.valueOf("/UserList/User/datepwdcreated"); 213 currentSignonAttempts = xmlUser.valueOf("/UserList/User/currentsingonattempts"); 214 statusFlag = xmlUser.valueOf("/UserList/User/statusflag"); 215 timeOffset = xmlUser.valueOf("/UserList/User/timeoffset"); 216 title = xmlUser.valueOf("/UserList/User/title"); 217 lastMaintainedById = xmlUser.valueOf("/UserList/User/lastchangedbyid"); 218 lastMaintainedByName = xmlUser.valueOf("/UserList/User/lastchangedbyname"); 219 lastMaintainedDate = xmlUser.valueOf("/UserList/User/lastchangeddate"); 220 parentId = xmlUser.valueOf("/UserList/User/groupid"); 221 profileId = xmlUser.valueOf("/UserList/User/profileid"); 222 } 223 224 225 public void setGroups(String data) throws XMLParseException, XSLException, SAXException, IOException { 226 XMLNode node; 227 XMLNode nodeChild; 228 Element ParElement; 229 NodeList nlChild; 230 231 xmlGroups = parseInfo(data); 232 ParElement = xmlGroups.getDocumentElement(); 233 nlParents = ParElement.getChildNodes(); 234 nlLength = nlParents.getLength(); 235 ParId = new String(); 236 vgroupId = new Vector(); 237 vgroupName = new Vector(); 238 for(int i = 0; i < nlLength; i++) { 239 node = (XMLNode)nlParents.item(i); 240 ParId = node.valueOf("./id"); 241 vgroupId.addElement(ParId); 242 vgroupName.addElement(node.valueOf("./name")); 243 nlChild = node.selectNodes("./ChildGroups"); 244 if(nlChild.getLength() > 0) { 245 setChildren(node, ParId); 246 } 247 } 248 } 249 250 251 public void setUsers(String data) throws XMLParseException, XSLException, SAXException, IOException { 252 XMLNode node; 253 Element ParElement; 254 NodeList nlUsers; 255 256 xmlUsers = parseInfo(data); 257 ParElement = xmlUsers.getDocumentElement(); 258 nlUsers = ParElement.getChildNodes(); 259 nlLength = nlUsers.getLength(); 260 vuserId = new Vector(); 261 vName = new Vector(); 262 vusrNumber = new Vector(); 263 vAlias = new Vector(); 264 for(int i = 0; i < nlLength; i++) { 265 node = (XMLNode)nlUsers.item(i); 266 vuserId.addElement(node.valueOf("./id")); 267 vName.addElement(node.valueOf("./name")); 268 vusrNumber.addElement(node.valueOf("./userid")); 269 vAlias.addElement(node.valueOf("./alias")); 270 } 271 } 272 273 274 public String TrasData(String in) { 275 String out = new String(); 276 277 if(in.equals("_")) { 278 out = ""; 279 } 280 else { 281 out = in; 282 } 283 return out; 284 } 285 } 286