1 package com.instantbank.collections.commonQueuing.web; 2 3 import java.io.ByteArrayInputStream; 4 import java.io.PrintWriter; 5 import java.io.StringWriter; 6 import oracle.xml.parser.v2.DOMParser; 7 import oracle.xml.parser.v2.XMLDocument; 8 import oracle.xml.parser.v2.XMLNode; 9 import org.w3c.dom.Element; 10 import org.w3c.dom.NodeList; 11 import com.instantbank.collections.util.InstantbankException; 12 import com.instantbank.collections.util.XMLUtils; 13 14 public class QueueTransformer { 15 long companyId; 16 XMLDocument doc; 17 FieldsTransformer ft = null; 18 String objectType = ""; 19 20 21 public QueueTransformer(Long companyId, String objectType) throws InstantbankException { 22 this.ft = new FieldsTransformer(companyId, objectType); 23 this.objectType = objectType; 24 this.companyId = companyId.longValue(); 25 } 26 27 28 public String getDescription() { 29 return getValueOf("Queue/QueueFields/description"); 30 } 31 32 33 public String getFieldsArray() { 34 return ft.getFieldsArray(); 35 } 36 37 38 public String getGroupsUserArray() { 39 return ft.getGroupsUserArray(); 40 } 41 42 43 public String getId() { 44 return getValueOf("Queue/QueueFields/id"); 45 } 46 47 48 public String getLastChangedBy() { 49 return getValueOf("Queue/QueueFields/lastchangedby"); 50 } 51 52 53 public String getLastChangedDate() { 54 return getValueOf("Queue/QueueFields/lastchangeddate"); 55 } 56 57 58 public String getName() { 59 return getValueOf("Queue/QueueFields/name"); 60 } 61 62 63 public String getMenusArray() { 64 return ft.getMenus(); 65 } 66 67 68 public String getQueueType() { 69 return getValueOf("Queue/QueueFields/type"); 70 } 71 72 73 public String getPriority() { 74 return getValueOf("Queue/QueueFields/priority"); 75 } 76 77 78 public String getQueueTypesOptions() { 79 return ft.getQueueTypesOptions(); 80 } 81 82 83 public String getRulesArray() throws InstantbankException { 84 XMLNode node; 85 NodeList nodeList; 86 PrintWriter pw; 87 Element root; 88 String rules; 89 StringWriter sw; 90 String varArrays = ""; 91 92 try { 93 root = doc.getDocumentElement(); 94 nodeList = root.getChildNodes(); 95 for(int i = 0; i < nodeList.getLength(); i++) { 96 node = (XMLNode)nodeList.item(i); 97 if(node.getNodeName().equals("RulesList")) { 98 sw = new StringWriter(); 99 pw = new PrintWriter(sw); 100 node.print(pw); 101 rules = XMLUtils.xmlHeader(); 102 rules += sw.toString(); 103 varArrays += ft.getRulesArray(rules); 104 } 105 } 106 } 107 catch(Exception e) { 108 varArrays += "/* Exception: " + e.getClass().getName() + " " + e.getMessage() + " */"; 109 } 110 return varArrays; 111 } 112 113 114 public String getSortArray() throws InstantbankException { 115 XMLNode node; 116 NodeList nodeList; 117 PrintWriter pw; 118 Element root; 119 String rules; 120 StringWriter sw; 121 String varArrays = ""; 122 123 try { 124 root = doc.getDocumentElement(); 125 nodeList = root.getChildNodes(); 126 for(int i = 0; i < nodeList.getLength(); i++) { 127 node = (XMLNode)nodeList.item(i); 128 if(node.getNodeName().equals("SortList")) { 129 sw = new StringWriter(); 130 pw = new PrintWriter(sw); 131 node.print(pw); 132 rules = XMLUtils.xmlHeader(); 133 rules += sw.toString(); 134 varArrays += ft.getSortArray(rules); 135 } 136 } 137 } 138 catch(Exception e) { 139 varArrays += "/* Exception: " + e.getClass().getName() + " " + e.getMessage() + " */"; 140 } 141 return varArrays; 142 } 143 144 145 public String getSelectedUsersArray() throws InstantbankException { 146 XMLNode node; 147 NodeList nodeList; 148 PrintWriter pw; 149 Element root; 150 String rules; 151 StringWriter sw; 152 String varArrays = ""; 153 154 try { 155 root = doc.getDocumentElement(); 156 nodeList = root.getChildNodes(); 157 for(int i = 0; i < nodeList.getLength(); i++) { 158 node = (XMLNode)nodeList.item(i); 159 if(node.getNodeName().equals("DistributionList")) { 160 sw = new StringWriter(); 161 pw = new PrintWriter(sw); 162 node.print(pw); 163 rules = XMLUtils.xmlHeader(); 164 rules += sw.toString(); 165 varArrays += ft.getSelectedUsersArray(rules); 166 } 167 } 168 } 169 catch(Exception e) { 170 varArrays += "/* Exception: " + e.getClass().getName() + " " + e.getMessage() + " */"; 171 } 172 return varArrays; 173 } 174 175 176 public String getStartDate() { 177 return getValueOf("Queue/QueueFields/startdate"); 178 } 179 180 181 public String getStatus() { 182 return getValueOf("Queue/QueueFields/status"); 183 } 184 185 186 private String getValueOf(String nodeName) { 187 try { 188 return doc.valueOf(nodeName); 189 } 190 catch(Exception e) { 191 return ""; 192 } 193 } 194 195 196 public void setData(String xml) { 197 DOMParser docParser = new DOMParser(); 198 ByteArrayInputStream stream = null; 199 200 try { 201 stream = new ByteArrayInputStream(xml.getBytes()); 202 docParser.setValidationMode(false); 203 docParser.parse(stream); 204 doc = docParser.getDocument(); 205 } 206 catch(Exception e) { 207 } 208 } 209 } 210 211