/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: Table.idl,v $
 *
 *  $Revision: 1.10 $
 *
 *  last change: $Author: rt $ $Date: 2005-09-08 04:02:44 $
 *
 *  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_sdbcx_Table_idl__
#define __com_sun_star_sdbcx_Table_idl__

#ifndef __com_sun_star_beans_XPropertySet_idl__
#include <com/sun/star/beans/XPropertySet.idl>
#endif

 module com {  module sun {  module star {  module sdbcx {

 published interface XDataDescriptorFactory;
 published interface XColumnsSupplier;
 published interface XIndexesSupplier;
 published interface XKeysSupplier;
 published interface XRename;
 published interface XAlterTable;


// DocMerge from xml: service com::sun::star::sdbcx::Table
/** used to specify a table in a database. A table is described by its
    name and one or more columns.

    <p>
    In addition, it may contain indexes to improve the performance in
    the retrieval of the table's data and keys, and to define semantic rules for the table.
    </p>
    <p>
    <b>
    Note:
    </b>
    All properties and columns of a table could by modified before
    it is appended to a database. In that case, the service is in fact a
    descriptor. On existing tables, a user might alter columns, add or delete
    columns, indexes, and keys depending on the capabilities of the database and on
    the user's privileges.
    </p>

    @see com::sun::star::sdbc::XDatabaseMetaData
    @see com::sun::star::sdbcx::Privilege
 */
published service Table
{

    // DocMerge from xml: service com::sun::star::sdbcx::Table: interface com::sun::star::sdbcx::XDataDescriptorFactory
    /** optional, could be used to copy an table.
     */
    [optional] interface XDataDescriptorFactory;


    // DocMerge from xml: service com::sun::star::sdbcx::Table: interface com::sun::star::sdbcx::XColumnsSupplier
    /** access to the contained table columns.
     */
    interface XColumnsSupplier;


    // DocMerge from xml: service com::sun::star::sdbcx::Table: interface com::sun::star::sdbcx::XIndexesSupplier
    /** optional, provides the access of the table indexes.
     */
    [optional] interface XIndexesSupplier;


    // DocMerge from xml: service com::sun::star::sdbcx::Table: interface com::sun::star::sdbcx::XKeysSupplier
    /** optional, provides the access to the table keys.
     */
    [optional] interface XKeysSupplier;


    // DocMerge from xml: service com::sun::star::sdbcx::Table: interface com::sun::star::sdbcx::XRename
    /** optional, allows the renaming of tables.
     */
    [optional] interface XRename;


    // DocMerge from xml: service com::sun::star::sdbcx::Table: interface com::sun::star::sdbcx::XAlterTable
    /** optional, allows the altering of columns.
     */
    [optional] interface XAlterTable;

    // gives access to the properties
    interface com::sun::star::beans::XPropertySet;


    // DocMerge from xml: property com::sun::star::sdbcx::Table::Name
    /** is the name of the table.
     */
    [readonly, property] string Name;


    // DocMerge from xml: property com::sun::star::sdbcx::Table::CatalogName
    /** is the name of the table catalog.
     */
    [readonly, property] string CatalogName;


    // DocMerge from xml: property com::sun::star::sdbcx::Table::SchemaName
    /** is the name of the table schema.
     */
    [readonly, property] string SchemaName;


    // DocMerge from xml: property com::sun::star::sdbcx::Table::Description
    /** supplies a comment on the table. Could be empty, if not supported by
        the driver.
     */
    [readonly, property] string Description;


    // DocMerge from xml: property com::sun::star::sdbcx::Table::Type
    /** indicates the type of the table like (TABLE, VIEW, SYSTEM TABLE).
        Could be empty, if not supported by the driver.
     */
    [optional, readonly, property] string Type;
};

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

}; }; }; };

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