001: /*
002:
003: Derby - Class org.apache.derby.impl.jdbc.EmbedPreparedStatement40
004:
005: Licensed to the Apache Software Foundation (ASF) under one or more
006: contributor license agreements. See the NOTICE file distributed with
007: this work for additional information regarding copyright ownership.
008: The ASF licenses this file to you under the Apache License, Version 2.0
009: (the "License"); you may not use this file except in compliance with
010: the License. You may obtain a copy of the License at
011:
012: http://www.apache.org/licenses/LICENSE-2.0
013:
014: Unless required by applicable law or agreed to in writing, software
015: distributed under the License is distributed on an "AS IS" BASIS,
016: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: See the License for the specific language governing permissions and
018: limitations under the License.
019:
020: */
021:
022: package org.apache.derby.impl.jdbc;
023:
024: import java.io.InputStream;
025: import java.io.Reader;
026: import java.sql.RowId;
027: import java.sql.NClob;
028: import java.sql.ParameterMetaData;
029: import java.sql.SQLException;
030: import java.sql.SQLXML;
031: import java.sql.Types;
032: import org.apache.derby.iapi.reference.SQLState;
033: import org.apache.derby.iapi.error.StandardException;
034:
035: public class EmbedPreparedStatement40 extends EmbedPreparedStatement30 {
036:
037: public EmbedPreparedStatement40(EmbedConnection conn, String sql,
038: boolean forMetaData, int resultSetType,
039: int resultSetConcurrency, int resultSetHoldability,
040: int autoGeneratedKeys, int[] columnIndexes,
041: String[] columnNames) throws SQLException {
042: super (conn, sql, forMetaData, resultSetType,
043: resultSetConcurrency, resultSetHoldability,
044: autoGeneratedKeys, columnIndexes, columnNames);
045: }
046:
047: public void setRowId(int parameterIndex, RowId x)
048: throws SQLException {
049: throw Util.notImplemented();
050: }
051:
052: public void setNString(int index, String value) throws SQLException {
053: throw Util.notImplemented();
054: }
055:
056: public void setNCharacterStream(int parameterIndex, Reader value)
057: throws SQLException {
058: throw Util.notImplemented();
059: }
060:
061: public void setNCharacterStream(int index, Reader value, long length)
062: throws SQLException {
063: throw Util.notImplemented();
064: }
065:
066: public void setNClob(int parameterIndex, Reader reader)
067: throws SQLException {
068: throw Util.notImplemented();
069: }
070:
071: public void setNClob(int index, NClob value) throws SQLException {
072: throw Util.notImplemented();
073: }
074:
075: public void setNClob(int parameterIndex, Reader reader, long length)
076: throws SQLException {
077: throw Util.notImplemented();
078: }
079:
080: public void setSQLXML(int parameterIndex, SQLXML xmlObject)
081: throws SQLException {
082: throw Util.notImplemented();
083: }
084:
085: /**
086: * JDBC 4.0
087: *
088: * Retrieves the number, types and properties of this PreparedStatement
089: * object's parameters.
090: *
091: * @return a ParameterMetaData object that contains information about the
092: * number, types and properties of this PreparedStatement object's parameters.
093: * @exception SQLException if a database access error occurs
094: *
095: */
096: public ParameterMetaData getParameterMetaData() throws SQLException {
097: checkStatus();
098: return new EmbedParameterMetaData40(getParms(),
099: preparedStatement.getParameterTypes());
100: }
101:
102: /**
103: * Returns false unless <code>interfaces</code> is implemented
104: *
105: * @param interfaces a Class defining an interface.
106: * @return true if this implements the interface or
107: * directly or indirectly wraps an object
108: * that does.
109: * @throws java.sql.SQLException if an error occurs while determining
110: * whether this is a wrapper for an object
111: * with the given interface.
112: */
113: public boolean isWrapperFor(Class<?> interfaces)
114: throws SQLException {
115: checkStatus();
116: return interfaces.isInstance(this );
117: }
118:
119: /**
120: * Returns <code>this</code> if this class implements the interface
121: *
122: * @param interfaces a Class defining an interface
123: * @return an object that implements the interface
124: * @throws java.sql.SQLExption if no object if found that implements the
125: * interface
126: */
127: public <T> T unwrap(java.lang.Class<T> interfaces)
128: throws SQLException {
129: checkStatus();
130: try {
131: return interfaces.cast(this );
132: } catch (ClassCastException cce) {
133: throw newSQLException(SQLState.UNABLE_TO_UNWRAP, interfaces);
134: }
135: }
136: }
|