blob: 6983025be494ebb5b529209c5a5f99f55f71b8a4 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.calcite.avatica;
import java.io.InputStream;
import java.io.Reader;
import java.sql.NClob;
import java.sql.ResultSetMetaData;
import java.sql.RowId;
import java.sql.SQLException;
import java.sql.SQLXML;
import java.util.Properties;
import java.util.TimeZone;
/**
* Implementation of {@link AvaticaFactory} for JDBC 4.1 (corresponds to JDK
* 1.7).
*/
@SuppressWarnings("UnusedDeclaration")
class AvaticaJdbc41Factory implements AvaticaFactory {
private final int major;
private final int minor;
/** Creates a JDBC factory. */
// CHECKSTYLE: stop RedundantModifierCheck
public AvaticaJdbc41Factory() {
this(4, 1);
}
// CHECKSTYLE: resume RedundantModifierCheck
/** Creates a JDBC factory with given major/minor version number. */
protected AvaticaJdbc41Factory(int major, int minor) {
this.major = major;
this.minor = minor;
}
public int getJdbcMajorVersion() {
return major;
}
public int getJdbcMinorVersion() {
return minor;
}
public AvaticaConnection newConnection(
UnregisteredDriver driver,
AvaticaFactory factory,
String url,
Properties info) {
return new AvaticaJdbc41Connection(driver, factory, url, info);
}
public AvaticaSpecificDatabaseMetaData newDatabaseMetaData(
AvaticaConnection connection) {
return new AvaticaJdbc41DatabaseMetaData(connection);
}
public AvaticaStatement newStatement(AvaticaConnection connection,
Meta.StatementHandle h, int resultSetType, int resultSetConcurrency,
int resultSetHoldability) {
return new AvaticaJdbc41Statement(connection, h, resultSetType,
resultSetConcurrency, resultSetHoldability);
}
public AvaticaPreparedStatement newPreparedStatement(
AvaticaConnection connection, Meta.StatementHandle h,
Meta.Signature signature, int resultSetType, int resultSetConcurrency,
int resultSetHoldability)
throws SQLException {
return new AvaticaJdbc41PreparedStatement(connection, h, signature,
resultSetType, resultSetConcurrency, resultSetHoldability);
}
public AvaticaResultSet newResultSet(AvaticaStatement statement,
QueryState state, Meta.Signature signature, TimeZone timeZone, Meta.Frame firstFrame)
throws SQLException {
final ResultSetMetaData metaData =
newResultSetMetaData(statement, signature);
return new AvaticaResultSet(statement, state, signature, metaData, timeZone,
firstFrame);
}
public AvaticaResultSetMetaData newResultSetMetaData(
AvaticaStatement statement, Meta.Signature signature) {
return new AvaticaResultSetMetaData(statement, null, signature);
}
/** Implementation of Connection for JDBC 4.1. */
private static class AvaticaJdbc41Connection extends AvaticaConnection {
AvaticaJdbc41Connection(UnregisteredDriver driver,
AvaticaFactory factory,
String url,
Properties info) {
super(driver, factory, url, info);
}
}
/** Implementation of Statement for JDBC 4.1. */
private static class AvaticaJdbc41Statement extends AvaticaStatement {
private AvaticaJdbc41Statement(AvaticaConnection connection,
Meta.StatementHandle h, int resultSetType, int resultSetConcurrency,
int resultSetHoldability) {
super(connection, h, resultSetType, resultSetConcurrency,
resultSetHoldability);
}
}
/** Implementation of PreparedStatement for JDBC 4.1. */
private static class AvaticaJdbc41PreparedStatement
extends AvaticaPreparedStatement {
AvaticaJdbc41PreparedStatement(AvaticaConnection connection,
Meta.StatementHandle h, Meta.Signature signature, int resultSetType,
int resultSetConcurrency, int resultSetHoldability)
throws SQLException {
super(connection, h, signature, resultSetType, resultSetConcurrency,
resultSetHoldability);
}
public void setRowId(
int parameterIndex,
RowId x) throws SQLException {
getSite(parameterIndex).setRowId(x);
}
public void setNString(
int parameterIndex, String value) throws SQLException {
getSite(parameterIndex).setNString(value);
}
public void setNCharacterStream(
int parameterIndex,
Reader value,
long length) throws SQLException {
getSite(parameterIndex)
.setNCharacterStream(value, length);
}
public void setNClob(
int parameterIndex,
NClob value) throws SQLException {
getSite(parameterIndex).setNClob(value);
}
public void setClob(
int parameterIndex,
Reader reader,
long length) throws SQLException {
getSite(parameterIndex)
.setClob(reader, length);
}
public void setBlob(
int parameterIndex,
InputStream inputStream,
long length) throws SQLException {
getSite(parameterIndex)
.setBlob(inputStream, length);
}
public void setNClob(
int parameterIndex,
Reader reader,
long length) throws SQLException {
getSite(parameterIndex)
.setNClob(reader, length);
}
public void setSQLXML(
int parameterIndex, SQLXML xmlObject) throws SQLException {
getSite(parameterIndex).setSQLXML(xmlObject);
}
public void setAsciiStream(
int parameterIndex,
InputStream x,
long length) throws SQLException {
getSite(parameterIndex)
.setAsciiStream(x, length);
}
public void setBinaryStream(
int parameterIndex,
InputStream x,
long length) throws SQLException {
getSite(parameterIndex)
.setBinaryStream(x, length);
}
public void setCharacterStream(
int parameterIndex,
Reader reader,
long length) throws SQLException {
getSite(parameterIndex)
.setCharacterStream(reader, length);
}
public void setAsciiStream(
int parameterIndex, InputStream x) throws SQLException {
getSite(parameterIndex).setAsciiStream(x);
}
public void setBinaryStream(
int parameterIndex, InputStream x) throws SQLException {
getSite(parameterIndex).setBinaryStream(x);
}
public void setCharacterStream(
int parameterIndex, Reader reader) throws SQLException {
getSite(parameterIndex)
.setCharacterStream(reader);
}
public void setNCharacterStream(
int parameterIndex, Reader value) throws SQLException {
getSite(parameterIndex)
.setNCharacterStream(value);
}
public void setClob(
int parameterIndex,
Reader reader) throws SQLException {
getSite(parameterIndex).setClob(reader);
}
public void setBlob(
int parameterIndex, InputStream inputStream) throws SQLException {
getSite(parameterIndex).setBlob(inputStream);
}
public void setNClob(
int parameterIndex, Reader reader) throws SQLException {
getSite(parameterIndex).setNClob(reader);
}
}
/** Implementation of DatabaseMetaData for JDBC 4.1. */
private static class AvaticaJdbc41DatabaseMetaData
extends AvaticaDatabaseMetaData {
AvaticaJdbc41DatabaseMetaData(AvaticaConnection connection) {
super(connection);
}
}
}
// End AvaticaJdbc41Factory.java