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.sql.ResultSetMetaData;
48  import java.sql.SQLException;
49  
50  /**
51   * The JDBC3 methods of a {@link ResultSetMetaData},
52   * decorated to throw an {@link SQLException} on command.
53   * 
54   * @author timp
55   * @since  5 Feb 2008
56   *
57   */
58  public abstract class ThrowingResultSetMetaDataJdbc3
59          extends Thrower implements ResultSetMetaData {
60  
61    ResultSetMetaData it = null;
62  
63    public String getCatalogName(int column) throws SQLException {
64      if (shouldThrow(this.getClass().getInterfaces()[0], "getCatalogName"))
65        throw new SQLException("ResultSetMetaData bombed");
66      return it.getCatalogName(column);
67    }
68  
69    public String getColumnClassName(int column) throws SQLException {
70      if (shouldThrow(this.getClass().getInterfaces()[0], "getColumnClassName"))
71        throw new SQLException("ResultSetMetaData bombed");
72      return it.getColumnClassName(column);
73    }
74  
75    public int getColumnCount() throws SQLException {
76      if (shouldThrow(this.getClass().getInterfaces()[0], "getColumnCount"))
77        throw new SQLException("ResultSetMetaData bombed");
78      return it.getColumnCount();
79    }
80  
81    public int getColumnDisplaySize(int column) throws SQLException {
82      if (shouldThrow(this.getClass().getInterfaces()[0], "getColumnDisplaySize"))
83        throw new SQLException("ResultSetMetaData bombed");
84      return it.getColumnDisplaySize(column);
85    }
86  
87    public String getColumnLabel(int column) throws SQLException {
88      if (shouldThrow(this.getClass().getInterfaces()[0], "getColumnLabel"))
89        throw new SQLException("ResultSetMetaData bombed");
90      return it.getColumnLabel(column);
91    }
92  
93    public String getColumnName(int column) throws SQLException {
94      if (shouldThrow(this.getClass().getInterfaces()[0], "getColumnName"))
95        throw new SQLException("ResultSetMetaData bombed");
96      return it.getColumnName(column);
97    }
98  
99    public int getColumnType(int column) throws SQLException {
100     if (shouldThrow(this.getClass().getInterfaces()[0], "getColumnType"))
101       throw new SQLException("ResultSetMetaData bombed");
102     return it.getColumnType(column);
103   }
104 
105   public String getColumnTypeName(int column) throws SQLException {
106     if (shouldThrow(this.getClass().getInterfaces()[0], "getColumnTypeName"))
107       throw new SQLException("ResultSetMetaData bombed");
108     return it.getColumnTypeName(column);
109  }
110 
111   public int getPrecision(int column) throws SQLException {
112     if (shouldThrow(this.getClass().getInterfaces()[0], "getPrecision"))
113       throw new SQLException("ResultSetMetaData bombed");
114     return it.getPrecision(column);
115   }
116 
117   public int getScale(int column) throws SQLException {
118     if (shouldThrow(this.getClass().getInterfaces()[0], "getScale"))
119       throw new SQLException("ResultSetMetaData bombed");
120     return it.getScale(column);
121   }
122 
123   public String getSchemaName(int column) throws SQLException {
124     if (shouldThrow(this.getClass().getInterfaces()[0], "getSchemaName"))
125       throw new SQLException("ResultSetMetaData bombed");
126     return it.getSchemaName(column);
127   }
128 
129   public String getTableName(int column) throws SQLException {
130     if (shouldThrow(this.getClass().getInterfaces()[0], "getTableName"))
131       throw new SQLException("ResultSetMetaData bombed");
132     return it.getTableName(column);
133   }
134 
135   public boolean isAutoIncrement(int column) throws SQLException {
136     if (shouldThrow(this.getClass().getInterfaces()[0], "isAutoIncrement"))
137       throw new SQLException("ResultSetMetaData bombed");
138     return it.isAutoIncrement(column);
139   }
140 
141   public boolean isCaseSensitive(int column) throws SQLException {
142     if (shouldThrow(this.getClass().getInterfaces()[0], "isCaseSensitive"))
143       throw new SQLException("ResultSetMetaData bombed");
144     return it.isCaseSensitive(column);
145   }
146 
147   public boolean isCurrency(int column) throws SQLException {
148     if (shouldThrow(this.getClass().getInterfaces()[0], "isCurrency"))
149       throw new SQLException("ResultSetMetaData bombed");
150     return it.isCurrency(column);
151   }
152 
153   public boolean isDefinitelyWritable(int column) throws SQLException {
154     if (shouldThrow(this.getClass().getInterfaces()[0], "isDefinitelyWritable"))
155       throw new SQLException("ResultSetMetaData bombed");
156     return it.isDefinitelyWritable(column);
157   }
158 
159   public int isNullable(int column) throws SQLException {
160     if (shouldThrow(this.getClass().getInterfaces()[0], "isNullable"))
161       throw new SQLException("ResultSetMetaData bombed");
162     return it.isNullable(column);
163   }
164 
165   public boolean isReadOnly(int column) throws SQLException {
166     if (shouldThrow(this.getClass().getInterfaces()[0], "isReadOnly"))
167       throw new SQLException("ResultSetMetaData bombed");
168     return it.isReadOnly(column);
169   }
170 
171   public boolean isSearchable(int column) throws SQLException {
172     if (shouldThrow(this.getClass().getInterfaces()[0], "isSearchable"))
173       throw new SQLException("ResultSetMetaData bombed");
174     return it.isSearchable(column);
175   }
176 
177   public boolean isSigned(int column) throws SQLException {
178     if (shouldThrow(this.getClass().getInterfaces()[0], "isSigned"))
179       throw new SQLException("ResultSetMetaData bombed");
180     return it.isSigned(column);
181   }
182 
183   public boolean isWritable(int column) throws SQLException {
184     if (shouldThrow(this.getClass().getInterfaces()[0], "isWritable"))
185       throw new SQLException("ResultSetMetaData bombed");
186     return it.isWritable(column);
187   }
188 }