xref: /AOO42X/main/qadevOOo/runner/util/db/DatabaseDocument.java (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*
2*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3*cdf0e10cSrcweir  *
4*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
5*cdf0e10cSrcweir  *
6*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
7*cdf0e10cSrcweir  *
8*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
9*cdf0e10cSrcweir  *
10*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
11*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
12*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
13*cdf0e10cSrcweir  *
14*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
15*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
18*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
19*cdf0e10cSrcweir  *
20*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
21*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
22*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
23*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
24*cdf0e10cSrcweir  *
25*cdf0e10cSrcweir  */
26*cdf0e10cSrcweir 
27*cdf0e10cSrcweir package util.db;
28*cdf0e10cSrcweir 
29*cdf0e10cSrcweir import com.sun.star.beans.PropertyValue;
30*cdf0e10cSrcweir import com.sun.star.frame.XModel;
31*cdf0e10cSrcweir import com.sun.star.frame.XStorable;
32*cdf0e10cSrcweir import com.sun.star.io.IOException;
33*cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory;
34*cdf0e10cSrcweir import com.sun.star.sdb.XDocumentDataSource;
35*cdf0e10cSrcweir import com.sun.star.sdb.XOfficeDatabaseDocument;
36*cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime;
37*cdf0e10cSrcweir 
38*cdf0e10cSrcweir /**
39*cdf0e10cSrcweir  *  encapsulates a css.sdb.DatabaseDocument
40*cdf0e10cSrcweir  */
41*cdf0e10cSrcweir public class DatabaseDocument
42*cdf0e10cSrcweir {
43*cdf0e10cSrcweir     protected DatabaseDocument( final XMultiServiceFactory _orb, final DataSource _dataSource )
44*cdf0e10cSrcweir     {
45*cdf0e10cSrcweir         m_orb = _orb;
46*cdf0e10cSrcweir         m_dataSource = _dataSource;
47*cdf0e10cSrcweir 
48*cdf0e10cSrcweir         XDocumentDataSource docDataSource = (XDocumentDataSource)UnoRuntime.queryInterface(
49*cdf0e10cSrcweir             XDocumentDataSource.class, m_dataSource.getDataSource() );
50*cdf0e10cSrcweir         m_databaseDocument = (XOfficeDatabaseDocument)UnoRuntime.queryInterface(XOfficeDatabaseDocument.class,
51*cdf0e10cSrcweir             docDataSource.getDatabaseDocument() );
52*cdf0e10cSrcweir 
53*cdf0e10cSrcweir         m_model = (XModel)UnoRuntime.queryInterface( XModel.class, m_databaseDocument );
54*cdf0e10cSrcweir         m_storeDoc = (XStorable)UnoRuntime.queryInterface( XStorable.class, m_databaseDocument );
55*cdf0e10cSrcweir     }
56*cdf0e10cSrcweir 
57*cdf0e10cSrcweir     public DataSource getDataSource()
58*cdf0e10cSrcweir     {
59*cdf0e10cSrcweir         return m_dataSource;
60*cdf0e10cSrcweir     }
61*cdf0e10cSrcweir 
62*cdf0e10cSrcweir     public XOfficeDatabaseDocument getDatabaseDocument()
63*cdf0e10cSrcweir     {
64*cdf0e10cSrcweir         return m_databaseDocument;
65*cdf0e10cSrcweir     }
66*cdf0e10cSrcweir 
67*cdf0e10cSrcweir     /**
68*cdf0e10cSrcweir      * passes through to XModel.getURL.
69*cdf0e10cSrcweir      */
70*cdf0e10cSrcweir     public String getURL()
71*cdf0e10cSrcweir     {
72*cdf0e10cSrcweir         return m_model.getURL();
73*cdf0e10cSrcweir     }
74*cdf0e10cSrcweir 
75*cdf0e10cSrcweir     /**
76*cdf0e10cSrcweir      * simplified version (taking no arguments except the target URL) of XStorage.storeAsURL
77*cdf0e10cSrcweir      * @param _url
78*cdf0e10cSrcweir      *      specifies the location to where to store the document
79*cdf0e10cSrcweir      */
80*cdf0e10cSrcweir     public void storeAsURL( final String _url ) throws IOException
81*cdf0e10cSrcweir     {
82*cdf0e10cSrcweir         m_storeDoc.storeAsURL( _url, new PropertyValue[] { } );
83*cdf0e10cSrcweir     }
84*cdf0e10cSrcweir 
85*cdf0e10cSrcweir     private XMultiServiceFactory    m_orb;
86*cdf0e10cSrcweir     private DataSource              m_dataSource;
87*cdf0e10cSrcweir     private XOfficeDatabaseDocument m_databaseDocument;
88*cdf0e10cSrcweir     private XModel                  m_model;
89*cdf0e10cSrcweir     private XStorable               m_storeDoc;
90*cdf0e10cSrcweir }
91