1c3ab0d6aSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3c3ab0d6aSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4c3ab0d6aSAndrew Rist * or more contributor license agreements. See the NOTICE file 5c3ab0d6aSAndrew Rist * distributed with this work for additional information 6c3ab0d6aSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7c3ab0d6aSAndrew Rist * to you under the Apache License, Version 2.0 (the 8c3ab0d6aSAndrew Rist * "License"); you may not use this file except in compliance 9c3ab0d6aSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11c3ab0d6aSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13c3ab0d6aSAndrew Rist * Unless required by applicable law or agreed to in writing, 14c3ab0d6aSAndrew Rist * software distributed under the License is distributed on an 15c3ab0d6aSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16c3ab0d6aSAndrew Rist * KIND, either express or implied. See the License for the 17c3ab0d6aSAndrew Rist * specific language governing permissions and limitations 18c3ab0d6aSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20c3ab0d6aSAndrew Rist *************************************************************/ 21c3ab0d6aSAndrew Rist 22c3ab0d6aSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir package connectivity.tools; 25cdf0e10cSrcweir 26cdf0e10cSrcweir import com.sun.star.beans.XPropertySet; 27cdf0e10cSrcweir import com.sun.star.container.XIndexAccess; 28cdf0e10cSrcweir import com.sun.star.container.XNameAccess; 29cdf0e10cSrcweir import com.sun.star.io.XInputStream; 30cdf0e10cSrcweir import com.sun.star.lang.XComponent; 31cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory; 32cdf0e10cSrcweir import com.sun.star.sdbc.SQLException; 33cdf0e10cSrcweir import com.sun.star.sdbc.XArray; 34cdf0e10cSrcweir import com.sun.star.sdbc.XBlob; 35cdf0e10cSrcweir import com.sun.star.sdbc.XClob; 36cdf0e10cSrcweir import com.sun.star.sdbc.XRef; 37cdf0e10cSrcweir import com.sun.star.sdbc.XRow; 38cdf0e10cSrcweir import com.sun.star.sdbc.XRowSet; 39cdf0e10cSrcweir import com.sun.star.sdbc.XRowSetListener; 40cdf0e10cSrcweir import com.sun.star.sdbcx.XColumnsSupplier; 41cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime; 42cdf0e10cSrcweir import com.sun.star.util.Date; 43cdf0e10cSrcweir import com.sun.star.util.DateTime; 44cdf0e10cSrcweir import com.sun.star.util.Time; 45cdf0e10cSrcweir 46cdf0e10cSrcweir public class RowSet implements XRowSet, XRow 47cdf0e10cSrcweir { 48cdf0e10cSrcweir private XRowSet m_rowSet; 49cdf0e10cSrcweir private XRow m_row; 50cdf0e10cSrcweir private XPropertySet m_rowSetProps; 51cdf0e10cSrcweir RowSet( XMultiServiceFactory _orb, String _dataSource, int _commandType, String _command )52cdf0e10cSrcweir public RowSet( XMultiServiceFactory _orb, String _dataSource, int _commandType, String _command ) 53cdf0e10cSrcweir { 54cdf0e10cSrcweir try 55cdf0e10cSrcweir { 56cdf0e10cSrcweir m_rowSetProps = UnoRuntime.queryInterface( XPropertySet.class, _orb.createInstance( "com.sun.star.sdb.RowSet" ) ); 57cdf0e10cSrcweir m_rowSetProps.setPropertyValue( "DataSourceName", _dataSource ); 58cdf0e10cSrcweir m_rowSetProps.setPropertyValue( "CommandType", new Integer( _commandType ) ); 59cdf0e10cSrcweir m_rowSetProps.setPropertyValue( "Command", _command ); 60cdf0e10cSrcweir 61cdf0e10cSrcweir m_rowSet = UnoRuntime.queryInterface( XRowSet.class, m_rowSetProps ); 62cdf0e10cSrcweir m_row = UnoRuntime.queryInterface( XRow.class, m_rowSetProps ); 63cdf0e10cSrcweir } 64cdf0e10cSrcweir catch ( Exception e ) 65cdf0e10cSrcweir { 66cdf0e10cSrcweir e.printStackTrace(System.err); 67cdf0e10cSrcweir throw new java.lang.InstantiationError(); 68cdf0e10cSrcweir } 69cdf0e10cSrcweir } 70cdf0e10cSrcweir 71cdf0e10cSrcweir // misc getColumnCount()72cdf0e10cSrcweir public int getColumnCount() 73cdf0e10cSrcweir { 74cdf0e10cSrcweir XColumnsSupplier suppCols = (XColumnsSupplier)UnoRuntime.queryInterface( 75cdf0e10cSrcweir XColumnsSupplier.class, m_rowSet ); 76cdf0e10cSrcweir XIndexAccess columns = (XIndexAccess)UnoRuntime.queryInterface( 77cdf0e10cSrcweir XIndexAccess.class, suppCols.getColumns() ); 78cdf0e10cSrcweir return columns.getCount(); 79cdf0e10cSrcweir } 80cdf0e10cSrcweir 81cdf0e10cSrcweir // XRowSet execute()82cdf0e10cSrcweir public void execute() throws SQLException 83cdf0e10cSrcweir { 84cdf0e10cSrcweir m_rowSet.execute(); 85cdf0e10cSrcweir } 86cdf0e10cSrcweir addRowSetListener( XRowSetListener _listener )87cdf0e10cSrcweir public void addRowSetListener( XRowSetListener _listener ) 88cdf0e10cSrcweir { 89cdf0e10cSrcweir m_rowSet.addRowSetListener( _listener ); 90cdf0e10cSrcweir } 91cdf0e10cSrcweir removeRowSetListener( XRowSetListener _listener )92cdf0e10cSrcweir public void removeRowSetListener( XRowSetListener _listener ) 93cdf0e10cSrcweir { 94cdf0e10cSrcweir m_rowSet.removeRowSetListener( _listener ); 95cdf0e10cSrcweir } 96cdf0e10cSrcweir next()97cdf0e10cSrcweir public boolean next() throws SQLException 98cdf0e10cSrcweir { 99cdf0e10cSrcweir return m_rowSet.next(); 100cdf0e10cSrcweir } 101cdf0e10cSrcweir isBeforeFirst()102cdf0e10cSrcweir public boolean isBeforeFirst() throws SQLException 103cdf0e10cSrcweir { 104cdf0e10cSrcweir return m_rowSet.isBeforeFirst(); 105cdf0e10cSrcweir } 106cdf0e10cSrcweir isAfterLast()107cdf0e10cSrcweir public boolean isAfterLast() throws SQLException 108cdf0e10cSrcweir { 109cdf0e10cSrcweir return m_rowSet.isAfterLast(); 110cdf0e10cSrcweir } 111cdf0e10cSrcweir isFirst()112cdf0e10cSrcweir public boolean isFirst() throws SQLException 113cdf0e10cSrcweir { 114cdf0e10cSrcweir return m_rowSet.isFirst(); 115cdf0e10cSrcweir } 116cdf0e10cSrcweir isLast()117cdf0e10cSrcweir public boolean isLast() throws SQLException 118cdf0e10cSrcweir { 119cdf0e10cSrcweir return m_rowSet.isLast(); 120cdf0e10cSrcweir } 121cdf0e10cSrcweir beforeFirst()122cdf0e10cSrcweir public void beforeFirst() throws SQLException 123cdf0e10cSrcweir { 124cdf0e10cSrcweir m_rowSet.beforeFirst(); 125cdf0e10cSrcweir } 126cdf0e10cSrcweir afterLast()127cdf0e10cSrcweir public void afterLast() throws SQLException 128cdf0e10cSrcweir { 129cdf0e10cSrcweir m_rowSet.afterLast(); 130cdf0e10cSrcweir } 131cdf0e10cSrcweir first()132cdf0e10cSrcweir public boolean first() throws SQLException 133cdf0e10cSrcweir { 134cdf0e10cSrcweir return m_rowSet.first(); 135cdf0e10cSrcweir } 136cdf0e10cSrcweir last()137cdf0e10cSrcweir public boolean last() throws SQLException 138cdf0e10cSrcweir { 139cdf0e10cSrcweir return m_rowSet.last(); 140cdf0e10cSrcweir } 141cdf0e10cSrcweir getRow()142cdf0e10cSrcweir public int getRow() throws SQLException 143cdf0e10cSrcweir { 144cdf0e10cSrcweir return m_rowSet.getRow(); 145cdf0e10cSrcweir } 146cdf0e10cSrcweir absolute(int i)147cdf0e10cSrcweir public boolean absolute(int i) throws SQLException 148cdf0e10cSrcweir { 149cdf0e10cSrcweir return m_rowSet.absolute(i); 150cdf0e10cSrcweir } 151cdf0e10cSrcweir relative(int i)152cdf0e10cSrcweir public boolean relative(int i) throws SQLException 153cdf0e10cSrcweir { 154cdf0e10cSrcweir return m_rowSet.relative(i); 155cdf0e10cSrcweir } 156cdf0e10cSrcweir previous()157cdf0e10cSrcweir public boolean previous() throws SQLException 158cdf0e10cSrcweir { 159cdf0e10cSrcweir return m_rowSet.previous(); 160cdf0e10cSrcweir } 161cdf0e10cSrcweir refreshRow()162cdf0e10cSrcweir public void refreshRow() throws SQLException 163cdf0e10cSrcweir { 164cdf0e10cSrcweir m_rowSet.refreshRow(); 165cdf0e10cSrcweir } 166cdf0e10cSrcweir rowUpdated()167cdf0e10cSrcweir public boolean rowUpdated() throws SQLException 168cdf0e10cSrcweir { 169cdf0e10cSrcweir return m_rowSet.rowUpdated(); 170cdf0e10cSrcweir } 171cdf0e10cSrcweir rowInserted()172cdf0e10cSrcweir public boolean rowInserted() throws SQLException 173cdf0e10cSrcweir { 174cdf0e10cSrcweir return m_rowSet.rowInserted(); 175cdf0e10cSrcweir } 176cdf0e10cSrcweir rowDeleted()177cdf0e10cSrcweir public boolean rowDeleted() throws SQLException 178cdf0e10cSrcweir { 179cdf0e10cSrcweir return m_rowSet.rowDeleted(); 180cdf0e10cSrcweir } 181cdf0e10cSrcweir 182cdf0e10cSrcweir // XRow getStatement()183cdf0e10cSrcweir public Object getStatement() throws SQLException 184cdf0e10cSrcweir { 185cdf0e10cSrcweir return m_rowSet.getStatement(); 186cdf0e10cSrcweir } 187cdf0e10cSrcweir wasNull()188cdf0e10cSrcweir public boolean wasNull() throws SQLException 189cdf0e10cSrcweir { 190cdf0e10cSrcweir return m_row.wasNull(); 191cdf0e10cSrcweir } 192cdf0e10cSrcweir getString(int i)193cdf0e10cSrcweir public String getString(int i) throws SQLException 194cdf0e10cSrcweir { 195cdf0e10cSrcweir return m_row.getString(i); 196cdf0e10cSrcweir } 197cdf0e10cSrcweir getBoolean(int i)198cdf0e10cSrcweir public boolean getBoolean(int i) throws SQLException 199cdf0e10cSrcweir { 200cdf0e10cSrcweir return m_row.getBoolean(i); 201cdf0e10cSrcweir } 202cdf0e10cSrcweir getByte(int i)203cdf0e10cSrcweir public byte getByte(int i) throws SQLException 204cdf0e10cSrcweir { 205cdf0e10cSrcweir return m_row.getByte(i); 206cdf0e10cSrcweir } 207cdf0e10cSrcweir getShort(int i)208cdf0e10cSrcweir public short getShort(int i) throws SQLException 209cdf0e10cSrcweir { 210cdf0e10cSrcweir return m_row.getShort(i); 211cdf0e10cSrcweir } 212cdf0e10cSrcweir getInt(int i)213cdf0e10cSrcweir public int getInt(int i) throws SQLException 214cdf0e10cSrcweir { 215cdf0e10cSrcweir return m_row.getInt(i); 216cdf0e10cSrcweir } 217cdf0e10cSrcweir getLong(int i)218cdf0e10cSrcweir public long getLong(int i) throws SQLException 219cdf0e10cSrcweir { 220cdf0e10cSrcweir return m_row.getLong(i); 221cdf0e10cSrcweir } 222cdf0e10cSrcweir getFloat(int i)223cdf0e10cSrcweir public float getFloat(int i) throws SQLException 224cdf0e10cSrcweir { 225cdf0e10cSrcweir return m_row.getFloat(i); 226cdf0e10cSrcweir } 227cdf0e10cSrcweir getDouble(int i)228cdf0e10cSrcweir public double getDouble(int i) throws SQLException 229cdf0e10cSrcweir { 230cdf0e10cSrcweir return m_row.getDouble(i); 231cdf0e10cSrcweir } 232cdf0e10cSrcweir getBytes(int i)233cdf0e10cSrcweir public byte[] getBytes(int i) throws SQLException 234cdf0e10cSrcweir { 235cdf0e10cSrcweir return m_row.getBytes(i); 236cdf0e10cSrcweir } 237cdf0e10cSrcweir getDate(int i)238cdf0e10cSrcweir public Date getDate(int i) throws SQLException 239cdf0e10cSrcweir { 240cdf0e10cSrcweir return m_row.getDate(i); 241cdf0e10cSrcweir } 242cdf0e10cSrcweir getTime(int i)243cdf0e10cSrcweir public Time getTime(int i) throws SQLException 244cdf0e10cSrcweir { 245cdf0e10cSrcweir return m_row.getTime(i); 246cdf0e10cSrcweir } 247cdf0e10cSrcweir getTimestamp(int i)248cdf0e10cSrcweir public DateTime getTimestamp(int i) throws SQLException 249cdf0e10cSrcweir { 250cdf0e10cSrcweir return m_row.getTimestamp(i); 251cdf0e10cSrcweir } 252cdf0e10cSrcweir getBinaryStream(int i)253cdf0e10cSrcweir public XInputStream getBinaryStream(int i) throws SQLException 254cdf0e10cSrcweir { 255cdf0e10cSrcweir return m_row.getBinaryStream(i); 256cdf0e10cSrcweir } 257cdf0e10cSrcweir getCharacterStream(int i)258cdf0e10cSrcweir public XInputStream getCharacterStream(int i) throws SQLException 259cdf0e10cSrcweir { 260cdf0e10cSrcweir return m_row.getCharacterStream(i); 261cdf0e10cSrcweir } 262cdf0e10cSrcweir getObject(int i, XNameAccess xNameAccess)263cdf0e10cSrcweir public Object getObject(int i, XNameAccess xNameAccess) throws SQLException 264cdf0e10cSrcweir { 265cdf0e10cSrcweir return m_row.getObject(i, xNameAccess); 266cdf0e10cSrcweir } 267cdf0e10cSrcweir getRef(int i)268cdf0e10cSrcweir public XRef getRef(int i) throws SQLException 269cdf0e10cSrcweir { 270cdf0e10cSrcweir return m_row.getRef(i); 271cdf0e10cSrcweir } 272cdf0e10cSrcweir getBlob(int i)273cdf0e10cSrcweir public XBlob getBlob(int i) throws SQLException 274cdf0e10cSrcweir { 275cdf0e10cSrcweir return m_row.getBlob(i); 276cdf0e10cSrcweir } 277cdf0e10cSrcweir getClob(int i)278cdf0e10cSrcweir public XClob getClob(int i) throws SQLException 279cdf0e10cSrcweir { 280cdf0e10cSrcweir return m_row.getClob(i); 281cdf0e10cSrcweir } 282cdf0e10cSrcweir getArray(int i)283cdf0e10cSrcweir public XArray getArray(int i) throws SQLException 284cdf0e10cSrcweir { 285cdf0e10cSrcweir return m_row.getArray(i); 286cdf0e10cSrcweir } 287cdf0e10cSrcweir dispose()288cdf0e10cSrcweir public void dispose() 289cdf0e10cSrcweir { 290cdf0e10cSrcweir if ( m_rowSet == null ) 291cdf0e10cSrcweir return; 292cdf0e10cSrcweir XComponent rowSetComp = UnoRuntime.queryInterface( XComponent.class, m_rowSet ); 293cdf0e10cSrcweir rowSetComp.dispose(); 294cdf0e10cSrcweir } 295*170fb961SPedro Giffuni } 296