diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/sdb/DataSource.idl | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/sdb/DataSource.idl')
-rw-r--r-- | offapi/com/sun/star/sdb/DataSource.idl | 238 |
1 files changed, 238 insertions, 0 deletions
diff --git a/offapi/com/sun/star/sdb/DataSource.idl b/offapi/com/sun/star/sdb/DataSource.idl new file mode 100644 index 000000000..663595081 --- /dev/null +++ b/offapi/com/sun/star/sdb/DataSource.idl @@ -0,0 +1,238 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ +#ifndef __com_sun_star_sdb_DataSource_idl__ +#define __com_sun_star_sdb_DataSource_idl__ + +#include <com/sun/star/io/XPersistObject.idl> + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + +#include <com/sun/star/util/XFlushable.idl> + +#include <com/sun/star/util/XNumberFormatsSupplier.idl> + + + module com { module sun { module star { module sdbc { + published interface XIsolatedConnection; + published interface XDataSource; + };};};}; + + + module com { module sun { module star { module sdb { + + published interface XCompletedConnection; + published interface XQueryDefinitionsSupplier; + published interface XBookmarksSupplier; + + +/** is a factory to establish database connections. It should be registered at + a com::sun::star::uno::NamingService. + @see com::sun::star::sdb::DatabaseContext + */ +published service DataSource +{ + interface com::sun::star::beans::XPropertySet; + + + /** useful for establishing connections with the completion of connection parameters + provided during user interaction. + */ + interface XCompletedConnection; + + /** useful for establishing isolated connections which are not shared among others + as it is the case when using XCompletedConnection or com::sun::star::sdbc::XDataSource. + @see XCompletedConnection + @see com::sun::star::sdbc::XDataSource + @since OOo 1.1.2 + */ + interface com::sun::star::sdbc::XIsolatedConnection; + + + /** is provided to flush a DataSource within to a Database Context. + */ + interface com::sun::star::util::XFlushable; + + + /** provides the access to DataSource related queries. + <p> + The object returned by the + com::sun::star::sdb::XQueryDefinitionsSupplier::getQueryDefinitions() + supports the + com::sun::star::sdb::DefinitionContainer + service. + </p> + */ + interface XQueryDefinitionsSupplier; + + /* useful for establishing connections and to get and set the login timeout. + */ + interface com::sun::star::sdbc::XDataSource; + + /** provides access to bookmarks to documents associated with the data source + <p> + The object returned by the + com::sun::star::sdb::XBookmarksSupplier::getBookmarks() + supports the + com::sun::star::sdb::DefinitionContainer + service. + </p> + */ + [optional] interface XBookmarksSupplier; + + /** is the name of the data source. + + <p>If the data source is registered at the database context, then the <code>Name</code> property + denotes the registration name. Otherwise, the name property contains the URL of the file which the + database document associated with the data source is based on.</p> + + <p>If the same data source is registered under different names, the value of the <code>Name</code> + property is not defined.</p> + */ + [readonly, property] string Name; + + + /** indicates a database url of the form <br> + <code> jdbc:<em>subprotocol</em>:<em>subname</em></code> + or + <code>sdbc:<em>subprotocol</em>:<em>subname</em></code> + */ + [property] string URL; + + + /** is a list of arbitrary string tag/value pairs as connection arguments + + <p>The DataSource itself does not attempt to interpret any of those values.</p> + + <p>Instead, the values in this property have two use cases: + <ul><li>Upon creating a connection, for every value in this sequence it's checked + whether the com::sun::star::sdbc::XDriver which is to provide + the connection supports a setting with the respective name, using its + com::sun::star::sdbc::XDriver::getPropertyInfo() method.br/> + If so, the settings is passed to the driver's + com::sun::star::sdbc::XDriver::connect() method. If not, + the setting is ignored.</li> + <li>External components may use the settings to carry arbitrary information with + the data source. Usually, this is used to control the behavior of components + working with the data source.</li> + </ul> + */ + [property] sequence<com::sun::star::beans::PropertyValue> Info; + + /** is a convenience wrapper around the #Info property. + + <p>Since fiddling around with a sequence of property values is somewhat uncomfortable + in all known UNO language bindings (especially for tasks like simply changing the value + of an existing value), the #Settings property wraps the #Info + property for easier single-value access.</p> + + <p>You should use the #Settings property if you need to access a few properties only, + and the #Info property if you need access to all existent settings at once.</p> + + <p>The object represented by this property supports the com::sun::star::beans::PropertyBag + service. That is, you can at runtime add arbitrary new properties to the bag.</p> + + <p>Additionally, the property bag supports default values of properties, and thus the + com::sun::star::beans::XPropertyState interface. If you add an own property to + the bag using com::sun::star::beans::XPropertyContainer::addProperty(), you need + to specify an initial value, which is also used as default value (exceptions see below).</p> + + <p>Effectively, the property bag represented by <code>Settings</code> contains two classes of properties: + Pre-defined ones and user-defined ones.</p> + + <p><em>Pre-defined</em> properties are properties which are potentially used by the data source, the + application UI for the data source, or a particular backend driver employed by the data source. There's + a large set of such properties, no all of them are effectively used for a concrete data source, nonetheless, + they're all present in the <code>Settings</code>.<br/> + Such properties are not removable from the bag, that is, their + com::sun::star::beans::PropertyAttribute::REMOVABLE attribute is <em>not</em> set.<br/> + Usually, you'll find that all of this properties have the + com::sun::star::beans::PropertyState::PropertyState_DEFAULT_VALUE state.</p> + + <p><em>User-defined</em> properties are the ones which are added at runtime by any instance. They might or might + not be removable, this depends on whether or not the code adding them specifies the + com::sun::star::beans::PropertyAttribute::REMOVABLE attribute. Also, they might + or might not have a default value, determined by the + com::sun::star::beans::PropertyAttribute::MAYBEDEFAULT attribute at the time they're added + to the bag.</p> + + <p>When a data source is made persistent, then properties which are not removable (which are assumed to be the + pre-defined properties) are ignored when they are in <code>DEFAULT</code> state. All other properties are + always made persistent, except when an explicit + com::sun::star::beans::PropertyAttribute::TRANSIENT attribute prohibits this.</p> + + <p>Similar, when you obtain the #Info property of a <code>DataSource</code>, the + <code>Settings</code> bag is asked for all its property values, and the ones which are removable and + in state default are stripped, and <em>not</em> returned in the <code>Info</code> sequence.</p> + */ + [property, readonly, optional] com::sun::star::beans::XPropertySet Settings; + + /** determines a users login name. + */ + [property] string User; + + + /** determines a users password. The password is not persistent. + */ + [property] string Password; + + + /** indicates that a password is always necessary. + */ + [property] boolean IsPasswordRequired; + + + /** indicates that components displaying data obtained from this + data source should suppress columns used for versioning. + */ + [property] boolean SuppressVersionColumns; + + + /** determines whether modifications on the data source are allowed or not. + */ + [readonly, property] boolean IsReadOnly; + + + /** provides an object for formatting numbers. + */ + [readonly, property] com::sun::star::util::XNumberFormatsSupplier + NumberFormatsSupplier; + + + /** defines a list of tables, on which the DataSource should have it's focus. + If empty, all tables are rejected. + + */ + [property] sequence<string> TableFilter; + + + /** defines a list of table types, on which the DataSource should have it's focus. + If empty, all table types are rejected. + + */ + [property] sequence<string> TableTypeFilter; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |