1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski package util.db; 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyValue; 27*b1cdbd2cSJim Jagielski import com.sun.star.frame.XModel; 28*b1cdbd2cSJim Jagielski import com.sun.star.frame.XStorable; 29*b1cdbd2cSJim Jagielski import com.sun.star.io.IOException; 30*b1cdbd2cSJim Jagielski import com.sun.star.lang.XMultiServiceFactory; 31*b1cdbd2cSJim Jagielski import com.sun.star.sdb.XDocumentDataSource; 32*b1cdbd2cSJim Jagielski import com.sun.star.sdb.XOfficeDatabaseDocument; 33*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski /** 36*b1cdbd2cSJim Jagielski * encapsulates a css.sdb.DatabaseDocument 37*b1cdbd2cSJim Jagielski */ 38*b1cdbd2cSJim Jagielski public class DatabaseDocument 39*b1cdbd2cSJim Jagielski { DatabaseDocument( final XMultiServiceFactory _orb, final DataSource _dataSource )40*b1cdbd2cSJim Jagielski protected DatabaseDocument( final XMultiServiceFactory _orb, final DataSource _dataSource ) 41*b1cdbd2cSJim Jagielski { 42*b1cdbd2cSJim Jagielski m_orb = _orb; 43*b1cdbd2cSJim Jagielski m_dataSource = _dataSource; 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski XDocumentDataSource docDataSource = (XDocumentDataSource)UnoRuntime.queryInterface( 46*b1cdbd2cSJim Jagielski XDocumentDataSource.class, m_dataSource.getDataSource() ); 47*b1cdbd2cSJim Jagielski m_databaseDocument = (XOfficeDatabaseDocument)UnoRuntime.queryInterface(XOfficeDatabaseDocument.class, 48*b1cdbd2cSJim Jagielski docDataSource.getDatabaseDocument() ); 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielski m_model = (XModel)UnoRuntime.queryInterface( XModel.class, m_databaseDocument ); 51*b1cdbd2cSJim Jagielski m_storeDoc = (XStorable)UnoRuntime.queryInterface( XStorable.class, m_databaseDocument ); 52*b1cdbd2cSJim Jagielski } 53*b1cdbd2cSJim Jagielski getDataSource()54*b1cdbd2cSJim Jagielski public DataSource getDataSource() 55*b1cdbd2cSJim Jagielski { 56*b1cdbd2cSJim Jagielski return m_dataSource; 57*b1cdbd2cSJim Jagielski } 58*b1cdbd2cSJim Jagielski getDatabaseDocument()59*b1cdbd2cSJim Jagielski public XOfficeDatabaseDocument getDatabaseDocument() 60*b1cdbd2cSJim Jagielski { 61*b1cdbd2cSJim Jagielski return m_databaseDocument; 62*b1cdbd2cSJim Jagielski } 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski /** 65*b1cdbd2cSJim Jagielski * passes through to XModel.getURL. 66*b1cdbd2cSJim Jagielski */ getURL()67*b1cdbd2cSJim Jagielski public String getURL() 68*b1cdbd2cSJim Jagielski { 69*b1cdbd2cSJim Jagielski return m_model.getURL(); 70*b1cdbd2cSJim Jagielski } 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski /** 73*b1cdbd2cSJim Jagielski * simplified version (taking no arguments except the target URL) of XStorage.storeAsURL 74*b1cdbd2cSJim Jagielski * @param _url 75*b1cdbd2cSJim Jagielski * specifies the location to where to store the document 76*b1cdbd2cSJim Jagielski */ storeAsURL( final String _url )77*b1cdbd2cSJim Jagielski public void storeAsURL( final String _url ) throws IOException 78*b1cdbd2cSJim Jagielski { 79*b1cdbd2cSJim Jagielski m_storeDoc.storeAsURL( _url, new PropertyValue[] { } ); 80*b1cdbd2cSJim Jagielski } 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski private XMultiServiceFactory m_orb; 83*b1cdbd2cSJim Jagielski private DataSource m_dataSource; 84*b1cdbd2cSJim Jagielski private XOfficeDatabaseDocument m_databaseDocument; 85*b1cdbd2cSJim Jagielski private XModel m_model; 86*b1cdbd2cSJim Jagielski private XStorable m_storeDoc; 87*b1cdbd2cSJim Jagielski } 88