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