| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef __com_sun_star_sdb_tools_XTableName_idl__ |
| #define __com_sun_star_sdb_tools_XTableName_idl__ |
| |
| #ifndef __com_sun_star_lang_IllegalArgumentException_idl__ |
| #include <com/sun/star/lang/IllegalArgumentException.idl> |
| #endif |
| |
| #ifndef __com_sun_star_container_NoSuchElementException_idl__ |
| #include <com/sun/star/container/NoSuchElementException.idl> |
| #endif |
| |
| #ifndef __com_sun_star_beans_XPropertySet_idl__ |
| #include <com/sun/star/beans/XPropertySet.idl> |
| #endif |
| |
| //============================================================================= |
| module com { module sun { module star { module sdb { module tools { |
| //============================================================================= |
| |
| //----------------------------------------------------------------------------- |
| /** allows to manipulate table names. |
| |
| <p>When, in a database application, dealing with table names, there's many degrees |
| of freedom to deal with. For instance, suppose you want to have the full name of a |
| table object, as it should be used in a <code>SELECT</code> statement's <code>FROM</code> |
| part. This requires you to evaluate whether or not the table has a catalog and/or schema |
| name, to combine the catalog, the schema, and the basic table name into one name, respecting |
| the database's quoting character, and the order in which all those parts should be combined. |
| Additionally, you have to respect the client-side settings which tell OpenOffice.org |
| to use or not use catalogs and schemas in <code>SELECT</code> at all.</p> |
| |
| <p>The <type>XTableName</type> interface eases this and other, similar tasks around table |
| names.</p> |
| |
| <p>The component itself does not have life-time control mechanimns, i.e. you |
| cannot explicitly dispose it (<member scope="com::sun::star::lang">XComponent::dispose</member>), |
| and you cannot be notified when it dies.<br/> |
| However, if your try to access any of its methods or attributes, after the |
| connection which was used to create it was closed, a <type scope="com::sun::star::lang">DisposedException</type> |
| will be thrown.</p> |
| |
| @see XConnectionTools |
| @see com::sun::star::sdbc::XDatabaseMetaData |
| @see com::sun::star::sdb::DataSource::Settings |
| |
| @since OpenOffice 2.0.4 |
| */ |
| published interface XTableName |
| { |
| /** denotes the name of the catalog which the table is a part of |
| */ |
| [attribute] string CatalogName; |
| |
| /** denotes the name of the schema which the table is a part of |
| */ |
| [attribute] string SchemaName; |
| |
| /** denotes the mere, unqualified table name, excluding any catalog and |
| schema. |
| */ |
| [attribute] string TableName; |
| |
| /** returns the composed table name, including the catalog and schema name, |
| respecting the databases's quoting requirements, plus |
| |
| @param Type |
| the type of name composition to be used. |
| |
| @param Quote |
| specifies whether the single parts of the table name should be quoted |
| |
| @see CompositionType |
| |
| @throws com::sun::star::IllegalArgumentException |
| if the given <arg>Type</arg> does not denote a valid <type>CompositionType</type> |
| */ |
| string getComposedName( [in] long Type, [in] boolean Quote ) |
| raises ( com::sun::star::lang::IllegalArgumentException ); |
| |
| |
| /** sets a new composed table name |
| @param ComposedName |
| specifies the composed table name |
| @param Type |
| specifies the composition type which was used to create the composed table name |
| */ |
| void setComposedName( [in] string ComposedName, [in] long Type ); |
| |
| /** represents the table name in a form to be used in a <code>SELECT</code> statement. |
| |
| <p>On a per-data-source basis, OpenOffice.org allows to override database meta |
| data information in that you can specify to not use catalog and or schema names |
| in <code>SELECT</code> statements. Using this attribute, you can generate a table |
| name which respects those settings.</p> |
| |
| @see com::sun::star::sdb::DataSource::Settings |
| */ |
| [attribute, readonly] string NameForSelect; |
| |
| /** is the <type scope="com::sun::star::sdb">Table</type> object specified |
| by the current name. |
| |
| <p>Retrieving this attribute is equivalent to obtaining the tables |
| container from the connection (via <type scope="com::sun::star::sdbcx">XTablesSupplier</type>), |
| and calling its <member scope="com::sun::star::container">XNameAccess::getByName</member> |
| method with the ComposedName.</p> |
| |
| @throws com::sun::star::container::NoSuchElementException |
| if, upon getting the attribute value, the current composed table name |
| represented by this instance does not denote an existing table in the database. |
| @throws com::sun::star::lang::IllegalArgumentException |
| if you try to set an object which does not denote a table from the underlying |
| database. |
| */ |
| [attribute] ::com::sun::star::beans::XPropertySet Table |
| { |
| get raises ( com::sun::star::container::NoSuchElementException ); |
| set raises ( com::sun::star::lang::IllegalArgumentException ); |
| }; |
| }; |
| |
| //============================================================================= |
| }; }; }; }; }; |
| //============================================================================= |
| |
| #endif |
| |