1    package com.instantbank.collections.util;
2    
3    import java.sql.SQLException;
4    import javax.naming.NamingException;
5    import oracle.xml.sql.query.OracleXMLQuery;
6    import oracle.xml.parser.v2.XMLDocument;
7    import org.w3c.dom.Node;
8    
9    /**
10    * A Class class.
11    * <P>
12    *
13    * @author Indudata
14    */
15   public class XMLDataAccess extends Object {
16     private DataAccess dataAccess = null;
17   
18   
19     /**
20      * Constructor
21      *
22      * @param dbpfile Description of the Parameter
23      */
24     public XMLDataAccess(String dbpfile) {
25       dataAccess = new DataAccess();
26     }
27   
28   
29     public boolean connect() throws NamingException, SQLException {
30       return dataAccess.connect();
31     }
32   
33   
34     public boolean disconnect() {
35       return dataAccess.disconnect();
36     }
37   
38   
39     public DataAccess getDataAccess() {
40       return dataAccess;
41     }
42   
43   
44     public String getXml(String query, String rowsetName, String rowName) {
45       return getXml(query, rowsetName, rowName, null, false);
46     }
47   
48   
49     public String getXml(String query, String rowsetName, String rowName, Node node) {
50       return getXml(query, rowsetName, rowName, null, false, node);
51     }
52   
53   
54     public String getXml(String query, String rowsetName, String rowName, String dateFormat, boolean noRowsException) {
55       return getXml(query, rowsetName, rowName, dateFormat, noRowsException, null);
56     }
57   
58   
59     public String getXml(String query, String rowsetName, String rowName, String dateFormat, boolean noRowsException, Node node) {
60       String r;
61   
62       OracleXMLQuery responseXml = new OracleXMLQuery(dataAccess.connection, query);
63       responseXml.useLowerCaseTagNames();
64       responseXml.setRowsetTag(rowsetName);
65       responseXml.setRowTag(rowName);
66       responseXml.setEncoding("ISO8859-1");
67       responseXml.setRaiseException(true);
68       if(dateFormat != null) {
69         responseXml.setDateFormat(dateFormat);
70       }
71       responseXml.setRaiseNoRowsException(noRowsException);
72       if(node != null) {
73         r = responseXml.getXMLString(node);
74       }
75       else {
76         r = responseXml.getXMLString();
77       }
78       responseXml.close();
79       return r;
80     }
81   
82   
83     public XMLDocument makeXMLSelect(String query) {
84       OracleXMLQuery responseXml = new OracleXMLQuery(dataAccess.connection, query);
85       responseXml.useLowerCaseTagNames();
86       responseXml.setEncoding("ISO8859-1");
87       responseXml.setRaiseException(true);
88       return (XMLDocument)responseXml.getXMLDOM();
89     }
90   
91   
92     public XMLDocument makeXMLSelect(String query, String rowsetName, String rowName) {
93       return makeXMLSelect(query, rowsetName, rowName, null, false, null);
94     }
95   
96   
97     public XMLDocument makeXMLSelect(String query, String rowsetName, String rowName, Node node) {
98       return makeXMLSelect(query, rowsetName, rowName, null, false, node);
99     }
100  
101  
102    public XMLDocument makeXMLSelect(String query, String rowsetName, String rowName, String dateFormat, boolean noRowsException) {
103      return makeXMLSelect(query, rowsetName, rowName, dateFormat, noRowsException, null);
104    }
105  
106  
107    public XMLDocument makeXMLSelect(String query, String rowsetName, String rowName, String dateFormat, boolean noRowsException, Node node) {
108      OracleXMLQuery responseXml = new OracleXMLQuery(dataAccess.connection, query);
109      responseXml.useLowerCaseTagNames();
110      responseXml.setRowsetTag(rowsetName);
111      responseXml.setRowTag(rowName);
112      responseXml.setEncoding("ISO8859-1");
113      responseXml.setRaiseException(true);
114      if(dateFormat != null) {
115        responseXml.setDateFormat(dateFormat);
116      }
117      responseXml.setRaiseNoRowsException(noRowsException);
118      if(node != null) {
119        return (XMLDocument)responseXml.getXMLDOM(node);
120      }
121      else {
122        return (XMLDocument)responseXml.getXMLDOM();
123      }
124    }
125  }
126