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