1    package com.instantbank.collections.documents.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.commonQueuing.web.FieldsTransformer;
12   import com.instantbank.collections.util.InstantbankException;
13   
14   public class DocumentTransformer {
15     long companyId;
16     XMLDocument doc;
17     FieldsTransformer ft = null;
18     String objectType = "";
19   
20   
21     public DocumentTransformer(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("RulesList/Rule/description");
30     }
31   
32   
33     public String getFieldsArray() {
34       return ft.getFieldsArray();
35     }
36   
37   
38     public String getId() {
39       return getValueOf("Document/DocumentFields/id");
40     }
41   
42   
43     public String getLastChangedBy() {
44       return getValueOf("Document/DocumentFields/lastchangedby");
45     }
46   
47   
48     public String getLastChangedDate() {
49       return getValueOf("Document/DocumentFields/lastchangeddate");
50     }
51   
52   
53     public String getLocationId() {
54       return getValueOf("CompanyLocationsList/CompanyLocations/id");
55     }
56   
57   
58     public String getName() {
59       return getValueOf("Document/DocumentFields/name");
60     }
61   
62   
63     public String getMenusArray() {
64       return ft.getMenus();
65     }
66   
67   
68     public String getPriority() {
69       return getValueOf("Document/DocumentFields/priority");
70     }
71   
72   
73     public String getQueueTypesOptions() {
74       return ft.getQueueTypesOptions();
75     }
76   
77   
78     public String getRulesArray() throws InstantbankException {
79       XMLNode node;
80       NodeList nodeList;
81       PrintWriter pw;
82       Element root;
83       String rules;
84       StringWriter sw;
85       String varArrays = "";
86   
87       try {
88         root = doc.getDocumentElement();
89         sw = new StringWriter();
90         pw = new PrintWriter(sw);
91         doc.print(pw);
92         rules = sw.toString();
93         varArrays += ft.getRulesArray(rules);
94       }
95       catch(Exception e) {
96         varArrays += "/* Exception: " + e.getClass().getName() + " " + e.getMessage() + " */";
97       }
98       return varArrays;
99     }
100  
101  
102    private String getValueOf(String nodeName) {
103      try {
104        return doc.valueOf(nodeName);
105      }
106      catch(Exception e) {
107        return "";
108      }
109    }
110  
111  
112    public void setData(String xml) {
113      DOMParser docParser = new DOMParser();
114      ByteArrayInputStream stream = null;
115  
116      try {
117        stream = new ByteArrayInputStream(xml.getBytes());
118        docParser.setValidationMode(false);
119        docParser.parse(stream);
120        doc = docParser.getDocument();
121      }
122      catch(Exception e) {
123      }
124    }
125  }
126  
127