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.lang.IllegalArgumentException; 31*3c5114b8SDamjan Jovanovic import com.sun.star.lang.WrappedTargetException; 32*3c5114b8SDamjan Jovanovic import com.sun.star.lib.uno.helper.ComponentBase; 33*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.SQLException; 34*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XCloseable; 35*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XConnection; 36*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XMultipleResults; 37*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XResultSet; 38*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XStatement; 39*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XWarningsSupplier; 40*3c5114b8SDamjan Jovanovic import com.sun.star.uno.UnoRuntime; 41*3c5114b8SDamjan Jovanovic import com.sun.star.util.XCancellable; 42*3c5114b8SDamjan Jovanovic 43*3c5114b8SDamjan Jovanovic public class PostgresqlStatement extends ComponentBase 44*3c5114b8SDamjan Jovanovic implements XCloseable, XPropertySet, XCancellable, XStatement, XWarningsSupplier, XMultipleResults { 45*3c5114b8SDamjan Jovanovic 46*3c5114b8SDamjan Jovanovic private XStatement impl; 47*3c5114b8SDamjan Jovanovic private XCloseable implCloseable; 48*3c5114b8SDamjan Jovanovic private XPropertySet implPropertySet; 49*3c5114b8SDamjan Jovanovic private XCancellable implCancellable; 50*3c5114b8SDamjan Jovanovic private XWarningsSupplier implWarningsSupplier; 51*3c5114b8SDamjan Jovanovic private XMultipleResults implMultipleResults; 52*3c5114b8SDamjan Jovanovic private XConnection connection; 53*3c5114b8SDamjan Jovanovic PostgresqlStatement(XStatement impl, XConnection connection)54*3c5114b8SDamjan Jovanovic public PostgresqlStatement(XStatement impl, XConnection connection) { 55*3c5114b8SDamjan Jovanovic this.impl = impl; 56*3c5114b8SDamjan Jovanovic this.implCloseable = UnoRuntime.queryInterface(XCloseable.class, impl); 57*3c5114b8SDamjan Jovanovic this.implPropertySet = UnoRuntime.queryInterface(XPropertySet.class, impl); 58*3c5114b8SDamjan Jovanovic this.implCancellable = UnoRuntime.queryInterface(XCancellable.class, impl); 59*3c5114b8SDamjan Jovanovic this.implWarningsSupplier = UnoRuntime.queryInterface(XWarningsSupplier.class, impl); 60*3c5114b8SDamjan Jovanovic this.implMultipleResults = UnoRuntime.queryInterface(XMultipleResults.class, impl); 61*3c5114b8SDamjan Jovanovic this.connection = connection; 62*3c5114b8SDamjan Jovanovic } 63*3c5114b8SDamjan Jovanovic 64*3c5114b8SDamjan Jovanovic // XComponentBase: 65*3c5114b8SDamjan Jovanovic 66*3c5114b8SDamjan Jovanovic @Override postDisposing()67*3c5114b8SDamjan Jovanovic protected void postDisposing() { 68*3c5114b8SDamjan Jovanovic try { 69*3c5114b8SDamjan Jovanovic implCloseable.close(); 70*3c5114b8SDamjan Jovanovic } catch (SQLException sqlException) { 71*3c5114b8SDamjan Jovanovic } 72*3c5114b8SDamjan Jovanovic } 73*3c5114b8SDamjan Jovanovic 74*3c5114b8SDamjan Jovanovic // XStatement: 75*3c5114b8SDamjan Jovanovic execute(String arg0)76*3c5114b8SDamjan Jovanovic public boolean execute(String arg0) throws SQLException { 77*3c5114b8SDamjan Jovanovic System.out.println(arg0); 78*3c5114b8SDamjan Jovanovic return impl.execute(arg0); 79*3c5114b8SDamjan Jovanovic } 80*3c5114b8SDamjan Jovanovic executeQuery(String arg0)81*3c5114b8SDamjan Jovanovic public XResultSet executeQuery(String arg0) throws SQLException { 82*3c5114b8SDamjan Jovanovic XResultSet results = impl.executeQuery(arg0); 83*3c5114b8SDamjan Jovanovic return new PostgresqlResultSet(results, this); 84*3c5114b8SDamjan Jovanovic } 85*3c5114b8SDamjan Jovanovic executeUpdate(String arg0)86*3c5114b8SDamjan Jovanovic public int executeUpdate(String arg0) throws SQLException { 87*3c5114b8SDamjan Jovanovic return impl.executeUpdate(arg0); 88*3c5114b8SDamjan Jovanovic } 89*3c5114b8SDamjan Jovanovic getConnection()90*3c5114b8SDamjan Jovanovic public XConnection getConnection() throws SQLException { 91*3c5114b8SDamjan Jovanovic return connection; 92*3c5114b8SDamjan Jovanovic } 93*3c5114b8SDamjan Jovanovic 94*3c5114b8SDamjan Jovanovic // XCloseable: 95*3c5114b8SDamjan Jovanovic close()96*3c5114b8SDamjan Jovanovic public void close() throws SQLException { 97*3c5114b8SDamjan Jovanovic dispose(); 98*3c5114b8SDamjan Jovanovic } 99*3c5114b8SDamjan Jovanovic 100*3c5114b8SDamjan Jovanovic // XPropertySet: 101*3c5114b8SDamjan Jovanovic addPropertyChangeListener(String arg0, XPropertyChangeListener arg1)102*3c5114b8SDamjan Jovanovic public void addPropertyChangeListener(String arg0, XPropertyChangeListener arg1) throws UnknownPropertyException, WrappedTargetException { 103*3c5114b8SDamjan Jovanovic implPropertySet.addPropertyChangeListener(arg0, arg1); 104*3c5114b8SDamjan Jovanovic } 105*3c5114b8SDamjan Jovanovic addVetoableChangeListener(String arg0, XVetoableChangeListener arg1)106*3c5114b8SDamjan Jovanovic public void addVetoableChangeListener(String arg0, XVetoableChangeListener arg1) throws UnknownPropertyException, WrappedTargetException { 107*3c5114b8SDamjan Jovanovic implPropertySet.addVetoableChangeListener(arg0, arg1); 108*3c5114b8SDamjan Jovanovic } 109*3c5114b8SDamjan Jovanovic getPropertySetInfo()110*3c5114b8SDamjan Jovanovic public XPropertySetInfo getPropertySetInfo() { 111*3c5114b8SDamjan Jovanovic return implPropertySet.getPropertySetInfo(); 112*3c5114b8SDamjan Jovanovic } 113*3c5114b8SDamjan Jovanovic getPropertyValue(String arg0)114*3c5114b8SDamjan Jovanovic public Object getPropertyValue(String arg0) throws UnknownPropertyException, WrappedTargetException { 115*3c5114b8SDamjan Jovanovic return implPropertySet.getPropertyValue(arg0); 116*3c5114b8SDamjan Jovanovic } 117*3c5114b8SDamjan Jovanovic removePropertyChangeListener(String arg0, XPropertyChangeListener arg1)118*3c5114b8SDamjan Jovanovic public void removePropertyChangeListener(String arg0, XPropertyChangeListener arg1) throws UnknownPropertyException, WrappedTargetException { 119*3c5114b8SDamjan Jovanovic implPropertySet.removePropertyChangeListener(arg0, arg1); 120*3c5114b8SDamjan Jovanovic } 121*3c5114b8SDamjan Jovanovic removeVetoableChangeListener(String arg0, XVetoableChangeListener arg1)122*3c5114b8SDamjan Jovanovic public void removeVetoableChangeListener(String arg0, XVetoableChangeListener arg1) throws UnknownPropertyException, WrappedTargetException { 123*3c5114b8SDamjan Jovanovic implPropertySet.removeVetoableChangeListener(arg0, arg1); 124*3c5114b8SDamjan Jovanovic } 125*3c5114b8SDamjan Jovanovic setPropertyValue(String arg0, Object arg1)126*3c5114b8SDamjan Jovanovic public void setPropertyValue(String arg0, Object arg1) 127*3c5114b8SDamjan Jovanovic throws UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException { 128*3c5114b8SDamjan Jovanovic implPropertySet.setPropertyValue(arg0, arg1); 129*3c5114b8SDamjan Jovanovic } 130*3c5114b8SDamjan Jovanovic 131*3c5114b8SDamjan Jovanovic // XCancellable: 132*3c5114b8SDamjan Jovanovic cancel()133*3c5114b8SDamjan Jovanovic public void cancel() { 134*3c5114b8SDamjan Jovanovic implCancellable.cancel(); 135*3c5114b8SDamjan Jovanovic } 136*3c5114b8SDamjan Jovanovic 137*3c5114b8SDamjan Jovanovic // XWarningsSupplier: 138*3c5114b8SDamjan Jovanovic clearWarnings()139*3c5114b8SDamjan Jovanovic public void clearWarnings() throws SQLException { 140*3c5114b8SDamjan Jovanovic implWarningsSupplier.clearWarnings(); 141*3c5114b8SDamjan Jovanovic } 142*3c5114b8SDamjan Jovanovic getWarnings()143*3c5114b8SDamjan Jovanovic public Object getWarnings() throws SQLException { 144*3c5114b8SDamjan Jovanovic return implWarningsSupplier.getWarnings(); 145*3c5114b8SDamjan Jovanovic } 146*3c5114b8SDamjan Jovanovic 147*3c5114b8SDamjan Jovanovic // XMultipleResults: 148*3c5114b8SDamjan Jovanovic getMoreResults()149*3c5114b8SDamjan Jovanovic public boolean getMoreResults() throws SQLException { 150*3c5114b8SDamjan Jovanovic return implMultipleResults.getMoreResults(); 151*3c5114b8SDamjan Jovanovic } 152*3c5114b8SDamjan Jovanovic getResultSet()153*3c5114b8SDamjan Jovanovic public XResultSet getResultSet() throws SQLException { 154*3c5114b8SDamjan Jovanovic return new PostgresqlResultSet(implMultipleResults.getResultSet(), this); 155*3c5114b8SDamjan Jovanovic } 156*3c5114b8SDamjan Jovanovic getUpdateCount()157*3c5114b8SDamjan Jovanovic public int getUpdateCount() throws SQLException { 158*3c5114b8SDamjan Jovanovic return implMultipleResults.getUpdateCount(); 159*3c5114b8SDamjan Jovanovic } 160*3c5114b8SDamjan Jovanovic } 161