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