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