View Javadoc
1   /*
2    * $Source$
3    * $Revision$
4    *
5    * Copyright (C) 2008 Tim Pizey
6    *
7    * Part of Melati (http://melati.org), a framework for the rapid
8    * development of clean, maintainable web applications.
9    *
10   * Melati is free software; Permission is granted to copy, distribute
11   * and/or modify this software under the terms either:
12   *
13   * a) the GNU General Public License as published by the Free Software
14   *    Foundation; either version 2 of the License, or (at your option)
15   *    any later version,
16   *
17   *    or
18   *
19   * b) any version of the Melati Software License, as published
20   *    at http://melati.org
21   *
22   * You should have received a copy of the GNU General Public License and
23   * the Melati Software License along with this program;
24   * if not, write to the Free Software Foundation, Inc.,
25   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA to obtain the
26   * GNU General Public License and visit http://melati.org to obtain the
27   * Melati Software License.
28   *
29   * Feel free to contact the Developers of Melati (http://melati.org),
30   * if you would like to work out a different arrangement than the options
31   * outlined here.  It is our intention to allow Melati to be used by as
32   * wide an audience as possible.
33   *
34   * This program is distributed in the hope that it will be useful,
35   * but WITHOUT ANY WARRANTY; without even the implied warranty of
36   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37   * GNU General Public License for more details.
38   *
39   * Contact details for copyright holder:
40   *
41   *     Tim Pizey <timp At paneris.org>
42   *     http://paneris.org/~timp
43   */
44  
45  package org.melati.poem.dbms.test.sql;
46  
47  import java.io.InputStream;
48  import java.io.OutputStream;
49  import java.io.Reader;
50  import java.io.Writer;
51  import java.sql.SQLException;
52  import java.sql.SQLXML;
53  
54  import javax.xml.transform.Result;
55  import javax.xml.transform.Source;
56  
57  /**
58   * @author timp
59   * @since 5 Feb 2008
60   *
61   */
62  public class ThrowingSQLXML extends Thrower implements SQLXML {
63    
64    SQLXML it = null;
65    
66  
67    /**
68     * Constructor.
69     */
70    public ThrowingSQLXML(SQLXML sx) {
71      it = sx;
72    }
73  
74    /** 
75     * {@inheritDoc}
76     * @see java.sql.SQLXML#free()
77     */
78  
79    public void free() throws SQLException {
80      if (shouldThrow(this.getClass().getInterfaces()[0], "free"))
81        throw new SQLException("SQLXML bombed");
82      it.free();
83    }
84  
85    /** 
86     * {@inheritDoc}
87     * @see java.sql.SQLXML#getBinaryStream()
88     */
89  
90    public InputStream getBinaryStream() throws SQLException {
91      if (shouldThrow(this.getClass().getInterfaces()[0], "getBinaryStream"))
92        throw new SQLException("SQLXML bombed");
93      return it.getBinaryStream();
94    }
95  
96    /** 
97     * {@inheritDoc}
98     * @see java.sql.SQLXML#getCharacterStream()
99     */
100 
101   public Reader getCharacterStream() throws SQLException {
102     if (shouldThrow(this.getClass().getInterfaces()[0], "getCharacterStream"))
103       throw new SQLException("SQLXML bombed");
104     return it.getCharacterStream();
105   }
106 
107   /** 
108    * {@inheritDoc}
109    * @see java.sql.SQLXML#getSource(java.lang.Class)
110    */
111 
112   public <T extends Source> T getSource(Class<T> sourceClass)
113           throws SQLException {
114     if (shouldThrow(this.getClass().getInterfaces()[0], "getSource"))
115       throw new SQLException("SQLXML bombed");
116     return it.getSource(sourceClass);
117   }
118 
119   /** 
120    * {@inheritDoc}
121    * @see java.sql.SQLXML#getString()
122    */
123 
124   public String getString() throws SQLException {
125     if (shouldThrow(this.getClass().getInterfaces()[0], "getString"))
126       throw new SQLException("SQLXML bombed");
127     return it.getString();
128   }
129 
130   /** 
131    * {@inheritDoc}
132    * @see java.sql.SQLXML#setBinaryStream()
133    */
134 
135   public OutputStream setBinaryStream() throws SQLException {
136     if (shouldThrow(this.getClass().getInterfaces()[0], "setBinaryStream"))
137       throw new SQLException("SQLXML bombed");
138     return it.setBinaryStream();
139   }
140 
141   /** 
142    * {@inheritDoc}
143    * @see java.sql.SQLXML#setCharacterStream()
144    */
145 
146   public Writer setCharacterStream() throws SQLException {
147     if (shouldThrow(this.getClass().getInterfaces()[0], "setCharacterStream"))
148       throw new SQLException("SQLXML bombed");
149     return it.setCharacterStream();
150   }
151 
152   /** 
153    * {@inheritDoc}
154    * @see java.sql.SQLXML#setResult(java.lang.Class)
155    */
156 
157   public <T extends Result> T setResult(Class<T> resultClass)
158           throws SQLException {
159     if (shouldThrow(this.getClass().getInterfaces()[0], "setResult"))
160       throw new SQLException("SQLXML bombed");
161     return it.setResult(resultClass);
162   }
163 
164   /** 
165    * {@inheritDoc}
166    * @see java.sql.SQLXML#setString(java.lang.String)
167    */
168 
169   public void setString(String value) throws SQLException {
170     if (shouldThrow(this.getClass().getInterfaces()[0], "setString"))
171       throw new SQLException("SQLXML bombed");
172     it.setString(value);
173   }
174 
175 }