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 oracle.xml.parser.v2.DOMParser;
7 import oracle.xml.parser.v2.XMLDocument;
8 import oracle.xml.parser.v2.XMLNode;
9 import oracle.xml.parser.v2.XMLParseException;
10 import oracle.xml.parser.v2.XSLException;
11 import org.w3c.dom.Element;
12 import org.w3c.dom.NodeList;
13 import org.xml.sax.SAXException;
14 import com.instantbank.collections.util.StringFormat;
15
16 public class SecurityProfilesTransformer
17 implements Serializable {
18
19 private String[] Childid = null;
20 private String[] Childname;
21 private String coProfileId;
22 private String coAddComment;
23 private String coAddAccountToQueue;
24 private String coCancelLetter;
25 private String coChangeReviewTime;
26 private String coClearAddedAccount;
27 private String coChangeDemographics;
28 private String coTransferQueue;
29 private String coChangeComment;
30 private String coOrderLetter;
31 private String coActionCodeLevel;
32 private String coResultCodeLevel;
33 private String coSupervisorQueueId;
34 private String coRecordPromise;
35 private String coRestoreAccount;
36 private String coScheduleRepresentation;
37 private String coSecurityAdministrator;
38 private String coStatementReprint;
39 private String coSystemAdministrator;
40 private String coAccountTransfer;
41 private String coPayoffQuote;
42 private String coSkipAccount;
43 private String coSupervisor;
44 private NodeList nlCategory;
45 private NodeList nlChildId;
46 private int nlChildLen;
47 private NodeList nlChildName;
48 private int nlLength;
49 private NodeList nlName;
50 private NodeList nlQueues;
51 private String[] Parid;
52 private String[] Parname;
53 private String ParName;
54 private String prData;
55 private XMLDocument xmlProfiles;
56 private XMLDocument xmlQueues;
57
58
59 public String getAccessLevel(String Type, String name) {
60 String genericVal = new String();
61
62 if(name.equals("orderLetter")) {
63 genericVal = coOrderLetter;
64 }
65 else if(name.equals("actionCodeLevel")) {
66 genericVal = coActionCodeLevel;
67 }
68 else if(name.equals("resultCodeLevel")) {
69 genericVal = coResultCodeLevel;
70 }
71
72 return genericVal;
73 }
74
75
76 public String getQueueOptions() {
77
78 String Body = null;
79 char Ch = '"';
80 String Head = null;
81 int j = 0;
82 int l = 0;
83 int queues;
84
85 if(Childid == null) {
86 queues = 0;
87 }
88 else {
89 queues = Childid.length;
90 }
91 l = queues + 1;
92 Head = "numberOfQueues = " + l + "; \n";
93 Body = "QueuesArray[0] = new Queue(" + Ch + Ch + "," + Ch + Ch + "," + Ch + Ch + "," + Ch + Ch + ");\n";
94 ;
95
96 for(int i = 0; i < queues; i++) {
97 Childid[i] = StringFormat.toSafeJavaString(Childid[i]);
98 Childname[i] = StringFormat.toSafeJavaString(Childname[i]);
99 Parid[i] = StringFormat.toSafeJavaString(Parid[i]);
100 Parname[i] = StringFormat.toSafeJavaString(Parname[i]);
101 j = i + 1;
102 Body = Body +
103 "QueuesArray[" + j + "] = new Queue(" + Ch + Childid[i] + Ch +
104 "," + Ch + Childname[i] + Ch + "," + Ch + Parid[i] + Ch + "," + Ch + Parname[i] + Ch + ");\n";
105
106 }
107 return (Head + Body);
108 }
109
110
111 public String getRoleChecked(String Type, String name) {
112 String genericVal = new String();
113
114 if(name.equals("addComment")) {
115 genericVal = coAddComment;
116 }
117 else if(name.equals("addAccountToQueue")) {
118 genericVal = coAddAccountToQueue;
119 }
120 else if(name.equals("cancelLetter")) {
121 genericVal = coCancelLetter;
122 }
123 else if(name.equals("changeReviewTime")) {
124 genericVal = coChangeReviewTime;
125 }
126 else if(name.equals("clearAddedAccount")) {
127 genericVal = coClearAddedAccount;
128 }
129 else if(name.equals("changeDemographics")) {
130 genericVal = coChangeDemographics;
131 }
132 else if(name.equals("transferQueue")) {
133 genericVal = coTransferQueue;
134 }
135 else if(name.equals("changeComment")) {
136 genericVal = coChangeComment;
137 }
138 else if(name.equals("recordPromise")) {
139 genericVal = coRecordPromise;
140 }
141 else if(name.equals("restoreAccount")) {
142 genericVal = coRestoreAccount;
143 }
144 else if(name.equals("scheduleRepresentation")) {
145 genericVal = coScheduleRepresentation;
146 }
147 else if(name.equals("securityAdministrator")) {
148 genericVal = coSecurityAdministrator;
149 }
150 else if(name.equals("statementReprint")) {
151 genericVal = coStatementReprint;
152 }
153 else if(name.equals("systemAdministrator")) {
154 genericVal = coSystemAdministrator;
155 }
156 else if(name.equals("accountTransfer")) {
157 genericVal = coAccountTransfer;
158 }
159 else if(name.equals("payoffQuote")) {
160 genericVal = coPayoffQuote;
161 }
162 else if(name.equals("skipAccount")) {
163 genericVal = coSkipAccount;
164 }
165 else if(name.equals("supervisor")) {
166 genericVal = coSupervisor;
167 }
168
169 if(genericVal.equals("0")) {
170 return "false";
171 }
172 else {
173 return "true";
174 }
175 }
176
177
178 public String getSupervisorQueue(String Type) {
179 String genericVal = new String();
180
181 if(coSupervisorQueueId.equals("_")) {
182 genericVal = "";
183 }
184 else {
185 genericVal = coSupervisorQueueId;
186 }
187
188 return genericVal;
189 }
190
191
192 public XMLDocument parseInfo(String data) throws XMLParseException, XSLException, SAXException, IOException {
193 DOMParser docParser = new DOMParser();
194 ByteArrayInputStream stream;
195 XMLDocument xmlDoc;
196
197 xmlDoc = null;
198 prData = prData + data;
199 stream = new ByteArrayInputStream(data.getBytes());
200 docParser.setValidationMode(false);
201 docParser.parse(stream);
202 xmlDoc = docParser.getDocument();
203 return xmlDoc;
204 }
205
206
207 public void setProfiles(String data) throws XMLParseException, XSLException, SAXException, IOException {
208 xmlProfiles = parseInfo(data);
209 coProfileId = xmlProfiles.valueOf("/Profiles/Collections/profileid");
210 coAddComment = xmlProfiles.valueOf("/Profiles/Collections/addcomment");
211 coAddAccountToQueue = xmlProfiles.valueOf("/Profiles/Collections/addaccounttoqueue");
212 coCancelLetter = xmlProfiles.valueOf("/Profiles/Collections/cancelletter");
213 coChangeReviewTime = xmlProfiles.valueOf("/Profiles/Collections/changereviewtime");
214 coClearAddedAccount = xmlProfiles.valueOf("/Profiles/Collections/clearaddedaccount");
215 coChangeDemographics = xmlProfiles.valueOf("/Profiles/Collections/changedemographics");
216 coTransferQueue = xmlProfiles.valueOf("/Profiles/Collections/transferqueue");
217 coChangeComment = xmlProfiles.valueOf("/Profiles/Collections/changecomment");
218 coOrderLetter = xmlProfiles.valueOf("/Profiles/Collections/orderletter");
219 coActionCodeLevel = xmlProfiles.valueOf("/Profiles/Collections/actioncodelevel");
220 coResultCodeLevel = xmlProfiles.valueOf("/Profiles/Collections/resultcodelevel");
221 coSupervisorQueueId = xmlProfiles.valueOf("/Profiles/Collections/supervisorqueueid");
222 coRecordPromise = xmlProfiles.valueOf("/Profiles/Collections/recordpromise");
223 coRestoreAccount = xmlProfiles.valueOf("/Profiles/Collections/restoreaccounttoqueue");
224 coScheduleRepresentation = xmlProfiles.valueOf("/Profiles/Collections/schedulerepresentation");
225 coSecurityAdministrator = xmlProfiles.valueOf("/Profiles/Collections/securityadministrator");
226 coStatementReprint = xmlProfiles.valueOf("/Profiles/Collections/statementreprint");
227 coSystemAdministrator = xmlProfiles.valueOf("/Profiles/Collections/systemadministrator");
228 coAccountTransfer = xmlProfiles.valueOf("/Profiles/Collections/accounttransfer");
229 coPayoffQuote = xmlProfiles.valueOf("/Profiles/Collections/payoffquote");
230 coSkipAccount = xmlProfiles.valueOf("/Profiles/Collections/skipaccount");
231 coSupervisor = xmlProfiles.valueOf("/Profiles/Collections/supervisor");
232 }
233
234
235 public void setQueues(String data, String type) throws XMLParseException, XSLException, SAXException, IOException {
236 XMLNode node;
237 XMLNode nodeChild;
238 Element ParElement;
239
240 try {
241 xmlQueues = parseInfo(data);
242 ParElement = xmlQueues.getDocumentElement();
243 nlQueues = ParElement.getChildNodes();
244 nlLength = nlQueues.getLength();
245 ParName = new String();
246 for(int i = 0; i < nlLength; i++) {
247 node = (XMLNode)nlQueues.item(i);
248 ParName = node.valueOf("./name");
249 if(type.equals(node.valueOf("./category"))) {
250 nlChildId = node.selectNodes("./ChildQueues/Queue/id/text()");
251 nlChildName = node.selectNodes("./ChildQueues/Queue/name/text()");
252 nlChildLen = nlChildId.getLength();
253
254 if(!(Childid == null)) {
255 Childid = null;
256 Childname = null;
257 Parid = null;
258 Parname = null;
259 }
260
261 Childid = new String[nlChildLen];
262 Childname = new String[nlChildLen];
263 Parid = new String[nlChildLen];
264 Parname = new String[nlChildLen];
265
266 for(int j = 0; j < nlChildLen; j++) {
267 Childid[j] = nlChildId.item(j).getNodeValue();
268
269 Childname[j] = nlChildName.item(j).getNodeValue();
270 Parid[j] = "0";
271 Parname[j] = ParName;
272 }
273 }
274 }
275 }
276 catch(Exception e) {
277 System.out.println("debug --> Security Profiles Exception: " + e.toString());
278 e.printStackTrace(System.out);
279 }
280 }
281 }
282