1*3c5114b8SDamjan Jovanovic /************************************************************** 2*3c5114b8SDamjan Jovanovic * 3*3c5114b8SDamjan Jovanovic * Licensed to the Apache Software Foundation (ASF) under one 4*3c5114b8SDamjan Jovanovic * or more contributor license agreements. See the NOTICE file 5*3c5114b8SDamjan Jovanovic * distributed with this work for additional information 6*3c5114b8SDamjan Jovanovic * regarding copyright ownership. The ASF licenses this file 7*3c5114b8SDamjan Jovanovic * to you under the Apache License, Version 2.0 (the 8*3c5114b8SDamjan Jovanovic * "License"); you may not use this file except in compliance 9*3c5114b8SDamjan Jovanovic * with the License. You may obtain a copy of the License at 10*3c5114b8SDamjan Jovanovic * 11*3c5114b8SDamjan Jovanovic * http://www.apache.org/licenses/LICENSE-2.0 12*3c5114b8SDamjan Jovanovic * 13*3c5114b8SDamjan Jovanovic * Unless required by applicable law or agreed to in writing, 14*3c5114b8SDamjan Jovanovic * software distributed under the License is distributed on an 15*3c5114b8SDamjan Jovanovic * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*3c5114b8SDamjan Jovanovic * KIND, either express or implied. See the License for the 17*3c5114b8SDamjan Jovanovic * specific language governing permissions and limitations 18*3c5114b8SDamjan Jovanovic * under the License. 19*3c5114b8SDamjan Jovanovic * 20*3c5114b8SDamjan Jovanovic *************************************************************/ 21*3c5114b8SDamjan Jovanovic 22*3c5114b8SDamjan Jovanovic package com.sun.star.sdbcx.comp.postgresql; 23*3c5114b8SDamjan Jovanovic 24*3c5114b8SDamjan Jovanovic import com.sun.star.beans.PropertyVetoException; 25*3c5114b8SDamjan Jovanovic import com.sun.star.beans.UnknownPropertyException; 26*3c5114b8SDamjan Jovanovic import com.sun.star.beans.XPropertyChangeListener; 27*3c5114b8SDamjan Jovanovic import com.sun.star.beans.XPropertySet; 28*3c5114b8SDamjan Jovanovic import com.sun.star.beans.XPropertySetInfo; 29*3c5114b8SDamjan Jovanovic import com.sun.star.beans.XVetoableChangeListener; 30*3c5114b8SDamjan Jovanovic import com.sun.star.io.XInputStream; 31*3c5114b8SDamjan Jovanovic import com.sun.star.lang.IllegalArgumentException; 32*3c5114b8SDamjan Jovanovic import com.sun.star.lang.WrappedTargetException; 33*3c5114b8SDamjan Jovanovic import com.sun.star.lib.uno.helper.ComponentBase; 34*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.SQLException; 35*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XArray; 36*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XBlob; 37*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XClob; 38*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XCloseable; 39*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XConnection; 40*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XMultipleResults; 41*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XParameters; 42*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XPreparedBatchExecution; 43*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XPreparedStatement; 44*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XRef; 45*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XResultSet; 46*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XResultSetMetaData; 47*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XResultSetMetaDataSupplier; 48*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XWarningsSupplier; 49*3c5114b8SDamjan Jovanovic import com.sun.star.uno.UnoRuntime; 50*3c5114b8SDamjan Jovanovic import com.sun.star.util.Date; 51*3c5114b8SDamjan Jovanovic import com.sun.star.util.DateTime; 52*3c5114b8SDamjan Jovanovic import com.sun.star.util.Time; 53*3c5114b8SDamjan Jovanovic import com.sun.star.util.XCancellable; 54*3c5114b8SDamjan Jovanovic 55*3c5114b8SDamjan Jovanovic public class PostgresqlPreparedStatement extends ComponentBase 56*3c5114b8SDamjan Jovanovic implements XPreparedStatement, XCloseable, XPropertySet, XCancellable, XResultSetMetaDataSupplier, XParameters, XPreparedBatchExecution, 57*3c5114b8SDamjan Jovanovic XWarningsSupplier, XMultipleResults { 58*3c5114b8SDamjan Jovanovic 59*3c5114b8SDamjan Jovanovic private XPreparedStatement impl; 60*3c5114b8SDamjan Jovanovic private XCloseable implCloseable; 61*3c5114b8SDamjan Jovanovic private XPropertySet implPropertySet; 62*3c5114b8SDamjan Jovanovic private XCancellable implCancellable; 63*3c5114b8SDamjan Jovanovic private XResultSetMetaDataSupplier implResultSetMetaDataSupplier; 64*3c5114b8SDamjan Jovanovic private XParameters implParameters; 65*3c5114b8SDamjan Jovanovic private XPreparedBatchExecution implPreparedBatchExecution; 66*3c5114b8SDamjan Jovanovic private XWarningsSupplier implWarningsSupplier; 67*3c5114b8SDamjan Jovanovic private XMultipleResults implMultipleResults; 68*3c5114b8SDamjan Jovanovic private XConnection connection; 69*3c5114b8SDamjan Jovanovic PostgresqlPreparedStatement(XPreparedStatement impl, XConnection connection)70*3c5114b8SDamjan Jovanovic public PostgresqlPreparedStatement(XPreparedStatement impl, XConnection connection) { 71*3c5114b8SDamjan Jovanovic this.impl = impl; 72*3c5114b8SDamjan Jovanovic this.implCloseable = UnoRuntime.queryInterface(XCloseable.class, impl); 73*3c5114b8SDamjan Jovanovic this.implPropertySet = UnoRuntime.queryInterface(XPropertySet.class, impl); 74*3c5114b8SDamjan Jovanovic this.implCancellable = UnoRuntime.queryInterface(XCancellable.class, impl); 75*3c5114b8SDamjan Jovanovic this.implResultSetMetaDataSupplier = UnoRuntime.queryInterface(XResultSetMetaDataSupplier.class, impl); 76*3c5114b8SDamjan Jovanovic this.implParameters = UnoRuntime.queryInterface(XParameters.class, impl); 77*3c5114b8SDamjan Jovanovic this.implPreparedBatchExecution = UnoRuntime.queryInterface(XPreparedBatchExecution.class, impl); 78*3c5114b8SDamjan Jovanovic this.implWarningsSupplier = UnoRuntime.queryInterface(XWarningsSupplier.class, impl); 79*3c5114b8SDamjan Jovanovic this.implMultipleResults = UnoRuntime.queryInterface(XMultipleResults.class, impl); 80*3c5114b8SDamjan Jovanovic this.connection = connection; 81*3c5114b8SDamjan Jovanovic } 82*3c5114b8SDamjan Jovanovic 83*3c5114b8SDamjan Jovanovic // XComponentBase: 84*3c5114b8SDamjan Jovanovic 85*3c5114b8SDamjan Jovanovic @Override postDisposing()86*3c5114b8SDamjan Jovanovic protected void postDisposing() { 87*3c5114b8SDamjan Jovanovic try { 88*3c5114b8SDamjan Jovanovic implCloseable.close(); 89*3c5114b8SDamjan Jovanovic } catch (SQLException sqlException) { 90*3c5114b8SDamjan Jovanovic } 91*3c5114b8SDamjan Jovanovic } 92*3c5114b8SDamjan Jovanovic 93*3c5114b8SDamjan Jovanovic // XPreparedStatement: 94*3c5114b8SDamjan Jovanovic execute()95*3c5114b8SDamjan Jovanovic public boolean execute() throws SQLException { 96*3c5114b8SDamjan Jovanovic return impl.execute(); 97*3c5114b8SDamjan Jovanovic } 98*3c5114b8SDamjan Jovanovic executeQuery()99*3c5114b8SDamjan Jovanovic public XResultSet executeQuery() throws SQLException { 100*3c5114b8SDamjan Jovanovic return new PostgresqlResultSet(impl.executeQuery(), this); 101*3c5114b8SDamjan Jovanovic } 102*3c5114b8SDamjan Jovanovic executeUpdate()103*3c5114b8SDamjan Jovanovic public int executeUpdate() throws SQLException { 104*3c5114b8SDamjan Jovanovic return impl.executeUpdate(); 105*3c5114b8SDamjan Jovanovic } 106*3c5114b8SDamjan Jovanovic getConnection()107*3c5114b8SDamjan Jovanovic public XConnection getConnection() throws SQLException { 108*3c5114b8SDamjan Jovanovic return connection; 109*3c5114b8SDamjan Jovanovic } 110*3c5114b8SDamjan Jovanovic 111*3c5114b8SDamjan Jovanovic // XCloseable: 112*3c5114b8SDamjan Jovanovic close()113*3c5114b8SDamjan Jovanovic public void close() throws SQLException { 114*3c5114b8SDamjan Jovanovic dispose(); 115*3c5114b8SDamjan Jovanovic } 116*3c5114b8SDamjan Jovanovic 117*3c5114b8SDamjan Jovanovic // XPropertySet: 118*3c5114b8SDamjan Jovanovic addPropertyChangeListener(String arg0, XPropertyChangeListener arg1)119*3c5114b8SDamjan Jovanovic public void addPropertyChangeListener(String arg0, XPropertyChangeListener arg1) throws UnknownPropertyException, WrappedTargetException { 120*3c5114b8SDamjan Jovanovic implPropertySet.addPropertyChangeListener(arg0, arg1); 121*3c5114b8SDamjan Jovanovic } 122*3c5114b8SDamjan Jovanovic addVetoableChangeListener(String arg0, XVetoableChangeListener arg1)123*3c5114b8SDamjan Jovanovic public void addVetoableChangeListener(String arg0, XVetoableChangeListener arg1) throws UnknownPropertyException, WrappedTargetException { 124*3c5114b8SDamjan Jovanovic implPropertySet.addVetoableChangeListener(arg0, arg1); 125*3c5114b8SDamjan Jovanovic } 126*3c5114b8SDamjan Jovanovic getPropertySetInfo()127*3c5114b8SDamjan Jovanovic public XPropertySetInfo getPropertySetInfo() { 128*3c5114b8SDamjan Jovanovic return implPropertySet.getPropertySetInfo(); 129*3c5114b8SDamjan Jovanovic } 130*3c5114b8SDamjan Jovanovic getPropertyValue(String arg0)131*3c5114b8SDamjan Jovanovic public Object getPropertyValue(String arg0) throws UnknownPropertyException, WrappedTargetException { 132*3c5114b8SDamjan Jovanovic return implPropertySet.getPropertyValue(arg0); 133*3c5114b8SDamjan Jovanovic } 134*3c5114b8SDamjan Jovanovic removePropertyChangeListener(String arg0, XPropertyChangeListener arg1)135*3c5114b8SDamjan Jovanovic public void removePropertyChangeListener(String arg0, XPropertyChangeListener arg1) throws UnknownPropertyException, WrappedTargetException { 136*3c5114b8SDamjan Jovanovic implPropertySet.removePropertyChangeListener(arg0, arg1); 137*3c5114b8SDamjan Jovanovic } 138*3c5114b8SDamjan Jovanovic removeVetoableChangeListener(String arg0, XVetoableChangeListener arg1)139*3c5114b8SDamjan Jovanovic public void removeVetoableChangeListener(String arg0, XVetoableChangeListener arg1) throws UnknownPropertyException, WrappedTargetException { 140*3c5114b8SDamjan Jovanovic implPropertySet.removeVetoableChangeListener(arg0, arg1); 141*3c5114b8SDamjan Jovanovic } 142*3c5114b8SDamjan Jovanovic setPropertyValue(String arg0, Object arg1)143*3c5114b8SDamjan Jovanovic public void setPropertyValue(String arg0, Object arg1) 144*3c5114b8SDamjan Jovanovic throws UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException { 145*3c5114b8SDamjan Jovanovic implPropertySet.setPropertyValue(arg0, arg1); 146*3c5114b8SDamjan Jovanovic } 147*3c5114b8SDamjan Jovanovic 148*3c5114b8SDamjan Jovanovic // XCancellable: 149*3c5114b8SDamjan Jovanovic cancel()150*3c5114b8SDamjan Jovanovic public void cancel() { 151*3c5114b8SDamjan Jovanovic implCancellable.cancel(); 152*3c5114b8SDamjan Jovanovic } 153*3c5114b8SDamjan Jovanovic 154*3c5114b8SDamjan Jovanovic // XResultSetMetaDataSupplier: 155*3c5114b8SDamjan Jovanovic getMetaData()156*3c5114b8SDamjan Jovanovic public XResultSetMetaData getMetaData() throws SQLException { 157*3c5114b8SDamjan Jovanovic return new PostgresqlResultSetMetaData(implResultSetMetaDataSupplier.getMetaData()); 158*3c5114b8SDamjan Jovanovic } 159*3c5114b8SDamjan Jovanovic 160*3c5114b8SDamjan Jovanovic // XParameters: 161*3c5114b8SDamjan Jovanovic clearParameters()162*3c5114b8SDamjan Jovanovic public void clearParameters() throws SQLException { 163*3c5114b8SDamjan Jovanovic implParameters.clearParameters(); 164*3c5114b8SDamjan Jovanovic } 165*3c5114b8SDamjan Jovanovic setArray(int arg0, XArray arg1)166*3c5114b8SDamjan Jovanovic public void setArray(int arg0, XArray arg1) throws SQLException { 167*3c5114b8SDamjan Jovanovic implParameters.setArray(arg0, arg1); 168*3c5114b8SDamjan Jovanovic } 169*3c5114b8SDamjan Jovanovic setBinaryStream(int arg0, XInputStream arg1, int arg2)170*3c5114b8SDamjan Jovanovic public void setBinaryStream(int arg0, XInputStream arg1, int arg2) throws SQLException { 171*3c5114b8SDamjan Jovanovic implParameters.setBinaryStream(arg0, arg1, arg2); 172*3c5114b8SDamjan Jovanovic } 173*3c5114b8SDamjan Jovanovic setBlob(int arg0, XBlob arg1)174*3c5114b8SDamjan Jovanovic public void setBlob(int arg0, XBlob arg1) throws SQLException { 175*3c5114b8SDamjan Jovanovic implParameters.setBlob(arg0, arg1); 176*3c5114b8SDamjan Jovanovic } 177*3c5114b8SDamjan Jovanovic setBoolean(int arg0, boolean arg1)178*3c5114b8SDamjan Jovanovic public void setBoolean(int arg0, boolean arg1) throws SQLException { 179*3c5114b8SDamjan Jovanovic implParameters.setBoolean(arg0, arg1); 180*3c5114b8SDamjan Jovanovic } 181*3c5114b8SDamjan Jovanovic setByte(int arg0, byte arg1)182*3c5114b8SDamjan Jovanovic public void setByte(int arg0, byte arg1) throws SQLException { 183*3c5114b8SDamjan Jovanovic implParameters.setByte(arg0, arg1); 184*3c5114b8SDamjan Jovanovic } 185*3c5114b8SDamjan Jovanovic setBytes(int arg0, byte[] arg1)186*3c5114b8SDamjan Jovanovic public void setBytes(int arg0, byte[] arg1) throws SQLException { 187*3c5114b8SDamjan Jovanovic implParameters.setBytes(arg0, arg1); 188*3c5114b8SDamjan Jovanovic } 189*3c5114b8SDamjan Jovanovic setCharacterStream(int arg0, XInputStream arg1, int arg2)190*3c5114b8SDamjan Jovanovic public void setCharacterStream(int arg0, XInputStream arg1, int arg2) throws SQLException { 191*3c5114b8SDamjan Jovanovic implParameters.setCharacterStream(arg0, arg1, arg2); 192*3c5114b8SDamjan Jovanovic } 193*3c5114b8SDamjan Jovanovic setClob(int arg0, XClob arg1)194*3c5114b8SDamjan Jovanovic public void setClob(int arg0, XClob arg1) throws SQLException { 195*3c5114b8SDamjan Jovanovic implParameters.setClob(arg0, arg1); 196*3c5114b8SDamjan Jovanovic } 197*3c5114b8SDamjan Jovanovic setDate(int arg0, Date arg1)198*3c5114b8SDamjan Jovanovic public void setDate(int arg0, Date arg1) throws SQLException { 199*3c5114b8SDamjan Jovanovic implParameters.setDate(arg0, arg1); 200*3c5114b8SDamjan Jovanovic } 201*3c5114b8SDamjan Jovanovic setDouble(int arg0, double arg1)202*3c5114b8SDamjan Jovanovic public void setDouble(int arg0, double arg1) throws SQLException { 203*3c5114b8SDamjan Jovanovic implParameters.setDouble(arg0, arg1); 204*3c5114b8SDamjan Jovanovic } 205*3c5114b8SDamjan Jovanovic setFloat(int arg0, float arg1)206*3c5114b8SDamjan Jovanovic public void setFloat(int arg0, float arg1) throws SQLException { 207*3c5114b8SDamjan Jovanovic implParameters.setFloat(arg0, arg1); 208*3c5114b8SDamjan Jovanovic } 209*3c5114b8SDamjan Jovanovic setInt(int arg0, int arg1)210*3c5114b8SDamjan Jovanovic public void setInt(int arg0, int arg1) throws SQLException { 211*3c5114b8SDamjan Jovanovic implParameters.setInt(arg0, arg1); 212*3c5114b8SDamjan Jovanovic } 213*3c5114b8SDamjan Jovanovic setLong(int arg0, long arg1)214*3c5114b8SDamjan Jovanovic public void setLong(int arg0, long arg1) throws SQLException { 215*3c5114b8SDamjan Jovanovic implParameters.setLong(arg0, arg1); 216*3c5114b8SDamjan Jovanovic } 217*3c5114b8SDamjan Jovanovic setNull(int arg0, int arg1)218*3c5114b8SDamjan Jovanovic public void setNull(int arg0, int arg1) throws SQLException { 219*3c5114b8SDamjan Jovanovic implParameters.setNull(arg0, arg1); 220*3c5114b8SDamjan Jovanovic } 221*3c5114b8SDamjan Jovanovic setObject(int arg0, Object arg1)222*3c5114b8SDamjan Jovanovic public void setObject(int arg0, Object arg1) throws SQLException { 223*3c5114b8SDamjan Jovanovic implParameters.setObject(arg0, arg1); 224*3c5114b8SDamjan Jovanovic } 225*3c5114b8SDamjan Jovanovic setObjectNull(int arg0, int arg1, String arg2)226*3c5114b8SDamjan Jovanovic public void setObjectNull(int arg0, int arg1, String arg2) throws SQLException { 227*3c5114b8SDamjan Jovanovic implParameters.setObjectNull(arg0, arg1, arg2); 228*3c5114b8SDamjan Jovanovic } 229*3c5114b8SDamjan Jovanovic setObjectWithInfo(int arg0, Object arg1, int arg2, int arg3)230*3c5114b8SDamjan Jovanovic public void setObjectWithInfo(int arg0, Object arg1, int arg2, int arg3) throws SQLException { 231*3c5114b8SDamjan Jovanovic implParameters.setObjectWithInfo(arg0, arg1, arg2, arg3); 232*3c5114b8SDamjan Jovanovic } 233*3c5114b8SDamjan Jovanovic setRef(int arg0, XRef arg1)234*3c5114b8SDamjan Jovanovic public void setRef(int arg0, XRef arg1) throws SQLException { 235*3c5114b8SDamjan Jovanovic implParameters.setRef(arg0, arg1); 236*3c5114b8SDamjan Jovanovic } 237*3c5114b8SDamjan Jovanovic setShort(int arg0, short arg1)238*3c5114b8SDamjan Jovanovic public void setShort(int arg0, short arg1) throws SQLException { 239*3c5114b8SDamjan Jovanovic implParameters.setShort(arg0, arg1); 240*3c5114b8SDamjan Jovanovic } 241*3c5114b8SDamjan Jovanovic setString(int arg0, String arg1)242*3c5114b8SDamjan Jovanovic public void setString(int arg0, String arg1) throws SQLException { 243*3c5114b8SDamjan Jovanovic implParameters.setString(arg0, arg1); 244*3c5114b8SDamjan Jovanovic } 245*3c5114b8SDamjan Jovanovic setTime(int arg0, Time arg1)246*3c5114b8SDamjan Jovanovic public void setTime(int arg0, Time arg1) throws SQLException { 247*3c5114b8SDamjan Jovanovic implParameters.setTime(arg0, arg1); 248*3c5114b8SDamjan Jovanovic } 249*3c5114b8SDamjan Jovanovic setTimestamp(int arg0, DateTime arg1)250*3c5114b8SDamjan Jovanovic public void setTimestamp(int arg0, DateTime arg1) throws SQLException { 251*3c5114b8SDamjan Jovanovic implParameters.setTimestamp(arg0, arg1); 252*3c5114b8SDamjan Jovanovic } 253*3c5114b8SDamjan Jovanovic 254*3c5114b8SDamjan Jovanovic // XPreparedBatchExecution: 255*3c5114b8SDamjan Jovanovic addBatch()256*3c5114b8SDamjan Jovanovic public void addBatch() throws SQLException { 257*3c5114b8SDamjan Jovanovic implPreparedBatchExecution.addBatch(); 258*3c5114b8SDamjan Jovanovic } 259*3c5114b8SDamjan Jovanovic clearBatch()260*3c5114b8SDamjan Jovanovic public void clearBatch() throws SQLException { 261*3c5114b8SDamjan Jovanovic implPreparedBatchExecution.clearBatch(); 262*3c5114b8SDamjan Jovanovic } 263*3c5114b8SDamjan Jovanovic executeBatch()264*3c5114b8SDamjan Jovanovic public int[] executeBatch() throws SQLException { 265*3c5114b8SDamjan Jovanovic return implPreparedBatchExecution.executeBatch(); 266*3c5114b8SDamjan Jovanovic } 267*3c5114b8SDamjan Jovanovic 268*3c5114b8SDamjan Jovanovic // XWarningsSupplier: 269*3c5114b8SDamjan Jovanovic clearWarnings()270*3c5114b8SDamjan Jovanovic public void clearWarnings() throws SQLException { 271*3c5114b8SDamjan Jovanovic implWarningsSupplier.clearWarnings(); 272*3c5114b8SDamjan Jovanovic } 273*3c5114b8SDamjan Jovanovic getWarnings()274*3c5114b8SDamjan Jovanovic public Object getWarnings() throws SQLException { 275*3c5114b8SDamjan Jovanovic return implWarningsSupplier.getWarnings(); 276*3c5114b8SDamjan Jovanovic } 277*3c5114b8SDamjan Jovanovic 278*3c5114b8SDamjan Jovanovic // XMultipleResults: 279*3c5114b8SDamjan Jovanovic getMoreResults()280*3c5114b8SDamjan Jovanovic public boolean getMoreResults() throws SQLException { 281*3c5114b8SDamjan Jovanovic return implMultipleResults.getMoreResults(); 282*3c5114b8SDamjan Jovanovic } 283*3c5114b8SDamjan Jovanovic getResultSet()284*3c5114b8SDamjan Jovanovic public XResultSet getResultSet() throws SQLException { 285*3c5114b8SDamjan Jovanovic return new PostgresqlResultSet(implMultipleResults.getResultSet(), this); 286*3c5114b8SDamjan Jovanovic } 287*3c5114b8SDamjan Jovanovic getUpdateCount()288*3c5114b8SDamjan Jovanovic public int getUpdateCount() throws SQLException { 289*3c5114b8SDamjan Jovanovic return implMultipleResults.getUpdateCount(); 290*3c5114b8SDamjan Jovanovic } 291*3c5114b8SDamjan Jovanovic } 292