/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: OfficeDatabaseDocument.idl,v $
 *
 *  $Revision: 1.5 $
 *
 *  last change: $Author: hr $ $Date: 2005-09-23 11:54:11 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public
 *    License along with this library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/
#ifndef __com_sun_star_sdb_OfficeDatabaseDocument_idl__
#define __com_sun_star_sdb_OfficeDatabaseDocument_idl__

#ifndef __com_sun_star_sdb_XOfficeDatabaseDocument_idl__
#include <com/sun/star/sdb/XOfficeDatabaseDocument.idl>
#endif
#ifndef __com_sun_star_util_XCloseable_idl__
#include <com/sun/star/util/XCloseable.idl>
#endif

module com {  module sun {  module star {  module sdb {

/** specifies a office database document which is a storable document.

    <p>
    These documents contain information about forms, and reports, and the properties of a data source.
    </p>
    <p>
    The database document contains no data per default. The following is stored inside the document:
        <li>
        Forms
        </li>
        <li>
        Reports
        </li>
        <li>
        The table settings defined in <type>DataSettings</type>
        </li>
        <li>
        The query settings defined in <type>DataSettings</type>
        </li>
        <li>
        All properties of the service <type>DataSource</type>
        </li>
    </p>
    <p>
    That the interface <type scope="com::sun::star::view">XPrintable</type> is not optional at the
    <type scope="com::sun::star::document">OfficeDocument</type> service is a documenation problem.
    The service <type>OfficeDatabaseDocument</type> doesn't support any printing.
    </p>

    @see com::sun::star::sdb::XOfficeDatabaseDocument
    @see com::sun::star::document::OfficeDocument
    @since OOo 2.0.0
 */
service OfficeDatabaseDocument
{
    service com::sun::star::document::OfficeDocument;

    interface XOfficeDatabaseDocument;

    /** implements life time control

        <p>Whoever retrieves a <type>OfficeDatabaseDocument</type> should be aware of
        life time issues, since a document needs to be closed when nobody needs it anymore.</p>

        <p>This implies that clients of a document need to ensure that as soon as they don't
        need, they invoke <member scope="com::sun::star::util">XCloseable::close</member>.</p>

        <p>Since this can be done by multiple clients, every client is additionally required
        to register itself as <type scope="com::sun::star::util">XCloseListener</type> at
        the document, to prevent some other client closing the model while it's still needed
        by the first client.</p>
    */
    interface com::sun::star::util::XCloseable;
};

//=============================================================================

}; }; }; };

/*===========================================================================
===========================================================================*/
#endif

