diff options
Diffstat (limited to '')
102 files changed, 9598 insertions, 0 deletions
diff --git a/offapi/com/sun/star/configuration/AccessRootElement.idl b/offapi/com/sun/star/configuration/AccessRootElement.idl new file mode 100644 index 000000000..0c3900342 --- /dev/null +++ b/offapi/com/sun/star/configuration/AccessRootElement.idl @@ -0,0 +1,155 @@ +/* -*- 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_configuration_AccessRootElement_idl__ +#define __com_sun_star_configuration_AccessRootElement_idl__ + +#include <com/sun/star/configuration/HierarchyElement.idl> +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XLocalizable.idl> +#include <com/sun/star/util/XChangesNotifier.idl> + + +module com { module sun { module star { module configuration { + +/** provides information about the root element of a hierarchy and + about the hierarchy as a whole. + + <p>Provides information about the element and the whole hierarchy. + Allows controlling the lifetime of the hierarchy. + Allows observing changes in the hierarchy as a whole. + </p> + + <p>When access to a hierarchy is first obtained from a factory or provider, + this is the initial object that is created by the factory. + It represents the <em>root</em> of the accessible part of the hierarchy. + </p> + + <p><em><strong>NOTE:</strong> In this description "hierarchy" may actually + designate a part or fragment of a larger hierarchy. It is that part that is + rooted in the element represented by an implementation of this service + and that is accessible starting from this element.</em> + </p> + + <p>Generally it is not possible to navigate the parent or siblings, if any, + of this element, so com::sun::star::container::XChild is + not supported. + </p> + + @see com::sun::star::configuration::UpdateRootElement + Implementations that support modifying data in the hierarchy + implement service UpdateRootElement. + + @see com::sun::star::configuration::SetElement + A complementary service, for children of a dynamic homogeneous container. + + @see com::sun::star::configuration::GroupElement + A complementary service, for children of a static heterogeneous collection. + + @see com::sun::star::configuration::ConfigurationProvider + Objects provided by a ConfigurationProvider implement this service. +*/ +published service AccessRootElement +{ +/** the basic service for accessing information about an element in the + hierarchy. +*/ + service HierarchyElement; + +/** allows controlling or observing the lifetime of the whole hierarchy. + + <p>The owner of the hierarchy may dispose of this object + using com::sun::star::lang::XComponent::dispose(). + As this object owns its child elements and, recursively, the whole hierarchy, + any descendant elements obtained, directly or indirectly, from this object + will also be disposed. Disposing of the object does not affect a persistent + representation of the hierarchy. + </p> + + <p>When an implementation is obtained from a factory or provider, ownership + of it is usually transferred to the client. See the documentation + of the particular provider or factory service for details. + </p> + + <p>The provider of this object may still dispose of this object, when the + lifetime of the provider ends or if these objects represent + the root of only a fragment of an enclosing hierarchy and + this fragment is removed from the complete hierarchy by an outside source. + </p> + + <p>Clients may register a com::sun::star::lang::XEventListener + to be notified when the object is disposed for either cause. + </p> +*/ + interface com::sun::star::lang::XComponent; + +/** allows registering listeners that observe the whole hierarchy. + + <p>A client can register an + com::sun::star::util::XChangesListener, + which will receive notifications for any changes within the + hierarchy (fragment) this object represents. + </p> + + <p>An implementation will collect as many changes as possible into a single + com::sun::star::util::ChangesEvent. For Example: + </p> + + <p> + If com::sun::star::beans::XMultiPropertySet::setPropertyValues() + or com::sun::star::beans::XMultiHierarchicalPropertySet::setHierarchicalPropertyValues() + is used on an element of the hierarchy to change multiple values within + the hierarchy, all changes will be notified with a single event. + </p> + + <p>If an outside source uses + com::sun::star::util::XChangesBatch::commitChanges() + on an overlapping hierarchy access, all relevant changes will be notified + with a single event. + </p> + + @see UpdateRootElement + @see com::sun::star::util::XChangesBatch +*/ + interface com::sun::star::util::XChangesNotifier; + +/** provides access to the locale that applies to locale-dependent data + in this hierarchy. [optional] + + <p>This interface may be missing if the implementation does not support + locale-dependent data in the hierarchy or if the (partial) hierarchy rooted + in this object does not contain any locale-dependent elements. + </p> + + <p><em>Changing the locale is generally not supported.</em> If it is supported, + there is no guarantee that values already loaded into the hierarchy, or an + application cache, are refreshed to reflect the new locale. Use of + com::sun::star::lang::XLocalizable::setLocale() + is therefore not recommended. + </p> +*/ + [optional] interface com::sun::star::lang::XLocalizable; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/AdministrationProvider.idl b/offapi/com/sun/star/configuration/AdministrationProvider.idl new file mode 100644 index 000000000..74944d30c --- /dev/null +++ b/offapi/com/sun/star/configuration/AdministrationProvider.idl @@ -0,0 +1,176 @@ +/* -*- 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_configuration_AdministrationProvider_idl__ +#define __com_sun_star_configuration_AdministrationProvider_idl__ + +#include <com/sun/star/lang/XMultiServiceFactory.idl> +#include <com/sun/star/lang/XComponent.idl> + + +module com { module sun { module star { module configuration { + +/** manages one, or more, complete sets of configuration data for + administrative purposes and serves as a factory for objects that + provide access to subsets of these shared configurations. + + <p>Shared sets of configuration data usually serve to provide defaults, + which are used if no individual settings are present. Depending on the data + store multiple layers of defaults may be combined with a user-specific layer + to make up the final configuration. + </p> + <p>Many aspects of the supported behavior depend strongly on the underlying + data store and on the administrative structures it defines. With some data + stores this service also enables access to individual user's configuration + data by an administrator. + </p> + <p>On the other hand, in the simplest model there is only a single layer of + default data which is accessible through this service. + </p> + <p>An implementation is usually obtained from a + com::sun::star::lang::ServiceManager. The arguments passed to + com::sun::star::lang::XMultiComponentFactory::createInstanceWithArgumentsAndContext() + select the configuration data source. They may also define the scope of + administrable data or contain credentials to be used to authorize the + administrative access. Missing parameters may be filled in + from the context or the environment. + </p> + + @see com::sun::star::configuration::ConfigurationProvider + Offers the same services and creates the same accessor objects as this + service, but accesses the personal configuration. + + <p>A ConfigurationProvider provides access to the personal + layer of configuration data of the current user context. It should in + most cases be used when <em>using</em> the configuration data, although + for most contexts an AdministrationProvider can be used as + a drop-in replacement. + </p> + */ +published service AdministrationProvider +{ +/** allows creating access objects for specific views such as subsets and fragments + of the configuration. + + <p>The parameter <var>aServiceSpecifier</var> passed to + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + supports at least the service specifiers + <code>"com.sun.star.configuration.ConfigurationAccess"</code> and + <code>"com.sun.star.configuration.ConfigurationUpdateAccess"</code>. + </p> + + <p>Using the first of these service specifiers requests a read-only view of + the configuration. + The object that is created implements service ConfigurationAccess. + To reflect its <em>element role</em> as root of the view, it implements + service AccessRootElement. + </p> + + <p>Using the second form requests an updatable view of the configuration. + The object that is created should implement service + ConfigurationUpdateAccess. To reflect its <em>element role</em> + which includes controlling updates for the whole view, it implements + service UpdateRootElement. + <BR />If the root element of the view is marked read-only (as indicated + by com::sun::star::beans::PropertyAttributes::READONLY), + the implementation may either raise an exception or return a (read-only) + ConfigurationAccess/AccessRootElement instead. + </p> + + <p>The arguments passed to + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + in parameter <var>aArguments</var> specify the administrative entity for which + data should be administered. In other words they determine the layer to which + changes will apply. They also specify the view of that configuration that + should be created. That is, they determine the subset of elements that can be + accessed starting from the returned object. Each element of the argument + sequence should be a com::sun::star::beans::PropertyValue + or a com::sun::star::beans::NamedValue, + so that the parameters can be identified by name rather than by position. + </p> + + <p>What combinations of arguments are supported depends on the service name + and on the data store being administered. + </p> + + <p>With both of the standard service-specifiers above, an implementation must + accept a single argument named <code>nodepath</code> of type `string`. + This argument must contain the absolute path to an element of the + configuration. The view that is selected consists of the named element and + all its descendants. The administrative entity is the default for the + AdministrationProvider. Usually this is the largest entity + encompassing all entities accessible from this instance. In other words this + can be used to influence as global a scope as possible. + </p> + + <p>Other arguments can be used to select a more specific entity and to control + the behavior of the view. These are different for different implementations + and data stores. Whether and how they are used may also depend on properties + that were selected when the provider was created. + </p> + + <p>An implementation may ignore unknown arguments.</p> + + <p>Some parameters that are commonly supported are described for service + ConfigurationProvider. + </p> + <p>One notable difference exists for parameter <code>"Locale"</code>. For a + ConfigurationProvider the default behavior usually is to select + the locale set up for the user. But this service by default gets data for all + locales for which data is present. Locale-dependent values in this case are + replaced by a SetAccess using the language names as accessors. + This also allows targeted setting of values for selected locales. + This behavior can be requested explicitly by specifying a special argument + value <code>locale = "*"</code>. + </p> + + <p>com::sun::star::lang::XMultiServiceFactory::createInstance() + may be unusable. Only an implementation that supports service names that can be + used with no further arguments support this method. It should return the + same result as if + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + had been called using an empty sequence of arguments. + </p> +*/ + interface com::sun::star::lang::XMultiServiceFactory; + + +/** allows controlling or observing the lifetime of the configuration. + + <p>The owner of the provider may dispose of this object + using com::sun::star::lang::XComponent::dispose(). + </p> + + <p>Views created by the provider generally refer to data that is managed by + the provider. Therefore, disposing of the provider will cause all objects + belonging to these views to be disposed of as well. This does not apply to + <em>snapshot</em> views that have their own copy of the data, if available. + </p> + +*/ + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; + +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl b/offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl new file mode 100644 index 000000000..c04197603 --- /dev/null +++ b/offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl @@ -0,0 +1,40 @@ +/* -*- 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_configuration_CannotLoadConfigurationException_idl__ +#define __com_sun_star_configuration_CannotLoadConfigurationException_idl__ + +#include <com/sun/star/uno/Exception.idl> + + + module com { module sun { module star { module configuration { + + +/** is thrown when an application tries to create a configuration provider + but the configuration can't be loaded + */ +published exception CannotLoadConfigurationException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ConfigurationAccess.idl b/offapi/com/sun/star/configuration/ConfigurationAccess.idl new file mode 100644 index 000000000..9e34f9adf --- /dev/null +++ b/offapi/com/sun/star/configuration/ConfigurationAccess.idl @@ -0,0 +1,235 @@ +/* -*- 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_configuration_ConfigurationAccess_idl__ +#define __com_sun_star_configuration_ConfigurationAccess_idl__ + +#include <com/sun/star/configuration/HierarchyAccess.idl> +#include <com/sun/star/configuration/HierarchyElement.idl> +#include <com/sun/star/configuration/SetAccess.idl> +#include <com/sun/star/configuration/GroupAccess.idl> +#include <com/sun/star/configuration/AccessRootElement.idl> +#include <com/sun/star/configuration/SetElement.idl> +#include <com/sun/star/configuration/GroupElement.idl> + + +module com { module sun { module star { module configuration { + +/** provides read access to a fragment of the configuration hierarchy. + + <p>Values that are direct or indirect descendants of a root element can be + retrieved and, if themselves objects, navigated. Other interfaces provide + access to information about this element and its context. + Changes to values in the hierarchy can be monitored by event listeners. + </p> + + <p>Descendants of this service also implement this service. + </p> + + <p>Ultimately the configuration holds values. These values are organized into + a hierarchy using structural elements. The structure is defined in advance in + a schema. Necessary information from the schema is stored in the configuration + repository itself and is accessible through an implementation of this service. + </p> + + <p>Two different kinds of structural elements are used in the configuration + hierarchy: + </p> + <dl> + <dt>Sets</dt> + <dd>are dynamic containers of homogeneous elements. Which elements + a <em>set</em> contains can vary. Their names are defined by the + clients that insert them. On the other hand, the <em>type</em> of + the elements is the same for all elements. In the case of elements + that are themselves hierarchy objects, the <em>type</em> includes + the structure of the hierarchy fragment they contain. Such types + are defined in the configuration schema as <em>templates</em>. + </dd> + + <dt>Groups</dt> + <dd>are static collections of heterogeneous elements. The names and + types of the elements of a <em>group</em> are completely defined in the + configuration schema. Here each element may be of a different + <em>type</em>, allowing <em>groups</em> that contain a mix of + subobjects and simple values. + </dd> + </dl> + + <p>Objects in the configuration hierarchy, for example, implementations of this service, + can thus be classified in the following ways: + </p> + <ul> + <li><em>Container</em> role: + An object that can hold child elements as a <em>set</em> or a <em>group</em>. + </li> + <li><em>Element</em> role: + An object may be an element of a <em>set</em> or a <em>group</em> + or else it may be the root element. + </li> + </ul> + + <p>Several types of simple <em>values</em> can be used in the configuration. + In addition to the basic (scalar) types, sequences of the basic types are + supported. The basic types are: + </p> + + <ul> + <li><strong>string</strong> can hold a human-readable text. + <p>Values are represented as `string`.</p> + <p>Sequences are represented as `string[]`.</p> + <p>"<em>human-readable</em>" here excludes non-printing characters + except for CR, LF and TAB [Unicode code points 9,10,13]. + For binary data, use type <strong>binary</strong> instead.</p> + </li> + <li><strong>boolean</strong> can hold the values `TRUE` or `FALSE`. + <p>Values are represented as `boolean`. + <p>Sequences are represented as `boolean[]`.</p> + </li> + <li><strong>short</strong> can hold a 16-bit signed integer. + <p>Values are represented as `short`.</p> + <p>Sequences are represented as `short[]`.</p> + </li> + <li><strong>int</strong> can hold a 32-bit signed integer. + <p>Values are represented as `long`.</p> + <p>Sequences are represented as `long[]`.</p> + </li> + <li><strong>long</strong> can hold a 64-bit signed integer. + <p>Values are represented as `hyper`.</p> + <p>Sequences are represented as `hyper[]`.</p> + </li> + <li><strong>double</strong> can hold a floating point number. + <p>Values are represented as `double`.</p> + <p>Sequences are represented as `double[]`.</p> + </li> + <li><strong>binary</strong> can hold a sequence of octets. + <p>Values are represented as `byte[]`.</p> + <p>Sequences are represented as `byte[][]`.</p> + </li> + </ul> + + <p>Within templates an additional type <strong>any</strong> can occur. When + such a template is used to create a new SetElement, the type + of the element is initially reported as `any` (having no value). + When the value of such an element is first set, it will assume the type used. + </p> + + <p>If the schema marks a value as <em>nullable</em> (which is indicated by + attribute com::sun::star::beans::PropertyAttribute::MAYBEVOID ), + its contents may be `NULL`. + </p> + + <p>The configuration should support explicit access to default values + (implementing com::sun::star::beans::XPropertyState + and com::sun::star::beans::XPropertyWithState). + </p> + + @see ConfigurationProvider + Root instances of this service can be requested from a + ConfigurationProvider. + + @see ConfigurationUpdateAccess + an extended service that includes facilities for modifying + configuration data. +*/ +published service ConfigurationAccess +{ + /** provides interfaces to access child and descendent elements. + + <p>An implementation actually implements a specialization of this service, + which depends on its <em>Container</em> role. + </p> + + <p>Implementations shall implement exactly one of:</p> + <ul> + <li>SetAccess if this element is a <em>Set</em>.</li> + <li>GroupAccess if this element is a <em>Group</em>.</li> + </ul> + */ + service HierarchyAccess; + + /** provides interfaces to obtain information about this element and its + role and context in the hierarchy. + + <p>An implementation actually implements a specialization of this service, + which depends on its <em>Element</em> role. + </p> + + <p>Implementations shall implement exactly one of:</p> + <ul> + <li>AccessRootElement if this element is the + <em>Root</em> of the whole hierarchy. Objects that can be + created directly by a ConfigurationProvider + implement this service.</li> + <li>SetElement if this element may be contained in a + <em>Set</em>.</li> + <li>GroupElement if this element is a child of a + <em>Group</em>.</li> + </ul> + + */ + service HierarchyElement; + + /** specializes HierarchyAccess, if this element is a <em>Set</em>. + + <p>This is an alternative to GroupAccess. + </p> + */ + [optional] service SetAccess; + + /** specializes HierarchyAccess, + if this element is a <em>Group</em>. + <p>This is an alternative to SetAccess. + </p> + */ + [optional] service GroupAccess; + + /** specializes HierarchyElement, + if this element is the <em>Root</em> of the whole hierarchy. + <p>This is an alternative to SetElement + or GroupElement. + </p> + + @see ConfigurationProvider + Instances obtained from a ConfigurationProvider will + implement this version of HierarchyElement. + */ + [optional] service AccessRootElement; + + /** specializes HierarchyElement, + if this element may be contained in a <em>Set</em>. + <p>This is an alternative to AccessRootElement + or GroupElement. + </p> + */ + [optional] service SetElement; + + /** specializes HierarchyElement, + if this element is a child of a <em>Group</em>. + <p>This is an alternative to AccessRootElement + or SetElement. + </p> +*/ + [optional] service GroupElement; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ConfigurationProvider.idl b/offapi/com/sun/star/configuration/ConfigurationProvider.idl new file mode 100644 index 000000000..ff337bda2 --- /dev/null +++ b/offapi/com/sun/star/configuration/ConfigurationProvider.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_configuration_ConfigurationProvider_idl__ +#define __com_sun_star_configuration_ConfigurationProvider_idl__ + +#include <com/sun/star/lang/XMultiServiceFactory.idl> +#include <com/sun/star/lang/XComponent.idl> + + +module com { module sun { module star { module configuration { + +/** manages one, or more, complete sets of configuration data and serves as a + factory for objects that provide access to a subset of the configuration. + + <p>An implementation is usually obtained from a + com::sun::star::lang::ServiceManager. The arguments passed to + com::sun::star::lang::XMultiComponentFactory::createInstanceWithArgumentsAndContext() + select the configuration data source. Arguments must be provided as + com::sun::star::beans::NamedValue + or com::sun::star::beans::PropertyValue. + If the parameters given are incomplete missing values are taken + from the context or the environment. If an instance already exists for the + given set of arguments, the existing instance may be reused. + In particular, instantiating a provider without explicit arguments to access + the default configuration data will always yield the same + com::sun::star::configuration::DefaultProvider object. + </p> + <p>Some arguments for + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + may be given default values during creation of this service. In particular + this applies to the parameters <code>"Locale"</code> and <code>"EnableAsync"</code>. + </p> + + @deprecated Use theDefaultProvider instead. + */ +published service ConfigurationProvider +{ +/** allows creating access objects for specific views such as subsets and fragments + of the configuration. + + <p>The parameter <var>aServiceSpecifier</var> passed to + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + supports at least the service specifiers + <code>"com.sun.star.configuration.ConfigurationAccess"</code> and + <code>"com.sun.star.configuration.ConfigurationUpdateAccess"</code>. + </p> + + <p>Using the first of these service specifiers requests a read-only view of + the configuration. + The object that is created implements service ConfigurationAccess. + To reflect its <em>element role</em> as root of the view, it implements + service AccessRootElement. + </p> + + <p>Using the second form requests an updatable view of the configuration. + The object that is created should implement service + ConfigurationUpdateAccess. To reflect its <em>element role</em> + which includes controlling updates for the whole view, it implements + service UpdateRootElement. + <BR />If the root element of the view is marked read-only (as indicated + by com::sun::star::beans::PropertyAttributes::READONLY), + the implementation may either raise an exception or return a (read-only) + ConfigurationAccess/AccessRootElement instead. + </p> + + <p>The arguments passed to + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + in parameter <var>aArguments</var> specify the view of the configuration that + should be created. That is, they determine the subset of elements that can be + accessed starting from the returned object. Each element of the argument + sequence should be a com::sun::star::beans::PropertyValue + or a com::sun::star::beans::NamedValue, + so that the parameters can be identified by name rather than by position. + </p> + + <p>What combinations of arguments are supported depends on the service name. + </p> + + <p>With both of the standard service-specifiers above, an implementation must + accept a single argument named <code>nodepath</code> of type `string`. + This argument must contain the absolute path to an element of the + configuration. The view that is selected consists of the named element and + all its descendants. + </p> + + <p>Other arguments can be used to control the behavior of the view. These + are different for different implementations. Whether and how they are used + may also depend on the configuration store and configuration that were + selected when the provider was created. + </p> + + <p>An implementation must ignore unknown arguments.</p> + + <p>Some parameters that are commonly supported are:</p> + + <ul> + <li> + <strong>Selecting data into a view:</strong> + <dl> + <dt><code>"nodepath"</code> : `string`</dt> + <dd>specifies the location of the view root in the configuration.</dd> + <dt><code>"depth"</code> : `short`</dt> + <dd>specifies that elements of the hierarchy that are more than the given + number of nesting levels away from the root need not be included in the + view. + </dd> + <dt><code>"locale"</code> : com::sun::star::lang::Locale</dt> + <dd>specifies the locale for which localized values should be + retrieved. + </dd> + </dl> + + <p><strong>Example:</strong> In the hierarchy +<BR /><pre> + A - B1 - C1 + | + - B2 - C2 (localized: de, en, fr, ..) + | | + | - C3 - D1 + | | | + | | - D2 - E1 + | | + | - C4 - D3 - E2 - F1 + | | | + | | - F2 + | | + | - C5 + | + - B3 + | + - B4 - C6 - D4 - E3 + +</pre> + <BR />selecting a view with <code>nodepath = "/A/B2"</code>, + <code>depth = 2</code> and <code>locale = <Locale for en_US></code> + would result in the tree fragment +<BR /><pre> +(A-) B2 - C2 (en) + | + - C3 - D1 + | | + | - D2 (..) + | + - C4 - D3 (..) + | + - C5 + +</pre> + </p> + </li> + + <li> + <strong>Controlling cache behavior:</strong> (with providers that + cache configuration data) + <dl> + <dt><code>"enableasync"</code> : `boolean`</dt> + <dd>controls how updates are handled in the cache. If `TRUE`, the + cache may operate in <em>write-back</em> mode, where updates at + first only affect the cache and are written to persistent storage + at some later time. If `FALSE`, the cache must operate in + <em>write-through</em> mode, where updates are written to persistent + storage at once - that is before + com::sun::star::util::XChangesBatch::commitChanges() + returns. + <p><em>This parameter was formerly called <code>"lazywrite"</code>. + The old name should still be supported for compatibility. + </em></p> + </dd> + + <dt><code>"nocache"</code> : `boolean`</dt> + <dd>This deprecated parameter + specifies that data for the view is not taken from the cache, but + read directly from storage. This may entail that future changes that + become visible in the cache are not reflected in this view and that + changes done through this view are not reflected in the cache. + <BR /><strong>Use with caution !</strong> + <p><em>This parameter is not supported by all implementations and may be + silently ignored ! + </em></p> + </dd> + </dl> + </li> + </ul> + + <p>com::sun::star::lang::XMultiServiceFactory::createInstance() + may be unusable. Only an implementation that supports service names that can be + used with no further arguments support this method. It should return the + same result as if + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + had been called using an empty sequence of arguments. + </p> +*/ + interface com::sun::star::lang::XMultiServiceFactory; + + +/** allows controlling or observing the lifetime of the configuration. + + <p>The owner of the provider may dispose of this object + using com::sun::star::lang::XComponent::dispose(). + Note that the default provider is owned by the + com::sun::star::lang::ServiceManager and should not be + disposed of by user code. + </p> + + <p>Views created by the provider generally refer to data that is managed by + the provider. Therefore, disposing of the provider will cause all objects + belonging to these views to be disposed of as well. This does not apply to + <em>snapshot</em> views that have their own copy of the data, if available. + </p> + +*/ + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; + +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ConfigurationRegistry.idl b/offapi/com/sun/star/configuration/ConfigurationRegistry.idl new file mode 100644 index 000000000..2773a1782 --- /dev/null +++ b/offapi/com/sun/star/configuration/ConfigurationRegistry.idl @@ -0,0 +1,93 @@ +/* -*- 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_configuration_ConfigurationRegistry_idl__ +#define __com_sun_star_configuration_ConfigurationRegistry_idl__ + + +#include <com/sun/star/registry/XSimpleRegistry.idl> +#include <com/sun/star/util/XFlushable.idl> + +module com { module sun { module star { module configuration { + + + +/* provides access to a configuration tree as a registry. + + <p>This service is deprecated, + com.sun.star.configuration::ConfigurationProvider should + be used instead.</p> + + <p> Using the com::sun::star::registry::XSimpleRegistry + interface, the service can be bound to a subtree within the + configuration tree, as provided by an + com.sun.star.configuration::ConfigurationProvider + service, which must be accessible from the service factory you use for the + creation of this service. + </p> + <p> There are some restrictions when accessing a configuration tree using a registry. + Most of them are implications of the fact that a configuration tree is very static in + it's structure. Removal and addition of sub nodes is allowed only for special + nodes, and even then the new elements have to comply to a given scheme (which is some + kind of attribute of the container node). So for instance the + com.sun.star.registry::XRegistryKey::createKey() method is not allowed + for some nodes. + </p><p> + Thus anybody using this service is strongly advised to read and understand the specification + of a configuration provider (com.sun.star.configuration::ConfigurationProvider) + and all of its aspects. + </p> + + @version 1.0 2000/07/06 +*/ + +published service ConfigurationRegistry +{ + /** controls the binding of the object to a configuration sub tree. + <p>com::sun::star::registry::XSimpleRegistry::open() + is used to open a special subtree within the configuration tree. + </p> + <p>The parameters of this method control the location of the root of the to-be-opened + configuration node and the access mode (read only or updatable). + </p> + */ + interface com::sun::star::registry::XSimpleRegistry; + + /** is used to commit changes to the configuration. + <p>As specified for the + com::sun::star::configuration::ConfigurationUpdateAccess + service, all changes made to a configuration subtree have to be committed + before they become persistent. + To do this for a configuration accessed as a registry, call + com::sun::star::util::XFlushable::flush(). + </p> + <p><strong>Warning:</strong><em>Changes that are not flushed will be + lost.</em> + </p> + */ + interface com::sun::star::util::XFlushable; +}; + + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl b/offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl new file mode 100644 index 000000000..7d151349d --- /dev/null +++ b/offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl @@ -0,0 +1,123 @@ +/* -*- 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_configuration_ConfigurationUpdateAccess_idl__ +#define __com_sun_star_configuration_ConfigurationUpdateAccess_idl__ + +#include <com/sun/star/configuration/ConfigurationAccess.idl> +#include <com/sun/star/configuration/SetUpdate.idl> +#include <com/sun/star/configuration/GroupUpdate.idl> +#include <com/sun/star/configuration/UpdateRootElement.idl> + + +module com { module sun { module star { module configuration { + +/** provides modifying access to a fragment of the configuration hierarchy. + + <p>Extends ConfigurationAccess to support modifying values + or inserting and removing elements. + </p> + + <p>Descendants of this service also implement this service + unless they are marked <em>read-only</em> (which is indicated by attribute + com::sun::star::beans::PropertyAttribute::READONLY), + in which case they only need implement ConfigurationAccess. + </p> + + <p>The classification of implementations that is described for + ConfigurationAccess applies to implementations of this service + as well. Therefore an implementation will support one of several alternate + services describing its <em>Container</em> role and one of several alternate + services describing its <em>Element</em> role. These services are + extensions of the respective services documented for ConfigurationAccess. + </p> + <ul> + <li><em>Container</em> role: + A <em>group</em> permits changing child values. + A <em>set</em> permits inserting and removing contained elements. + </li> + <li><em>Element</em> role: + The root element of a modifiable tree provides extended functionality + to control processing of changes for the entire tree (fragment) by + supporting com::sun::star::util::XChangesBatch. + For elements of a <em>set</em> or a <em>group</em> no additional + interfaces are supported. + </li> + </ul> + + @see ConfigurationProvider + Root instances of this service can be requested from a + ConfigurationProvider +*/ +published service ConfigurationUpdateAccess +{ + /** is the basic service providing read access to an element of the + configuration hierarchy and its child and descendent elements. + + <p>The HierarchyAccess specialization implemented will be + further specialized to support modifying access. + Implementations shall therefore implement one of SetUpdate or + GroupUpdate depending on the <em>Container</em> role. + </p> + + <p>If the HierarchyElement specialization that is implemented + is AccessRootElement, the implementation must support the + extended functionality of UpdateRootElement. Otherwise, there + are no new requirements mandated by the <em>Element</em> role. + </p> + + */ + service ConfigurationAccess; + + /** specializes SetAccess to support modifying the element. + + <p>Implemented, if this element is a <em>Set</em>. + Otherwise service GroupUpdate is provided. + </p> + */ + [optional] service SetUpdate; + + /** specializes GroupAccess to support modifying contained + data. + + <p>Implemented, if this element is a <em>Group</em>. + Otherwise service SetUpdate is provided. + </p> + */ + [optional] service GroupUpdate; + + /** specializes AccessRootElement to support transaction-like + control over a batch of changes accumulated within the tree fragment. + + <p>Implemented, if this element is the <em>Root</em> of the whole hierarchy. + Otherwise either SetElement or GroupElement is provided. + </p> + + @see ConfigurationProvider + Instances obtained from a ConfigurationProvider will + implement this version of HierarchyElement. + */ + [optional] service UpdateRootElement; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/CorruptedConfigurationException.idl b/offapi/com/sun/star/configuration/CorruptedConfigurationException.idl new file mode 100644 index 000000000..2beab78e2 --- /dev/null +++ b/offapi/com/sun/star/configuration/CorruptedConfigurationException.idl @@ -0,0 +1,50 @@ +/* -*- 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_configuration_CorruptedConfigurationException_idl__ +#define __com_sun_star_configuration_CorruptedConfigurationException_idl__ + +#include <com/sun/star/uno/RuntimeException.idl> + + + +module com { module sun { module star { module configuration { + + +/** This exception is thrown in case a configuration + does not exists or contains corrupt data. + + This exception must be used as base exception to derive + specialized exceptions from it which identify a concrete + error case. + + @since OOo 2.3 + */ +published exception CorruptedConfigurationException : ::com::sun::star::uno::RuntimeException +{ + /** Instead of the message part of an exception, this value + describe the type of corruption more in detail. */ + string Details; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl b/offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl new file mode 100644 index 000000000..8009d52e1 --- /dev/null +++ b/offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl @@ -0,0 +1,44 @@ +/* -*- 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_configuration_CorruptedUIConfigurationException_idl__ +#define __com_sun_star_configuration_CorruptedUIConfigurationException_idl__ + +#include <com/sun/star/configuration/CorruptedConfigurationException.idl> + + + +module com { module sun { module star { module configuration { + + +/** This exception is thrown in case the global UI configuration + (including menubars/toolbars and accelerators) + does not exists or contains corrupted data. + + @since OOo 2.3 + */ +published exception CorruptedUIConfigurationException : ::com::sun::star::configuration::CorruptedConfigurationException +{ +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/DefaultProvider.idl b/offapi/com/sun/star/configuration/DefaultProvider.idl new file mode 100644 index 000000000..9fc05f304 --- /dev/null +++ b/offapi/com/sun/star/configuration/DefaultProvider.idl @@ -0,0 +1,79 @@ +/* -*- 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_configuration_DefaultProvider_idl__ +#define __com_sun_star_configuration_DefaultProvider_idl__ + +#include <com/sun/star/configuration/ConfigurationProvider.idl> +#include <com/sun/star/util/XRefreshable.idl> +#include <com/sun/star/util/XFlushable.idl> +#include <com/sun/star/lang/XLocalizable.idl> + + + +module com { module sun { module star { module configuration { + + +/** + is a ConfigurationProvider, that is + the default ConfigurationProvider for its + com::sun::star::uno::XComponentContext. + + <p>This object is accessible as singleton + theDefaultProvider</p>. + + @since OOo 1.1.2 +*/ +published service DefaultProvider +{ + + /** characterizes the functionality. + */ + service ConfigurationProvider ; + + /**Provides refresh capabilities, data can be refreshed from the backend(s) into + the in-memory cache. + */ + [optional] interface com::sun::star::util::XRefreshable; + + /** Enables the data to be flushed from the in-memory cache to the backend(s). + */ + [optional] interface com::sun::star::util::XFlushable; + + /** Enable setting/getting locale for Provider + + @since OOo 2.0 + */ + + [optional] interface com::sun::star::lang::XLocalizable; + + /** Property to enable/disable asynchronous write-back from in-memory cache to backend(s) + + @since OOo 2.0 + */ + + [optional,property] boolean EnableAsync; + +} ; + + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/GroupAccess.idl b/offapi/com/sun/star/configuration/GroupAccess.idl new file mode 100644 index 000000000..d0305fe90 --- /dev/null +++ b/offapi/com/sun/star/configuration/GroupAccess.idl @@ -0,0 +1,122 @@ +/* -*- 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_configuration_GroupAccess_idl__ +#define __com_sun_star_configuration_GroupAccess_idl__ + +#include <com/sun/star/configuration/HierarchyAccess.idl> +#include <com/sun/star/configuration/PropertyHierarchy.idl> +#include <com/sun/star/beans/XPropertyState.idl> +#include <com/sun/star/beans/XMultiPropertyStates.idl> + + +module com { module sun { module star { module configuration { + +/** provides access to a predefined heterogeneous group of values and nested + trees as part of a hierarchy. + + <p>Provides access to, and information about, its children and descendants + viewed either as properties or as contained elements. + </p> + + <p><em>Groups</em> are static collections within the hierarchy.</p> + + <p>The number and names of contained elements are fixed in advance + and each child may have a different type. + </p> + + <p>This service subsumes two alternate ways of accessing child and descendent + elements. These strongly overlap, supporting the basic identity + <code>xGroup.getPropertyValue( aName ) == xGroup.getByName( aName )</code>. + </p> + + @see com::sun::star::configuration::GroupElement + Child objects of this service generally implement service GroupElement. + + @see com::sun::star::configuration::SetAccess + A complementary service providing for dynamic homogeneous sets of elements. + +*/ +published service GroupAccess +{ +/** is the basic service for accessing child and descendent nodes using + a view of the tree as a container of values and structuring elements. +*/ + service HierarchyAccess; + +/** is the basic service for accessing child and descendent nodes using + a view of the tree as a hierarchy of properties and subproperties. + + <p>This view is meaningful only for a static fragment of the hierarchy + Object's properties may change, but not which properties they have. + Therefore, dynamic elements of the hierarchy (see SetAccess) + do not implement service PropertyHierarchy. + </p> + + <p>If such elements occur as properties or subproperties of an implementation, + it is not specified whether direct subproperty access using + com::sun::star::beans::XHierarchicalPropertySet or + com::sun::star::beans::XMultiHierarchicalPropertySet can + be used to access descendants of such elements. + </p> + + <p>Similarly, information about such descendants may not be available from + the com::sun::star::beans::XHierarchicalPropertySetInfo + the implementation provides. + </p> + + <p>If an implementation is part of a <em>read-only</em> view of the hierarchy, + all properties and subproperties will be reported as having attribute + com::sun::star::beans::PropertyAttribute::READONLY set, + and attempts to change property values will fail. + </p> +*/ + service PropertyHierarchy; + +/** provides access to the state of child elements of an implementation. [optional] + + <p>This interface should be present, if the hierarchy supports default values + for simple (non-object) properties and the group contains such properties. + </p> + + <p>For properties that are objects themselves, the semantic documented for + service HierarchyAccess applies. + </p> + */ + [optional] interface com::sun::star::beans::XPropertyState; + +/** provides access to the states of multiple child elements of + an implementation. [optional] + + <p>This interface should be present, if the hierarchy supports default values + for simple (non-object) properties and the group contains such properties. + </p> + + <p>For properties that are objects themselves, the semantic documented for + service HierarchyAccess applies. + </p> +*/ + [optional] interface com::sun::star::beans::XMultiPropertyStates; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/GroupElement.idl b/offapi/com/sun/star/configuration/GroupElement.idl new file mode 100644 index 000000000..e6bd88e77 --- /dev/null +++ b/offapi/com/sun/star/configuration/GroupElement.idl @@ -0,0 +1,74 @@ +/* -*- 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_configuration_GroupElement_idl__ +#define __com_sun_star_configuration_GroupElement_idl__ + +#include <com/sun/star/configuration/HierarchyElement.idl> +#include <com/sun/star/container/XChild.idl> + + +module com { module sun { module star { module configuration { + +/** provides information about a predefined element contained in a + heterogeneous group of elements within a hierarchy. + + <p>Provides information about the element. + Provides access to its containing group object. + </p> + + <p>A group element bears a predefined name. It may only exist within a + containing group object. + </p> + + @see com::sun::star::configuration::GroupAccess + Parent objects of this service generally implement service GroupAccess. + + @see com::sun::star::configuration::SetElement + A complementary service, for elements of a dynamic homogeneous container. + + @see com::sun::star::configuration::AccessRootElement + A complementary service, for the root element of a hierarchy. + +*/ +published service GroupElement +{ +/** is the basic service for accessing information about an element in the + hierarchy. +*/ + service HierarchyElement; + +/** provides access to the containing group object. + + <p>In this service this interface is mandatory</p> + + <p>com::sun::star::container::XChild::getParent() + shall not return NULL. + </p> + + <p><em>Setting a different parent is not supported.</em></p> +*/ + interface com::sun::star::container::XChild; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/GroupUpdate.idl b/offapi/com/sun/star/configuration/GroupUpdate.idl new file mode 100644 index 000000000..c8cff5c09 --- /dev/null +++ b/offapi/com/sun/star/configuration/GroupUpdate.idl @@ -0,0 +1,78 @@ +/* -*- 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_configuration_GroupUpdate_idl__ +#define __com_sun_star_configuration_GroupUpdate_idl__ + +#include <com/sun/star/configuration/GroupAccess.idl> +#include <com/sun/star/container/XNameReplace.idl> + + +module com { module sun { module star { module configuration { + +/** provides write access to a predefined heterogeneous group of values + and nested trees as part of a hierarchy. + + <p>This service extends GroupAccess to support + modifying values. + </p> +*/ +published service GroupUpdate +{ +/** is the basic service providing read access to a group element of the + hierarchy. + + <p>Any child and descendant objects support modifying access as well, + unless they represent a read-only tree element as indicated by + com::sun::star::beans::PropertyAttribute::READONLY. + </p> +*/ + service GroupAccess; + +/** allows replacing values. + + <p>This service extends the interface + com::sun::star::container::XNameAccess supported + by service GroupAccess to allow changing values. + This strongly overlaps with functionality available through + PropertyHierarchy (from GroupAccess), so that + <code>xGroup.setPropertyValue( aName, aValue )</code> is equivalent to + <code>xGroup.replaceByName( aName, aValue )</code>. + </p> + + <p>Changes can be observed by registering a listener with interface + com::sun::star::beans::XPropertySet or + com::sun::star::beans::XMultiPropertySet. + </p> + + <p>Elements of this group may be replaced only if they are of simple type. + The type returned by + com::sun::star::container::XElementAccess::getElementType() + must not be an interface type. Replacing whole subtrees is not supported. + </p> +*/ + interface com::sun::star::container::XNameReplace; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/HierarchyAccess.idl b/offapi/com/sun/star/configuration/HierarchyAccess.idl new file mode 100644 index 000000000..5ed58f861 --- /dev/null +++ b/offapi/com/sun/star/configuration/HierarchyAccess.idl @@ -0,0 +1,158 @@ +/* -*- 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_configuration_HierarchyAccess_idl__ +#define __com_sun_star_configuration_HierarchyAccess_idl__ + +#include <com/sun/star/container/XNameAccess.idl> +#include <com/sun/star/container/XHierarchicalNameAccess.idl> +#include <com/sun/star/container/XContainer.idl> +#include <com/sun/star/beans/XExactName.idl> +#include <com/sun/star/beans/XPropertySetInfo.idl> +#include <com/sun/star/beans/XPropertyState.idl> +#include <com/sun/star/beans/XMultiPropertyStates.idl> + + +module com { module sun { module star { module configuration { + +/** provides access to a hierarchy of descendant elements. + + <p>Subnodes are accessed by their name. Values that are direct or indirect + descendants of this tree node can be retrieved. Non-value subnodes can be + navigated using container interfaces. + Other interfaces provide access to information about this node. + Changes to values in the subtree can be monitored by event listeners. + </p> + + <p>Elements of this container that are not simple values + are similar containers themselves, thus (recursively) forming a + hierarchical tree. + </p> + + <p>Implementations of this service usually also implement + service HierarchyElement, which concerns the complementary role + of being accessible as an element of the hierarchy. + </p> +*/ +published service HierarchyAccess +{ +/** allows access to immediate children of this node. + + <p>com::sun::star::container::XNameAccess::getByName() + returns an `any` holding either a simple value or an interface + on another HierarchyAccess if the child is not a simple value. + </p> +*/ + interface com::sun::star::container::XNameAccess; + +/** allows access to all descendants of this node + + <p>com::sun::star::container::XHierarchicalNameAccess::getByHierarchicalName() + returns an `any` holding either a simple value or an interface + on another HierarchyAccess if the descendant is not a simple value. + </p> +*/ + interface com::sun::star::container::XHierarchicalNameAccess; + +/** allows attaching listeners to this node to monitor changes to immediate child nodes. +*/ + interface com::sun::star::container::XContainer; + +/** provides support for inexact names. + <p>Exact names can be obtained for simple or hierarchical names for use in + com::sun::star::container::XNameAccess, + com::sun::star::container::XHierarchicalNameAccess, + com::sun::star::beans::XPropertySet or + any other interfaces that allow access to or manipulation of subnodes + selected by name or hierarchical name. + </p> + <p>If an inexact name could be matched to either a simple or a hierarchical + name, the simple (immediate child) name is preferred. + </p> +*/ + interface com::sun::star::beans::XExactName; + +/** provides information about immediate children of this node. [optional] + + <p>This interface may be missing, if the hierarchy supports no traits that are + described by com::sun::star::beans::PropertyAttribute + values or if the same information is available by other means, + e.g. if the implementation supports + com::sun::star::beans::XPropertySet::getPropertySetInfo(). + </p> + + <p>If a child of this node is an object that implements + com::sun::star::beans::XProperty, then this implementation + returns the same com::sun::star::beans::Property for that + child as the child itself. + </p> +*/ + [optional] interface com::sun::star::beans::XPropertySetInfo; + +/** provides access to the state of child elements of an implementation. [optional] + + <p>This interface may be missing if the hierarchy (or a hierarchy fragment + that contains this implementation as element) does not support default values or + if the node does not support accessing the default state of individual children. + </p> + + <p>If elements that are not simple values, but objects themselves, support + a default state (as indicated by + com::sun::star::beans::PropertyAttribute::MAYBEDEFAULT), + they should implement + com::sun::star::beans::XPropertyWithState, in which case + the com::sun::star::beans::PropertyState applies to all + their children and recursively to all descendants. + </p> + + <p>If an implementation is part of a <em>read-only</em> view of the hierarchy, + attempts to change property states will fail. + </p> +*/ + [optional] interface com::sun::star::beans::XPropertyState; + +/** provides access to the states of multiple child elements of + an implementation. [optional] + + <p>This interface may be missing if the hierarchy (or a hierarchy fragment + that contains this implementation as element) does not support default values + if the node does not support accessing the default state of individual children. + </p> + + <p>If elements that are not simple values, but objects themselves, support + a default state (as indicated by + com::sun::star::beans::PropertyAttribute::MAYBEDEFAULT), + they should implement + com::sun::star::beans::XPropertyWithState, in which case + the com::sun::star::beans::PropertyState applies to all + their children and recursively to all descendants. + </p> + + <p>If an implementation is part of a <em>read-only</em> view of the hierarchy, + attempts to change property states will fail. + </p> +*/ + [optional] interface com::sun::star::beans::XMultiPropertyStates; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/HierarchyElement.idl b/offapi/com/sun/star/configuration/HierarchyElement.idl new file mode 100644 index 000000000..5f7485713 --- /dev/null +++ b/offapi/com/sun/star/configuration/HierarchyElement.idl @@ -0,0 +1,109 @@ +/* -*- 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_configuration_HierarchyElement_idl__ +#define __com_sun_star_configuration_HierarchyElement_idl__ + +#include <com/sun/star/container/XNamed.idl> +#include <com/sun/star/container/XHierarchicalName.idl> +#include <com/sun/star/beans/XProperty.idl> +#include <com/sun/star/beans/XPropertyWithState.idl> +#include <com/sun/star/container/XChild.idl> + + +module com { module sun { module star { module configuration { + +/** provides information about an element within a hierarchy. + + <p>The local name and the full hierarchical name can be retrieved. + Attributes detailing the role of the element can be queried. + The state of the element (regarding defaults) can be accessed. + </p> + + <p>Implementations of this service usually also implement + service HierarchyAccess, which concerns the complementary role + of providing access to subelements of the hierarchy. + </p> +*/ +published service HierarchyElement +{ +/** provides the complete hierarchical name of this element + within the hierarchy tree. +*/ + interface com::sun::star::container::XHierarchicalName; + +/** provides the local name of this element within its parent. + + <p><em>Renaming an element is generally not supported.</em></p> +*/ + interface com::sun::star::container::XNamed; + +/** provides a property descriptor for this element.[optional] + + <p>This interface may be missing, if the hierarchy supports no traits that are + described by com::sun::star::beans::PropertyAttribute + values. + </p> + + <p>If the parent of this object implements + com::sun::star::beans::XPropertySetInfo, then this returns + the same com::sun::star::beans::Property as the + com::sun::star::beans::XPropertySetInfo of the parent. + </p> +*/ + [optional] interface com::sun::star::beans::XProperty; + +/** provides access to the default state of this element. [optional] + + <p>This interface may be missing, if the hierarchy supports access to + a default state and values only for simple values or not at all. + </p> + + <p>If the parent of this object implements + com::sun::star::beans::XPropertyState, then members + of this interface have the same effect as corresponding members of the parent. + </p> + + <p>If an implementation is part of a <em>read-only</em> view of the hierarchy, + attempts to change property states will fail. + </p> +*/ + [optional] interface com::sun::star::beans::XPropertyWithState; + +/** provides access to the parent of this element [optional]. + + <p>This interface may be missing if this object is not obtained + as a child or descendant of another tree node, for example, directly from a factory or provider. + </p> + + <p>com::sun::star::container::XChild::getParent() + returns NULL, if this object is currently not contained in another node. + </p> + + <p><em>Setting a different parent is, generally, not supported.</em></p> +*/ + [optional] interface com::sun::star::container::XChild; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/InstallationIncompleteException.idl b/offapi/com/sun/star/configuration/InstallationIncompleteException.idl new file mode 100644 index 000000000..6674f035c --- /dev/null +++ b/offapi/com/sun/star/configuration/InstallationIncompleteException.idl @@ -0,0 +1,40 @@ +/* -*- 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_configuration_InstallationIncompleteException_idl__ +#define __com_sun_star_configuration_InstallationIncompleteException_idl__ + +#include <com/sun/star/configuration/CannotLoadConfigurationException.idl> + + + module com { module sun { module star { module configuration { + + +/** is thrown when creating a configuration provider fails because + the user's installation for the is missing or incomplete + */ +published exception InstallationIncompleteException: com::sun::star::configuration::CannotLoadConfigurationException +{ +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl b/offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl new file mode 100644 index 000000000..e580f16bb --- /dev/null +++ b/offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl @@ -0,0 +1,42 @@ +/* -*- 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_configuration_InvalidBootstrapFileException_idl__ +#define __com_sun_star_configuration_InvalidBootstrapFileException_idl__ + +#include <com/sun/star/configuration/CannotLoadConfigurationException.idl> + + + module com { module sun { module star { module configuration { + + +/** is thrown when creating a configuration provider fails because + a bootstrap file needed to locate the configuration contains invalid data + */ +published exception InvalidBootstrapFileException: com::sun::star::configuration::CannotLoadConfigurationException +{ + /// the URL of the bootstrap file that is invalid + string BootstrapFileURL; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/MissingBootstrapFileException.idl b/offapi/com/sun/star/configuration/MissingBootstrapFileException.idl new file mode 100644 index 000000000..ed8ea7341 --- /dev/null +++ b/offapi/com/sun/star/configuration/MissingBootstrapFileException.idl @@ -0,0 +1,42 @@ +/* -*- 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_configuration_MissingBootstrapFileException_idl__ +#define __com_sun_star_configuration_MissingBootstrapFileException_idl__ + +#include <com/sun/star/configuration/CannotLoadConfigurationException.idl> + + + module com { module sun { module star { module configuration { + + +/** is thrown when creating a configuration provider fails because + a bootstrap file needed to locate the configuration is missing + */ +published exception MissingBootstrapFileException: com::sun::star::configuration::CannotLoadConfigurationException +{ + /// the URL of the bootstrap file that could not be found + string BootstrapFileURL; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/PropertyHierarchy.idl b/offapi/com/sun/star/configuration/PropertyHierarchy.idl new file mode 100644 index 000000000..90df5e46f --- /dev/null +++ b/offapi/com/sun/star/configuration/PropertyHierarchy.idl @@ -0,0 +1,84 @@ +/* -*- 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_configuration_PropertyHierarchy_idl__ +#define __com_sun_star_configuration_PropertyHierarchy_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/beans/XMultiPropertySet.idl> +#include <com/sun/star/beans/XHierarchicalPropertySet.idl> +#include <com/sun/star/beans/XMultiHierarchicalPropertySet.idl> + + +module com { module sun { module star { module configuration { + +/** provides access to and information about properties and subproperties + of an implementation. + + <p>Properties in a property set may be full-fledged objects that have + properties themselves (and so on recursively), thereby forming a hierarchy + of properties. This service describes such a hierarchy, and allows + direct access even to subproperties. + </p> + + @see com::sun::star::beans::XProperty + Properties of an implementation that are objects themselves will often + implement com::sun::star::beans::XProperty to allow + direct access to information about the object. + If such objects have properties of their own, they should fully implement + PropertyHierarchy again. +*/ +published service PropertyHierarchy +{ +/** provides access to and information about the immediate properties of an implementation. +*/ + interface com::sun::star::beans::XPropertySet; + +/** provides access to and information about the immediate properties + of an implementation. + + <p>This interface allows retrieving or setting multiple properties at once. + Accesses are guaranteed to occur as single atomic operations even if + multiple threads are accessing the object simultaneously. + </p> +*/ + interface com::sun::star::beans::XMultiPropertySet; + +/** provides access to and information about the whole hierarchy + of properties and subproperties of an implementation. +*/ + interface com::sun::star::beans::XHierarchicalPropertySet; + +/** provides access to and information about the whole hierarchy + of properties and subproperties of an implementation. + + <p>This interface allows retrieving or setting multiple properties at once. + Accesses are guaranteed to occur as single atomic operations even if + multiple threads are accessing the object simultaneously. + </p> +*/ + interface com::sun::star::beans::XMultiHierarchicalPropertySet; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ReadOnlyAccess.idl b/offapi/com/sun/star/configuration/ReadOnlyAccess.idl new file mode 100644 index 000000000..b2ad08c4a --- /dev/null +++ b/offapi/com/sun/star/configuration/ReadOnlyAccess.idl @@ -0,0 +1,36 @@ +/* -*- 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/. + */ + +#ifndef _COM_SUN_STAR_CONFIGURATION_READONLYACCESS_IDL +#define _COM_SUN_STAR_CONFIGURATION_READONLYACCESS_IDL + +#include <com/sun/star/container/XHierarchicalNameAccess.idl> + +module com { module sun { module star { module configuration { + +/** Provides easy read-only access to the complete configuration. + + <p>This service is still unpublished and unstable.</p> + + @since LibreOffice 4.0 +*/ +service ReadOnlyAccess: com::sun::star::container::XHierarchicalNameAccess { + /** Service constructor. + + @param locale a string representation of the locale to use for localized + properties; use <code>*</code> for all-locale access + */ + create([in] string locale); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ReadWriteAccess.idl b/offapi/com/sun/star/configuration/ReadWriteAccess.idl new file mode 100644 index 000000000..7b376f90f --- /dev/null +++ b/offapi/com/sun/star/configuration/ReadWriteAccess.idl @@ -0,0 +1,36 @@ +/* -*- 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/. + */ + +#ifndef _COM_SUN_STAR_CONFIGURATION_READWRITEACCESS_IDL +#define _COM_SUN_STAR_CONFIGURATION_READWRITEACCESS_IDL + +#include <com/sun/star/configuration/XReadWriteAccess.idl> + +module com { module sun { module star { module configuration { + +/** Provides easy read/write access to the complete configuration. + + <p>This service is still unpublished and unstable.</p> + + @since LibreOffice 4.0 +*/ +service ReadWriteAccess: com::sun::star::configuration::XReadWriteAccess { + /** Service constructor. + + @param locale a string representation of the locale to use for localized + properties; use <code>*</code> for all-locale access + */ + create([in] string locale); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/SetAccess.idl b/offapi/com/sun/star/configuration/SetAccess.idl new file mode 100644 index 000000000..e1560b8c0 --- /dev/null +++ b/offapi/com/sun/star/configuration/SetAccess.idl @@ -0,0 +1,88 @@ +/* -*- 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_configuration_SetAccess_idl__ +#define __com_sun_star_configuration_SetAccess_idl__ + +#include <com/sun/star/configuration/HierarchyAccess.idl> +#include <com/sun/star/configuration/SimpleSetAccess.idl> +#include <com/sun/star/container/XContainer.idl> + + +module com { module sun { module star { module configuration { + +/** provides access to a dynamic, homogeneous set of values or nested + trees within a hierarchy. + + <p>Also provides information about the template for elements. + Allows normalizing externally generated names. + </p> + + <p><em>Sets</em> are dynamic containers within the hierarchy.</p> + + <p>The number and names of contained elements are not fixed in advance, + but all elements have to be of one predetermined type. + </p> + + @see com::sun::star::configuration::SetElement + Child objects of this service generally implement SetElement. + The template name returned by the child from + XTemplateInstance::getTemplateName() + corresponds to the name returned by the set from + XTemplateContainer::getElementTemplateName(). + + @see com::sun::star::configuration::GroupAccess + A complementary service that provides for static heterogeneous groups of + elements within the hierarchy. + +*/ +published service SetAccess +{ +/** is the basic service for accessing child and descendent nodes in a hierarchy. + + <p>External names (from foreign namespaces) should be normalized using + com::sun::star::util::XStringEscape::escapeString() + (if available) before using them as element names. + </p> +*/ + service HierarchyAccess; + +/** is the basic service providing information about and access to elements + of a not necessarily hierarchical <em>set</em>. + + <p>Interface com::sun::star::configuration::XTemplateContainer, + which is optional in SimpleSetAccess must always be implemented + in this service, if the elements are of object type. </p> +*/ + service SimpleSetAccess; + +/** allows attaching listeners to this node to monitor changes to the set. + + <p>In this service, support for notifications is mandatory. + </p> +*/ + interface com::sun::star::container::XContainer; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/SetElement.idl b/offapi/com/sun/star/configuration/SetElement.idl new file mode 100644 index 000000000..6260020d7 --- /dev/null +++ b/offapi/com/sun/star/configuration/SetElement.idl @@ -0,0 +1,166 @@ +/* -*- 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_configuration_SetElement_idl__ +#define __com_sun_star_configuration_SetElement_idl__ + +#include <com/sun/star/configuration/HierarchyElement.idl> +#include <com/sun/star/container/XChild.idl> +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/configuration/XTemplateInstance.idl> + + +module com { module sun { module star { module configuration { + +/** provides information about a dynamic element that can be inserted into a + homogeneous set of elements within a hierarchy. + + <p>Provides information about the element. + Provides access to its containing set object. + Allows controlling the lifetime of the element. + </p> + + <p>Set elements may be added to and removed from the hierarchy at runtime. + They bear user-defined names. They may exist independently, outside any + container. + </p> + + <p>New set element instances generally are created through members of + com::sun::star::lang::XSingleServiceFactory or, + if supported, com::sun::star::lang::XMultiServiceFactory + on an implementation of SetUpdate. Initially, they are not + contained in a set object and have no meaningful name. + </p> + + <p>While an instance is not contained in a set object, it is owned by + the client and can be disposed by calling + com::sun::star::lang::XComponent::dispose(). The name + of the object can freely be changed in that situation though without + persistent effect. + </p> + + <p>When the instance is inserted into a set (this includes replacing an + existing element), ownership is transferred to the container. + While it is contained in the container, clients must not dispose the + object. When inserted, the name of the object is fixed and is used to + identify it within the container. An implementation may support + com::sun::star::container::XNamed::setName() even in + this case. If it does, changing the name has the same effect of removing + the object (under the old name) and then reinserting it into the same + container (using the new name). + </p> + + <p>When an instance is removed from a set (this includes being replaced by + a new element), ownership is transferred to the client again. It can then be + disposed or reinserted into a container. An instance can only be inserted + into a container, if it was obtained from the same hierarchy. + </p> + + <p>When a set element is removed from its set from outside the hierarchy, the + container disposes of the object. This occurrence can be detected by registering + a com::sun::star::lang::XEventListener with the object. + </p> + + <p>If an implementation is part of a <em>read-only</em> view of the hierarchy, + changing the name or parent is not supported (the object can't be removed from + its container anyway). + </p> + + @see com::sun::star::configuration::SetAccess + Parent objects of this service generally implement service SetAccess. + + @see com::sun::star::configuration::GroupElement + A complementary service for elements of a static heterogeneous collection. + + @see com::sun::star::configuration::AccessRootElement + A complementary service for the root element of a hierarchy. + +*/ +published service SetElement +{ +/** is the basic service for accessing information about an element in the + hierarchy. +*/ + service HierarchyElement; + +/** provides access to the containing set object. + + <p>In this service, this interface is mandatory</p> + + <p>com::sun::star::container::XChild::getParent() + returns `NULL`, if the object is currently not contained in a container. + </p> + + <p>An implementation may also support + com::sun::star::container::XChild::setParent(). + If it does, changing the parent has the effect of first removing the object + from its old parent (if any) and then inserting it into the new parent + (unless that is `NULL`) under the same name. The new parent must be part of + the same hierarchy as the old one. The name of the object must have been set + before. + </p> +*/ + interface com::sun::star::container::XChild; + +/** allows controlling or observing the lifetime of the object. + + <p>Clients may dispose of the object using + com::sun::star::lang::XComponent::dispose(), only if + the object is currently not contained in a container ( + com::sun::star::container::XChild::getParent() + returns `NULL`). + </p> + + <p>Clients may register a com::sun::star::lang::XEventListener + to be notified, if the object is removed from its container by an outside source. + </p> +*/ + interface com::sun::star::lang::XComponent; + +/** provides information about the type of the element. + + <p>Set elements have a predetermined structure (their <em>type</em>), + that is described by and can be generated from a <em>template</em>. + </p> + + <p>If the object was created using interface + com::sun::star::lang::XSingleServiceFactory + on an implementation of SetUpdate, this interface describes the + same template as interface XTemplateContainer on that + SetUpdate. + </p> + <p>If the object was created using interface + com::sun::star::lang::XMultiServiceFactory + on an implementation of SetUpdate, this interface describes the + template whose name was used as a service identifier for the factory method. + </p> + <p>Otherwise, the semantics of the information provided about the template depends on the + implementation. + </p> + + @see com::sun::star::configuration::XTemplateContainer +*/ + interface com::sun::star::configuration::XTemplateInstance; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/SetUpdate.idl b/offapi/com/sun/star/configuration/SetUpdate.idl new file mode 100644 index 000000000..8736e2a88 --- /dev/null +++ b/offapi/com/sun/star/configuration/SetUpdate.idl @@ -0,0 +1,91 @@ +/* -*- 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_configuration_SetUpdate_idl__ +#define __com_sun_star_configuration_SetUpdate_idl__ + +#include <com/sun/star/configuration/SetAccess.idl> +#include <com/sun/star/configuration/SimpleSetUpdate.idl> + + +module com { module sun { module star { module configuration { + +/** provides write access to a dynamic homogeneous set of values or nested + trees within a hierarchy. + + <p>Allows adding and removing elements. + Helps creates new elements to be added. + </p> + + <p>This service extends SetAccess to support + modifying the container. + </p> + + <p>Any child and descendant objects support modifying access as well, + unless they represent a read-only tree element (as indicated by + com::sun::star::beans::PropertyAttribute::READONLY). + </p> +*/ +published service SetUpdate +{ +/** is the basic service providing read access to a <em>set</em> within the + hierarchy. +*/ + service SetAccess; + +/** is the basic service providing modifying access to a + not necessarily hierarchical <em>set</em>. + + <p>Changes can be observed by registering a listener with interface + com::sun::star::container::XContainer. + </p> + + <p>If the elements of this set are of object type, new elements are constructed + to match the tree structure prescribed by the element template of this set, when + using interfaces com::sun::star::lang::XSingleServiceFactory + and (if supported) com::sun::star::lang::XMultiServiceFactory. + </p> + + <p>Objects that are removed from a set can be reinserted into any set supporting + the same template within the same hierarchy. Even under a different name. + </p> + + <p>Implementations that support insertion of objects that weren't obtained + from within the hierarchy must reject elements that don't have the correct + structure as described by the template, even if the object returns the + correct template name from XTemplateInstance::getTemplateName(). + </p> + + <p>Other ways in which an element may be moved among or within compatible sets + include com::sun::star::container::XChild::setParent() + and com::sun::star::container::XNamed::setName(), if + the element implements them. + </p> + + @see com::sun::star::configuration::SetElement +*/ + service SimpleSetUpdate; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/SimpleSetAccess.idl b/offapi/com/sun/star/configuration/SimpleSetAccess.idl new file mode 100644 index 000000000..3a6253162 --- /dev/null +++ b/offapi/com/sun/star/configuration/SimpleSetAccess.idl @@ -0,0 +1,102 @@ +/* -*- 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_configuration_SimpleSetAccess_idl__ +#define __com_sun_star_configuration_SimpleSetAccess_idl__ + +#include <com/sun/star/container/XNameAccess.idl> +#include <com/sun/star/configuration/XTemplateContainer.idl> +#include <com/sun/star/util/XStringEscape.idl> +#include <com/sun/star/container/XContainer.idl> + + +module com { module sun { module star { module configuration { + +/** provides access to a dynamic, homogeneous, nonhierarchical set of values + or objects. + + <p>Also provides information about the template for elements. + Allows normalizing externally generated names. + </p> + + <p><em>Sets</em> are dynamic containers.</p> + + <p>The number and names of contained elements is not fixed in advance, + but all elements have to be of one predetermined type. + </p> +*/ +published service SimpleSetAccess +{ +/** is the basic service for accessing child and descendent nodes. + + <p>External names from foreign namespaces should be normalized using + com::sun::star::util::XStringEscape::escapeString(), + if available, before using them as element names. + </p> +*/ + interface com::sun::star::container::XNameAccess; + +/** provides additional information about the element type. [optional] + + <p>All set elements, if they are not just simple values, but whole trees, + must have a predetermined structure (their <em>type</em>) + that is described by and can be generated from a <em>template</em>. + The semantics of the information provided about the template depends on the + implementation. + </p> + + <p>This interface may be missing, if the implementation can support only + one predefined type or if the elements are of a simple type and + no further information is available. In the latter case, + com::sun::star::container::XElementAccess::getElementType() + provides all the information there is about the element's type. + </p> +*/ + [optional] interface com::sun::star::configuration::XTemplateContainer; + +/** allows normalizing and denormalizing external names. [optional] + + <p>Elements of a <em>set</em> often correspond to external entities, + for example, files, web pages, and people whose names obey different rules and + restrictions than names that are valid in the hierarchical naming scheme. + </p> + + <p>This interface may be missing if there are no naming restrictions, + if the implementation handles any such conversions internally, + or if clients must enforce such restrictions themselves. In the last case, + the naming scheme documentation must fully document any restrictions. + </p> +*/ + [optional] interface com::sun::star::util::XStringEscape; + +/** allows attaching listeners to this node to monitor changes to the set. [optional] + + <p>This interface may be missing if the implementation does not support + notifications. + </p> +*/ + [optional] interface com::sun::star::container::XContainer; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/SimpleSetUpdate.idl b/offapi/com/sun/star/configuration/SimpleSetUpdate.idl new file mode 100644 index 000000000..735316783 --- /dev/null +++ b/offapi/com/sun/star/configuration/SimpleSetUpdate.idl @@ -0,0 +1,164 @@ +/* -*- 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_configuration_SimpleSetUpdate_idl__ +#define __com_sun_star_configuration_SimpleSetUpdate_idl__ + +#include <com/sun/star/configuration/SimpleSetAccess.idl> +#include <com/sun/star/container/XNameContainer.idl> +#include <com/sun/star/lang/XSingleServiceFactory.idl> +#include <com/sun/star/lang/XMultiServiceFactory.idl> + + +module com { module sun { module star { module configuration { + +/** provides write access to a dynamic, homogeneous, non-hierarchical set of + values or objects. + + <p>Allows adding and removing elements. + Helps create new elements to be added. + </p> + + <p>This service extends SimpleSetAccess to support + modifying the container. Any child objects shall in turn support + modifying access. + </p> +*/ +published service SimpleSetUpdate +{ +/** is the basic service providing read access to a (not necessarily + hierarchical) <em>set</em>. +*/ + service SimpleSetAccess; + +/** allows inserting, removing, and replacing elements. + + <p>This interface extends the interface + com::sun::star::container::XNameAccess supported + by service SimpleSetAccess to allow modifying the container. + </p> + + <p>If available, changes can be observed by registering a listener with interface + com::sun::star::container::XContainer. + </p> + + <p>If the elements of this set are of simple type (the type returned by + com::sun::star::container::XElementAccess::getElementType() + is not an interface type), then values of that type can directly be passed to + com::sun::star::container::XNameContainer::insertByName() + and + com::sun::star::container::XNameContainer::replaceByName(). + </p> + + <p>Otherwise new elements have to be constructed to match the type + prescribed by the element template of this set. Such elements can be created + using interfaces com::sun::star::lang::XSingleServiceFactory + and, if supported, com::sun::star::lang::XMultiServiceFactory. + </p> + + <p>Objects to be inserted must not be contained in any set at the time of + insertion. com::sun::star::container::XChild::getParent() + must return `NULL`. If a name had been assigned to the object prior to insertion + (using com::sun::star::container::XNamed::setName() + or by other means), this name is ignored and will be lost. + After insertion the name of the object is the name that was used as argument + to com::sun::star::container::XNameContainer::insertByName() + or com::sun::star::container::XNameContainer::replaceByName(). +</p> + + + <p>Objects that are removed using + com::sun::star::container::XNameContainer::removeByName() + or replaced using + com::sun::star::container::XNameContainer::replaceByName() + remain valid and can be reinserted into a set supporting the same template and + even under a different name. + </p> + + <p>An implementation need not support insertion of objects that were not + obtained in one of the ways described above. If it does, the implementation + must reject elements that do not have the correct structure as described + by the template. + </p> +*/ + interface com::sun::star::container::XNameContainer; + +/** allows creating an object that can be inserted into this set. [conditional] + + <p>This interface shall be implemented by an implementation, + if and only if the element type of the set, as returned by + com::sun::star::container::XElementAccess::getElementType(), + is an object type, such as an interface. + </p> + + <p>Using com::sun::star::lang::XSingleServiceFactory::createInstance() + an instance of the element template of this set is created. If the set + supports multiple templates or variations of the basic template, a default + variant of the basic template is instantiated. If an implementation supports + variations, they may be specified by passing arguments to + com::sun::star::lang::XSingleServiceFactory::createInstanceWithArguments(). + There are no predefined arguments for all versions of this service. + </p> + + <p>The object created is not contained in the set and does not have a name yet. + It may subsequently be inserted into the set and named using + com::sun::star::container::XNameContainer::insertByName() + or + com::sun::star::container::XNameContainer::replaceByName(). + </p> +*/ + [optional] interface com::sun::star::lang::XSingleServiceFactory; + +/** allows creating various objects that can be inserted into this set. [optional] + + <p>This interface may be implemented by an implementation of + service SetUpdate to support creating elements from other than + the basic element template. An example of this would be an + implementation that supports inheritance, allowing the use of + templates derived from the basic template by extension. + </p> + + <p>This interface may only be implemented if the element type of the set + (as returned by + com::sun::star::container::XElementAccess::getElementType()) + is an object type, such as an interface. An implementation should also implement + interface XTemplateContainer which is optional in this service. + </p> + + <p>The service identifier argument passed + to com::sun::star::lang::XMultiServiceFactory::createInstance() + or com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + names the template to be instantiated or otherwise identifies the structure + to be built. The implementation must at least support using the template + name obtained from XTemplateContainer::getElementTemplateName() + as a service identifier, in which case the result shall be the same as if + the corresponding member of com::sun::star::lang::XSingleServiceFactory + had been called. + </p> + +*/ + [optional] interface com::sun::star::lang::XMultiServiceFactory; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/Update.idl b/offapi/com/sun/star/configuration/Update.idl new file mode 100644 index 000000000..7c699be87 --- /dev/null +++ b/offapi/com/sun/star/configuration/Update.idl @@ -0,0 +1,39 @@ +/* -*- 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_configuration_Update_idl__ +#define __com_sun_star_configuration_Update_idl__ + +#include <com/sun/star/configuration/XUpdate.idl> + +module com { module sun { module star { module configuration { + +/* Provides access to internal update features of the configuration provider. + + <p>This singleton is unpublished and unstable.</p> + + @since OOo 3.3 +*/ +singleton Update: XUpdate; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/UpdateRootElement.idl b/offapi/com/sun/star/configuration/UpdateRootElement.idl new file mode 100644 index 000000000..78342f73c --- /dev/null +++ b/offapi/com/sun/star/configuration/UpdateRootElement.idl @@ -0,0 +1,96 @@ +/* -*- 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_configuration_UpdateRootElement_idl__ +#define __com_sun_star_configuration_UpdateRootElement_idl__ + +#include <com/sun/star/configuration/AccessRootElement.idl> +#include <com/sun/star/util/XChangesBatch.idl> + + +module com { module sun { module star { module configuration { + +/** provides update control for a hierarchy of configuration items + and information about the hierarchy as a whole as well as its root. + + <p>Extends AccessRootElement by adding support for + collecting changes and applying them to a backend store as a single batch. + </p> + + <p>An implementation represents the root of a partial hierarchy. [See the + documentation for AccessRootElement]. The hierarchy in turn is + a <em>view</em> onto a fragment of persistent data tree that can be accessed + through several such views, or even several processes, simultaneously. + </p> + + <p>Elements of the hierarchy, such as descendants of this root element, + may support modification by providing appropriate + interfaces. Changes done this way initially only affect these objects + themselves and other objects within the same hierarchy, such as other + descendants of this root element. + </p> + + <p>The accumulated changes within this hierarchy can be managed using + com::sun::star::util::XChangesBatch. Pending changes + will become persistent and visible from other overlapping hierarchies + only when com::sun::star::util::XChangesBatch::commitChanges() + is called. If the hierarchy is disposed or discarded without committing + changes, the changes will be lost. + </p> + + @see com::sun::star::configuration::GroupUpdate + @see com::sun::star::configuration::SetUpdate +*/ +published service UpdateRootElement +{ +/** provides (read-only) access to information about the root element of + (a fragment of) the hierarchy. It also provides some functionality concerning + the hierarchy (fragment) accessible from that element as a whole. +*/ + service AccessRootElement; + +/** allows managing changes within the hierarchy. + + <p>com::sun::star::util::XChangesBatch::getPendingChanges() + reports all changes within the hierarchy that are done through (direct or + indirect) descendants of this element. The same set of changes is committed + to persistent storage and/or made visible to other objects accessing the same + data set, when + com::sun::star::util::XChangesBatch::commitChanges() + is invoked. + </p> + + <p>If the implementation supports + com::sun::star::lang::XLocalizable::setLocale(), changes + will be considered to apply to the locale that is set when + com::sun::star::util::XChangesBatch::commitChanges() + is invoked. + </p> + + @see AccessRootElement + @see com::sun::star::util::XChangesNotifier +*/ + interface com::sun::star::util::XChangesBatch; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/XReadWriteAccess.idl b/offapi/com/sun/star/configuration/XReadWriteAccess.idl new file mode 100644 index 000000000..0980b3936 --- /dev/null +++ b/offapi/com/sun/star/configuration/XReadWriteAccess.idl @@ -0,0 +1,38 @@ +/* -*- 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/. + */ + +#ifndef _COM_SUN_STAR_CONFIGURATION_XREADWRITEACCESS_IDL +#define _COM_SUN_STAR_CONFIGURATION_XREADWRITEACCESS_IDL + +#include <com/sun/star/beans/XHierarchicalPropertySetInfo.idl> +#include <com/sun/star/container/XHierarchicalNameReplace.idl> +#include <com/sun/star/util/XChangesBatch.idl> + +module com { module sun { module star { module configuration { + +/* Provides easy read/write access to the complete configuration. + + <p>This interface is still unpublished and unstable.</p> + + @since LibreOffice 3.6 +*/ +interface XReadWriteAccess { + interface com::sun::star::container::XHierarchicalNameReplace; + + interface com::sun::star::util::XChangesBatch; + + // @since LibreOffice 5.0 + interface com::sun::star::beans::XHierarchicalPropertySetInfo; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/XTemplateContainer.idl b/offapi/com/sun/star/configuration/XTemplateContainer.idl new file mode 100644 index 000000000..cd119a0fd --- /dev/null +++ b/offapi/com/sun/star/configuration/XTemplateContainer.idl @@ -0,0 +1,68 @@ +/* -*- 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_configuration_XTemplateContainer_idl__ +#define __com_sun_star_configuration_XTemplateContainer_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + + module com { module sun { module star { module configuration { + + +/** is implemented by objects that contain instances of a named template to + provide information about the template. + + <p> An implementation will also implement + com::sun::star::lang::XSingleServiceFactory, in which case + that interface creates instances of the specified template. + </p> + <p> If multiple templates are supported, the supported factory interface may be + com::sun::star::lang::XMultiServiceFactory, in which case + the `string` returned from + XTemplateContainer::getElementTemplateName() can be used as + the service name argument. + </p> + + @see XTemplateInstance + */ +published interface XTemplateContainer: com::sun::star::uno::XInterface +{ + + /** retrieves the name of the template + + <p> If instances of multiple templates are accepted by the container, + this is the name of the basic or primary template. + </p> + <p> Instances of the template must be created + using an appropriate factory. + </p> + + @returns + the name of the (default) template for elements. + */ + string getElementTemplateName(); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/XTemplateInstance.idl b/offapi/com/sun/star/configuration/XTemplateInstance.idl new file mode 100644 index 000000000..2eab30a26 --- /dev/null +++ b/offapi/com/sun/star/configuration/XTemplateInstance.idl @@ -0,0 +1,58 @@ +/* -*- 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_configuration_XTemplateInstance_idl__ +#define __com_sun_star_configuration_XTemplateInstance_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + + module com { module sun { module star { module configuration { + + +/** is implemented by objects that are instances of a named template to provide + information about the template. + + <p> Template names are similar to service names, but apply to structure and + content, rather than to type. + </p> + <p> Often a template description can be retrieved from a repository and then be + interpreted by a factory object. Templates provide a means to build + new kinds of objects dynamically. + </p> + + @see XTemplateContainer + */ +published interface XTemplateInstance: com::sun::star::uno::XInterface +{ + + /** retrieves the name of the template + + @returns + the name of the template this object was built from or conforms to. + */ + string getTemplateName(); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/XUpdate.idl b/offapi/com/sun/star/configuration/XUpdate.idl new file mode 100644 index 000000000..90862b112 --- /dev/null +++ b/offapi/com/sun/star/configuration/XUpdate.idl @@ -0,0 +1,51 @@ +/* -*- 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_configuration_XUpdate_idl__ +#define __com_sun_star_configuration_XUpdate_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module configuration { + +/* Provides access to internal update features of the configuration provider. + + <p>This interface is unpublished and unstable.</p> + + @since OOo 3.3 +*/ +interface XUpdate { + void insertExtensionXcsFile([in] boolean shared, [in] string fileUri); + + void insertExtensionXcuFile([in] boolean shared, [in] string fileUri); + + void removeExtensionXcuFile([in] string fileUri); + // fileUri must exactly match corresponding insertExtensionXcuFile + // argument + + void insertModificationXcuFile( + [in] string fileUri, [in] sequence< string > includedPaths, + [in] sequence< string > excludedPaths); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl b/offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl new file mode 100644 index 000000000..c004544e4 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl @@ -0,0 +1,42 @@ +/* -*- 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_configuration_backend_AuthenticationFailedException_idl__ +#define __com_sun_star_configuration_backend_AuthenticationFailedException_idl__ + +#include <com/sun/star/configuration/backend/BackendSetupException.idl> + +module com { module sun { module star { module configuration { +module backend { + +/** + Exception thrown when authentication to the underlying backend fails + due to an unknown user-id or invalid credentials. + + @since OOo 1.1.2 + */ +published exception AuthenticationFailedException : BackendSetupException { +} ; + +} ; +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/Backend.idl b/offapi/com/sun/star/configuration/backend/Backend.idl new file mode 100644 index 000000000..801f485d7 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/Backend.idl @@ -0,0 +1,79 @@ +/* -*- 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_configuration_backend_Backend_idl__ +#define __com_sun_star_configuration_backend_Backend_idl__ + +#include <com/sun/star/configuration/backend/XBackend.idl> +#include <com/sun/star/configuration/backend/XBackendEntities.idl> +#include <com/sun/star/configuration/backend/XSchemaSupplier.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to a configuration database composed of one or more + storage backends containing settings used by software modules. + + <p> Configuration data is organized into layers which are selected + by components and entities. + </p> + + <p> Components are characterized by configuration schemas. + A component contains configuration data for a particular + application domain or software module. + </p> + <p> Entities are organized hierarchically in organizations, + groups, roles and individual users. Each element of the associated + hierarchy corresponds to a layer that applies to an entity. + </p> + <p> A layer contains data for multiple components + associated to a single entity. + <p> + + @since OOo 1.1.2 +*/ +published service Backend +{ + + /** + provides access to configuration schemas. + */ + interface XSchemaSupplier ; + + + /** + provides access to the layer data. + */ + interface XBackend ; + + + /** + provides information about supported and special entities. + */ + [optional] interface XBackendEntities ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/BackendAccessException.idl b/offapi/com/sun/star/configuration/backend/BackendAccessException.idl new file mode 100644 index 000000000..4a423c417 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/BackendAccessException.idl @@ -0,0 +1,43 @@ +/* -*- 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_configuration_backend_BackendAccessException_idl__ +#define __com_sun_star_configuration_backend_BackendAccessException_idl__ + +#include <com/sun/star/lang/WrappedTargetException.idl> + +module com { module sun { module star { module configuration { +module backend { + +/** + Generic exception thrown when physical access to an underlying + backend fails. + <p>Wraps an exception that originates in the underlying access layer.</p> + + @since OOo 1.1.2 + */ +published exception BackendAccessException : ::com::sun::star::lang::WrappedTargetException { +} ; + +} ; +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/BackendAdapter.idl b/offapi/com/sun/star/configuration/backend/BackendAdapter.idl new file mode 100644 index 000000000..84e42e4f6 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/BackendAdapter.idl @@ -0,0 +1,73 @@ +/* -*- 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_configuration_backend_BackendAdapter_idl__ +#define __com_sun_star_configuration_backend_BackendAdapter_idl__ + +#include <com/sun/star/configuration/backend/Backend.idl> +#include <com/sun/star/configuration/backend/XBackendEntities.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements Backend retrieving data + from a SingleBackend. + + @since OOo 1.1.2 +*/ +published service BackendAdapter +{ + + /** provides access to configuration data. + */ + service Backend ; + + + /** + This interface, that is optional in Backend, is + mandatory in this service. + */ + interface XBackendEntities ; + + + /** + allows initializing the backend to use. + + <p>If this interface is present, a SingleBackend + may be passed, that is used to access the data. + Also a com::sun::star::configuration::bootstrap::BootstrapContext + can be passed, that provides further settings for the backend. + </p> + + <p>If this interface is missing, the real backend to use is determined + from the com::sun::star::uno::XComponentContext. + </p> + */ + [optional] interface com::sun::star::lang::XInitialization ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/BackendSetupException.idl b/offapi/com/sun/star/configuration/backend/BackendSetupException.idl new file mode 100644 index 000000000..50ff74706 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/BackendSetupException.idl @@ -0,0 +1,51 @@ +/* -*- 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_configuration_backend_BackendSetupException_idl__ +#define __com_sun_star_configuration_backend_BackendSetupException_idl__ + +#include <com/sun/star/configuration/CannotLoadConfigurationException.idl> + +module com { module sun { module star { module configuration { +module backend { + +/** + Generic exception thrown when setting up a connection to an underlying + backend fails. + <p>Indicates an error that originates in the underlying access layer.</p> + + @since OOo 1.1.2 + */ +published exception BackendSetupException : ::com::sun::star::configuration::CannotLoadConfigurationException { + + /** The exception that is raised by the underlying backend implementation. + <p>May be a numeric error code, a message `string` or `VOID`, + if the original exception is not represented as a + com::sun::star::uno::Exception. + </p> + */ + any BackendException; +} ; + +} ; +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/CannotConnectException.idl b/offapi/com/sun/star/configuration/backend/CannotConnectException.idl new file mode 100644 index 000000000..5a12318b2 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/CannotConnectException.idl @@ -0,0 +1,51 @@ +/* -*- 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_configuration_backend_CannotConnectException_idl__ +#define __com_sun_star_configuration_backend_CannotConnectException_idl__ + +#include <com/sun/star/configuration/backend/BackendSetupException.idl> + +module com { module sun { module star { module configuration { +module backend { + +/** + Exception thrown when a connection to the underlying backend + cannot be established. + + <p> Examples of this include + <ul> + <li>Misconfigured backend.</li> + <li>Communications link failure.</li> + <li>Backend is unavailable temporarily or permanently.</li> + <li>Internal failure of the backend access layer.</li> + </ul> + </p> + + @since OOo 1.1.2 + */ +published exception CannotConnectException : BackendSetupException { +} ; + +} ; +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/ComponentChangeEvent.idl b/offapi/com/sun/star/configuration/backend/ComponentChangeEvent.idl new file mode 100644 index 000000000..52578dba3 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/ComponentChangeEvent.idl @@ -0,0 +1,46 @@ +/* -*- 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_configuration_backend_ComponentChangeEvent_idl__ +#define __com_sun_star_configuration_backend_ComponentChangeEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + +module com { module sun { module star { module configuration { module backend { + + +/** This event is fired when a change becomes effective on the source of the event + + @see XBackendChangesNotifier + + */ +struct ComponentChangeEvent: ::com::sun::star::lang::EventObject +{ + /** The name of the Component that changed + */ + string Component; + +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/ConnectionLostException.idl b/offapi/com/sun/star/configuration/backend/ConnectionLostException.idl new file mode 100644 index 000000000..18849c1ee --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/ConnectionLostException.idl @@ -0,0 +1,46 @@ +/* -*- 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_configuration_backend_ConnectionLostException_idl__ +#define __com_sun_star_configuration_backend_ConnectionLostException_idl__ + +#include <com/sun/star/configuration/backend/BackendAccessException.idl> + +module com { module sun { module star { module configuration { +module backend { + +/** + Exception thrown when the connection to the underlying backend was lost + irrecoverably. + + <p> Any future attempts to access data from the backend through this object + will also fail. + </p> + + @since OOo 1.1.2 + */ +published exception ConnectionLostException : BackendAccessException { +} ; + +} ; +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/CopyImporter.idl b/offapi/com/sun/star/configuration/backend/CopyImporter.idl new file mode 100644 index 000000000..68bfae8e7 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/CopyImporter.idl @@ -0,0 +1,72 @@ +/* -*- 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_configuration_backend_CopyImporter_idl__ +#define __com_sun_star_configuration_backend_CopyImporter_idl__ + +#include <com/sun/star/configuration/backend/Importer.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + imports data into a configuration layer by copying over existing data. + + + @since OOo 1.1.2 +*/ +published service CopyImporter +{ + + /** allows importing configuration data into a backend. + + <p> In this implementation, the changes are copied over any + XLayer data that already exists in the Backend, + replacing it completely. + </p> + */ + service Importer ; + + + /** allows initializing the implementation with settings that control + its behavior . + + <p> This interface, which is optional in Importer + is mandatory in this service and supports the following arguments + which must be provided as + com::sun::star::beans::NamedValue: + <dl> + <dt><code>Overwrite</code> : `boolean`</dt> + <dd>If `FALSE`, specifies that the data should be applied + only if the existing layer is empty. + </dd> + </dl> + </p> + */ + interface com::sun::star::lang::XInitialization ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/DataImporter.idl b/offapi/com/sun/star/configuration/backend/DataImporter.idl new file mode 100644 index 000000000..3a1b0aaf3 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/DataImporter.idl @@ -0,0 +1,114 @@ +/* -*- 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_configuration_backend_DataImporter_idl__ +#define __com_sun_star_configuration_backend_DataImporter_idl__ + +#include <com/sun/star/task/XJob.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + allows importing data from one configuration repository into another. + + @since OOo 1.1.2 +*/ +published service DataImporter +{ + + /** allows running an import job + + <p> The source and destination repositories are selected by arguments + passed to + com::sun::star::task::XJob::execute(). + The names and meanings of such arguments depend on + the implementation. Each implementation must document such arguments. + </p> + + <p> Implementations may return a value from + com::sun::star::task::XJob::execute() + that indicates the status of job execution. The type and meaning of + such status indicators depend on the implementation. + </p> + <p>If `VOID` or `TRUE` is returned, this indicates successful + execution. If an + com::sun::star::uno::Exception is returned, + it represents an error condition encountered during execution. + </p> + + <p> The following arguments to + com::sun::star::task::XJob::execute() + should be supported by implementations. Implementations must document + a failure to support any of these arguments: + <dl> + <dt><code>ImporterService</code> : `string`</dt> + <dd>A service or implementation name used to instantiate the + Importer to use for importing. If this parameter + is missing, the implementation selects an appropriate importer. + By default, a MergeImporter should be used. + </dd> + <dt><code>OverwriteExisting</code> : `boolean`</dt> + <dd>If `TRUE`, specifies that no existing data should be + overwritten by the import. If the Importer used + does not support such protection, an error may be raised. + If some data is not imported, because there is existing + data, this is indicated by returning an appropriate exception. + </dd> + <dt><code>TruncateExisting</code> : `boolean`</dt> + <dd>If `TRUE`, specifies that existing data should be + discarded and replaced by the imported data. + If the Importer used does not support this + operation, an error may be raised. + By default, a CopyImporter is used to perform + truncating import. + </dd> + <dt><code>Entity</code> : `string`</dt> + <dd>An identifier for the entity in the destination backend for + which the imported data should apply. The value will be passed + to XLayerImporter::importLayerForEntity(). + If this parameter is missing, the implementation uses + XLayerImporter::importLayer() instead. + </dd> + <dt><code>Component</code> : `string`</dt> + <dd>Names the component for which to import data. If this + parameter is missing, the selection of data to import depends + on implementation-specific parameters. + </dd> + <dt><code>LayerFilter</code> : LayerFilter</dt> + <dd>A filter to transform data during import. This parameter is + optional. If this parameter is missing, data will be imported + unaltered. <em>Support for this parameter is optional.</em> + If the implementation does not support a filter it will raise an + com::sun::star::lang::IllegalArgumentException. + </dd> + </dl> + </p> + + */ + interface com::sun::star::task::XJob ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/DefaultBackend.idl b/offapi/com/sun/star/configuration/backend/DefaultBackend.idl new file mode 100644 index 000000000..7135d6324 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/DefaultBackend.idl @@ -0,0 +1,51 @@ +/* -*- 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_configuration_backend_DefaultBackend_idl__ +#define __com_sun_star_configuration_backend_DefaultBackend_idl__ + +#include <com/sun/star/configuration/backend/Backend.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + is a DefaultBackend, that is + the default DefaultBackend for its + com::sun::star::uno::XComponentContext. + + <p>This object is accessible as singleton within the context</p>. + + @since OOo 1.1.2 +*/ +service DefaultBackend +{ + + /** characterizes the functionality. + */ + service Backend ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl b/offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl new file mode 100644 index 000000000..2bd96640d --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl @@ -0,0 +1,72 @@ +/* -*- 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_configuration_backend_HierarchyBrowser_idl__ +#define __com_sun_star_configuration_backend_HierarchyBrowser_idl__ + +#include <com/sun/star/task/XJob.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + allows scanning a configuration data repository for available components . + + @since OOo 1.1.2 +*/ +published service HierarchyBrowser +{ + + /** allows executing a scan of the repository + + <p> The repository to browse is selected by arguments passed to + com::sun::star::task::XJob::execute(). + The names and meanings of such arguments depend on + the implementation. Each implementation must document such arguments. + </p> + + <p> The following argument to + com::sun::star::task::XJob::execute() + must be supported by all implementations: + <dl> + <dt><code>ExcludeComponents</code> : `string[]` or `string`</dt> + <dd>A component or list of components that should be skipped + and excluded from the result. If this argument appears multiple + times it is handled cumulatively. + </dd> + </dl> + </p> + <p> The return value of + com::sun::star::task::XJob::execute() + is a list of components found. The format in which components are + returned may depend on the implementation. Each implementation + should support returning component identifiers that are compatible + with some implementation of Backend. + </p> + */ + interface com::sun::star::task::XJob ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/Importer.idl b/offapi/com/sun/star/configuration/backend/Importer.idl new file mode 100644 index 000000000..8ea23576b --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/Importer.idl @@ -0,0 +1,70 @@ +/* -*- 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_configuration_backend_Importer_idl__ +#define __com_sun_star_configuration_backend_Importer_idl__ + +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/configuration/backend/XLayerImporter.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + imports data into a configuration layer. + + <p> The configuration changes are read from a XLayer + and stored into a Backend. + </p> + + @since OOo 1.1.2 +*/ +published service Importer +{ + + /** allows importing configuration data into a backend. + */ + interface XLayerImporter ; + + + /** allows initializing the implementation with settings that control + its behavior . + + <p> Arguments are provided as + com::sun::star::beans::NamedValue. + Implementations specify which arguments they support. + + <dl> + <dt><code>Notify</code> : `boolean`</dt> + <dd>If `TRUE`, specifies that the backend should trigger + notification to its listeners. + </dd> + </dl> + </p> + */ + [optional] interface com::sun::star::lang::XInitialization ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/InsufficientAccessRightsException.idl b/offapi/com/sun/star/configuration/backend/InsufficientAccessRightsException.idl new file mode 100644 index 000000000..ac056efc4 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/InsufficientAccessRightsException.idl @@ -0,0 +1,52 @@ +/* -*- 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_configuration_backend_InsufficientAccessRightsException_idl__ +#define __com_sun_star_configuration_backend_InsufficientAccessRightsException_idl__ + +#include <com/sun/star/configuration/backend/BackendAccessException.idl> + +module com { module sun { module star { module configuration { +module backend { + +/** + Exception thrown when access to the underlying backend fails because of + insufficient access rights to some needed resource. + + <p> Examples of this include + <ul> + <li>Misconfigured anonymous access.</li> + <li>Missing rights to get internal configuration data.</li> + <li>Missing access to shared or default data.</li> + <li>Missing access to personal data.</li> + <li>Missing write access when updating data.</li> + </ul> + </p> + + @since OOo 1.1.2 + */ +published exception InsufficientAccessRightsException : BackendAccessException { +} ; + +} ; +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/InteractionHandler.idl b/offapi/com/sun/star/configuration/backend/InteractionHandler.idl new file mode 100644 index 000000000..f7e9d16cb --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/InteractionHandler.idl @@ -0,0 +1,93 @@ +/* -*- 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_configuration_backend_InteractionHandler_idl__ +#define __com_sun_star_configuration_backend_InteractionHandler_idl__ + +module com { module sun { module star { + module lang { published interface XInitialization; }; + module task { published interface XInteractionHandler; }; +}; }; }; + +module com { module sun { module star { module configuration { module backend { + +/** An interaction request handler that lets the user handle a number of well + known requests via GUI dialogs. + + <P>The well known requests handled by this service include + <UL> + <LI>MergeRecoveryRequest*</LI> + </UL> + The requests marked with an asterisk are only handled if (a) their + continuations match certain restrictions (see below), and (b) the + necessary resource strings are available (this can be exploited by + applications that carry only a subset of all resource files with + them).</P> + + <P>The continuation restrictions are as follows: Let <VAR>C</VAR> be the + subset of the provided continuations that are of type + com::sun::star::task::XInteractionApprove, + com::sun::star::task::XInteractionDisapprove, + com::sun::star::task::XInteractionRetry, or + com::sun::star::task::XInteractionAbort (or of a + derived type). All other continuations are ignored for these requests. + The request is only handled if the set <VAR>C</VAR> is any of the + following: + <UL> + <LI>Abort</LI> + <LI>Retry, Abort</LI> + <LI>Approve</LI> + <LI>Approve, Abort</LI> + <LI>Approve, Disapprove</LI> + <LI>Approve, Disapprove, Abort</LI> + </UL></P> + + @since OOo 2.0 + + @see com::sun::star::task::InteractionHandler + */ +published service InteractionHandler +{ + /** Handle an interaction request. + */ + interface com::sun::star::task::XInteractionHandler; + + /** Initialize the interaction handler. + + <P>The arguments must be a sequence of + com::sun::star::beans::PropertyValues. The + currently supported properties are: + <UL> + <LI><code>"Parent"</code> of type + com::sun::star::awt::XWindow denotes the + parent window for any GUI dialogs the interaction handler pops up; + it is strongly recommended that this property is supplied;</LI> + <LI><code>"Context"</code> of type `string` is a + textual description of the current context (used, e.g., as a first + line of text in error boxes); this property is optional.</LI> + </UL></P> + */ + interface com::sun::star::lang::XInitialization; +}; + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/InvalidAuthenticationMechanismException.idl b/offapi/com/sun/star/configuration/backend/InvalidAuthenticationMechanismException.idl new file mode 100644 index 000000000..475d0ccf3 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/InvalidAuthenticationMechanismException.idl @@ -0,0 +1,43 @@ +/* -*- 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_configuration_backend_InvalidAuthenticationMechanismException_idl__ +#define __com_sun_star_configuration_backend_InvalidAuthenticationMechanismException_idl__ + +#include <com/sun/star/configuration/backend/BackendSetupException.idl> + +module com { module sun { module star { module configuration { +module backend { + +/** + Exception thrown when authentication to the underlying backend fails + because the configured authentication mechanism is not supported by the + backend or no valid mechanism can be negotiated. + + @since OOo 1.1.2 + */ +published exception InvalidAuthenticationMechanismException : BackendSetupException { +} ; + +} ; +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/Layer.idl b/offapi/com/sun/star/configuration/backend/Layer.idl new file mode 100644 index 000000000..8520bbbfa --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/Layer.idl @@ -0,0 +1,94 @@ +/* -*- 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_configuration_backend_Layer_idl__ +#define __com_sun_star_configuration_backend_Layer_idl__ + +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/configuration/backend/XCompositeLayer.idl> +#include <com/sun/star/util/XTimeStamped.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides read-only access to a configuration data layer. + + <p> A layer contains the configuration setting changes to be performed + on a default settings tree to obtain the values of those settings + for a given entity and component. + </p> + + @see com::sun::star::configuration::backend::Schema + Service providing access to schema data for a configuration component. + + @see com::sun::star::configuration::backend::UpdatableLayer + Service providing write access to a configuration data layer. + + @since OOo 1.1.2 + */ +published service Layer +{ + + /** + provides read access to the contents of the configuration layer. + */ + interface XLayer ; + + + /** + provides read access to sublayers accessible through an + additional criterion (for instance the locale they contain data for). + */ + [optional] interface XCompositeLayer ; + + + /** + provides a way to detect changes to the layer. + + <p> Timestamps should be considered as opaque markers and + can only safely be compared for equality and + only to timestamps generated by the same implementation. + When the content of the Layer changes, + the timestamp is guaranteed to change to a different value. + </p> + <p> The timestamp format depends on the implementation. + If the timestamp is a representation of the time of the last change, + the recommended format is "YYYYMMDDhhmmssZ". + </p> + */ + [optional] interface com::sun::star::util::XTimeStamped ; + + + /** + The URL of the layer data. + + @since OOo 2.0 + */ + [property,optional,readonly] string URL ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LayerDescriber.idl b/offapi/com/sun/star/configuration/backend/LayerDescriber.idl new file mode 100644 index 000000000..da89b4254 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LayerDescriber.idl @@ -0,0 +1,52 @@ +/* -*- 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_configuration_backend_LayerDescriber_idl__ +#define __com_sun_star_configuration_backend_LayerDescriber_idl__ + +#include <com/sun/star/configuration/backend/XLayerContentDescriber.idl> +#include <com/sun/star/uno/XInterface.idl> + + + + +module com { module sun { module star { module configuration { module backend { + + +/** + describe the contents of a layer to an XLayerHandler object. The contents of + the layer is contained in the sequence of PropertyInfo structures + @see PropertyInfo + +*/ +service LayerDescriber +{ + + + /** + describes a set of configuration data to an XLayerHandler Object. + */ + interface com::sun::star::configuration::backend::XLayerContentDescriber ; + + +} ; +} ; } ; } ; } ; } ; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LayerFilter.idl b/offapi/com/sun/star/configuration/backend/LayerFilter.idl new file mode 100644 index 000000000..1e68cdb93 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LayerFilter.idl @@ -0,0 +1,76 @@ +/* -*- 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_configuration_backend_LayerFilter_idl__ +#define __com_sun_star_configuration_backend_LayerFilter_idl__ + +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides a filtered version of a configuration data Layer. + + <p> A layer filter wraps a source XLayer object and + provides access to a filtered version of its data. + The data read from the filter usually is produced from the source data + by adding and removing elements or modifying values. + </p> + + @see com::sun::star::configuration::backend::DataImporter + Service that supports applying a LayerFilter to imported data. + + @since OOo 2.0 + */ +published service LayerFilter +{ + + /** + provides read access to the filtered contents. + + <p> Method XLayer::readData() will render a filtered version + of the data produced by the same method of the source object. + </p> + */ + interface XLayer ; + + + /** + provides a means to set the source data for the filter. + + <p> Call com::sun::star::lang::XInitialization::initialize()() + with a single argument of type com::sun::star::beans::NamedValue, + where com::sun::star::beans::NamedValue::Name is <code>"Source"</code> + and com::sun::star::beans::NamedValue::Value + is an object implementing XLayer. + </p> + */ + interface com::sun::star::lang::XInitialization ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LayerUpdateMerger.idl b/offapi/com/sun/star/configuration/backend/LayerUpdateMerger.idl new file mode 100644 index 000000000..6ddbf686d --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LayerUpdateMerger.idl @@ -0,0 +1,84 @@ +/* -*- 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_configuration_backend_LayerUpdateMerger_idl__ +#define __com_sun_star_configuration_backend_LayerUpdateMerger_idl__ + +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/configuration/backend/XUpdateHandler.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + applies updates to a configuration layer. + + <p> The configuration layer data is read from a XLayer + and the changed layer is provided as XLayer again or + described to a XLayerHandler. + </p> + + @see com::sun::star::configuration::backend::UpdatableLayer + Service describes a layer and accepts a changed layer... + + @since OOo 1.1.2 +*/ +published service LayerUpdateMerger +{ + + /** accepts events describing the changes. + */ + interface com::sun::star::configuration::backend::XUpdateHandler ; + + + /** allows initializing layer data source and target. + + <p> Both source and target of the update can be provided by passing a + XUpdatableLayer object. Alternatively they can be + provided individually by providing a XLayer object as + data source and an XLayerHandler object to receive the + updated data. + </p> + <p> Implementations can provide more arguments to fine tune the behavior. + Such arguments are provided as + com::sun::star::beans::NamedValue. + Implementations should support the following named arguments: + <dl> + <dt><code>Overwrite</code> : `boolean`</dt> + <dd>If `FALSE`, specifies that changes should be applied + only if the existing layer is empty. + </dd> + <dt><code>Truncate</code> : `boolean`</dt> + <dd>If `TRUE` requests that changes should not be merged onto + existing data, but that the changes should be applied + to a layer that is completely empty. + </dd> + </dl> + </p> + */ + interface com::sun::star::lang::XInitialization ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LdapMultiLayerStratum.idl b/offapi/com/sun/star/configuration/backend/LdapMultiLayerStratum.idl new file mode 100644 index 000000000..074034cad --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LdapMultiLayerStratum.idl @@ -0,0 +1,47 @@ +/* -*- 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_configuration_backend_LdapMultiLayerStratum_idl__ +#define __com_sun_star_configuration_backend_LdapMultiLayerStratum_idl__ + +#include <com/sun/star/configuration/backend/MultiLayerStratum.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements MultiLayerStratum that + provides access to a multiple layers of configuration data from LDAP source +*/ +service LdapMultiLayerStratum +{ + + /** + provides access to multiple layers of configuration data. + */ + service MultiLayerStratum; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LdapSingleBackend.idl b/offapi/com/sun/star/configuration/backend/LdapSingleBackend.idl new file mode 100644 index 000000000..c39e06333 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LdapSingleBackend.idl @@ -0,0 +1,48 @@ +/* -*- 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_configuration_backend_LdapSingleBackend_idl__ +#define __com_sun_star_configuration_backend_LdapSingleBackend_idl__ + +#include <com/sun/star/configuration/backend/SingleBackend.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements SingleBackend that stores data in an + LDAP directory. + + @since OOo 1.1.2 +*/ +published service LdapSingleBackend +{ + + /** provides access to configuration data. + */ + service SingleBackend ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LdapSingleStratum.idl b/offapi/com/sun/star/configuration/backend/LdapSingleStratum.idl new file mode 100644 index 000000000..db95e6676 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LdapSingleStratum.idl @@ -0,0 +1,47 @@ +/* -*- 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_configuration_backend_LdapSingleStratum_idl__ +#define __com_sun_star_configuration_backend_LdapSingleStratum_idl__ + +#include <com/sun/star/configuration/backend/SingleLayerStratum.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements SingleLayerStratum that + provides access to a single layer of configuration data from LDAP source +*/ +service LdapSingleStratum +{ + + /** + provides access to configuration data. + */ + service SingleLayerStratum; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LocalDataImporter.idl b/offapi/com/sun/star/configuration/backend/LocalDataImporter.idl new file mode 100644 index 000000000..a3b2bdd3e --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LocalDataImporter.idl @@ -0,0 +1,98 @@ +/* -*- 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_configuration_backend_LocalDataImporter_idl__ +#define __com_sun_star_configuration_backend_LocalDataImporter_idl__ + +#include <com/sun/star/configuration/backend/DataImporter.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + allows importing data from a local configuration data repository + or file into any Backend. + + <p> Data to be imported can be a single layer either from a full local + configuration database or from a particular OOR Update XML file. + </p> + <p> Data is imported into the DefaultBackend. + </p> + + @see com::sun::star::configuration::backend::LocalHierarchyBrowser + Service that can be used to locate available layer files or components. + + @see com::sun::star::configuration::backend::LocalSingleBackend + Service that can be used to access a local configuration database. + + @since OOo 1.1.2 +*/ +published service LocalDataImporter +{ + + /** provides for running an import job + + <p> The implementation returns `VOID` from + com::sun::star::task::XJob::execute() + to indicates successful execution. If import is not executed, + because <code>OverwriteExisting = </code>`TRUE` was specified, + a com::sun::star::lang::IllegalAccessException + is returned. + </p> + <p>If `VOID` or `TRUE` is returned, this indicates successful + execution. If an + com::sun::star::uno::Exception is returned, + it represents an error condition encountered during execution. + </p> + + <p> The standard arguments to + com::sun::star::task::XJob::execute() + are all supported by implementations. Additionally the following + argument is required to select the data source: + <dl> + <dt><code>LayerDataUrl</code> : `string`</dt> + <dd>A file URL that specifies the location of the source data. + <p> If no <code>Component</code> is provided, this must be the + location of an OOR Update XML file, which will be imported + directly. + </p> + <p> If a <code>Component</code> is provided, the + <code>LayerDataUrl</code> is treated as Entity + (i.e. Layer directory base URL) for a local + configuration database and the appropriate component + from that repository is imported. + </p> + </dd> + </dl> + </p> + <p> Implementations may support additional parameters to select + a destination Backend, that is not the + DefaultBackend. + </p> + */ + service DataImporter ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.idl b/offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.idl new file mode 100644 index 000000000..e097f21df --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.idl @@ -0,0 +1,79 @@ +/* -*- 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_configuration_backend_LocalHierarchyBrowser_idl__ +#define __com_sun_star_configuration_backend_LocalHierarchyBrowser_idl__ + +#include <com/sun/star/configuration/backend/HierarchyBrowser.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + is a HierarchyBrowser, that browses a configuration database + stored in the local file system. + + @see com::sun::star::configuration::backend::LocalSingleBackend + + @since OOo 1.1.2 +*/ +published service LocalHierarchyBrowser +{ + + /** allows browsing a configuration hierarchy for components. + + <p> Either a schema repository or a layer directory can be browsed. + Components can be retrieved either as component names or as + file URLs. + </p> + + <p> The following additional arguments are supported for + com::sun::star::task::XJob::execute():<BR/> + + <dl> + <dt><code>SchemaDataUrl</code> : `string`</dt> + <dd>Base directory to search for schema files. + If this is specified, schema files will be browsed, + so argument <code>LayerDataUrl</code> should not be specified. + </dd> + <dt><code>LayerDataUrl</code> : `string`</dt> + <dd>Base directory to search for layer files. + If this is specified, layer files will be browsed, + so argument <code>SchemaDataUrl</code> should not be specified. + </dd> + <dt><code>FetchComponentNames</code> : `boolean`</dt> + <dd><ul><li>if `TRUE` components will be returned as component names,</li> + <li>if `FALSE` components will be returned as fileURLs,</li> + <li>if this argument is not provided, the default is to + retrieve names when browsing schemas and URLs when + browsing layers.</li> + </dd> + </dl> + </p> + */ + service HierarchyBrowser ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LocalSchemaSupplier.idl b/offapi/com/sun/star/configuration/backend/LocalSchemaSupplier.idl new file mode 100644 index 000000000..9ccb60363 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LocalSchemaSupplier.idl @@ -0,0 +1,48 @@ +/* -*- 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_configuration_backend_LocalSchemaSupplier_idl__ +#define __com_sun_star_configuration_backend_LocalSchemaSupplier_idl__ + +#include <com/sun/star/configuration/backend/SchemaSupplier.idl> + + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements SchemaSupplier providing access to + local configuration schemas +*/ +service LocalSchemaSupplier +{ + /** + provides access to configuration schemas. + */ + service SchemaSupplier ; + + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LocalSingleBackend.idl b/offapi/com/sun/star/configuration/backend/LocalSingleBackend.idl new file mode 100644 index 000000000..97a4b883c --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LocalSingleBackend.idl @@ -0,0 +1,48 @@ +/* -*- 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_configuration_backend_LocalSingleBackend_idl__ +#define __com_sun_star_configuration_backend_LocalSingleBackend_idl__ + +#include <com/sun/star/configuration/backend/SingleBackend.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements SingleBackend that stores data in the + local file system using the OOR XML formats. + + @since OOo 1.1.2 +*/ +published service LocalSingleBackend +{ + + /** provides access to configuration data. + */ + service SingleBackend ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LocalSingleStratum.idl b/offapi/com/sun/star/configuration/backend/LocalSingleStratum.idl new file mode 100644 index 000000000..552ee7d5f --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LocalSingleStratum.idl @@ -0,0 +1,47 @@ +/* -*- 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_configuration_backend_LocalSingleStratum_idl__ +#define __com_sun_star_configuration_backend_LocalSingleStratum_idl__ + +#include <com/sun/star/configuration/backend/SingleLayerStratum.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements SingleLayerStratum that + provides access to a single layer of configuration data from local file system +*/ +service LocalSingleStratum +{ + + /** + provides access to configuration data. + */ + service SingleLayerStratum; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/MalformedDataException.idl b/offapi/com/sun/star/configuration/backend/MalformedDataException.idl new file mode 100644 index 000000000..b4174d3c3 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/MalformedDataException.idl @@ -0,0 +1,80 @@ +/* -*- 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_configuration_backend_MalformedDataException_idl__ +#define __com_sun_star_configuration_backend_MalformedDataException_idl__ + +#include <com/sun/star/uno/Exception.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** is raised when the data of a component schema, layer or update + is not well-formed, violates the schema or is otherwise invalid. + + @since OOo 1.1.2 + */ +published exception MalformedDataException: ::com::sun::star::uno::Exception +{ + /** + data that provides more detailed information about the + reason and location of the error. + + <p> Typically this member should contain an exception characterizing + the error in detail. + </p> + <p> For example the following exceptions may be used: + <dl> + <dt>com::sun::star::container::ElementExistException</dt> + <dd>for duplicate nodes.</dd> + + <dt>com::sun::star::container::NoSuchElementException</dt> + <dd>for nodes that are not in the schema.</dd> + + <dt>com::sun::star::beans::IllegalTypeException</dt> + <dd>for properties having the wrong or an invalid type.</dd> + + <dt>com::sun::star::beans::PropertyExistException</dt> + <dd>for duplicate properties.</dd> + + <dt>com::sun::star::beans::UnknownPropertyException</dt> + <dd>for properties that are not in the schema.</dd> + + <dt>com::sun::star::lang::IllegalArgumentException</dt> + <dd>for data values (names,attributes,etc.) that are invalid.</dd> + + <dt>com::sun::star::lang::IllegalAccessException</dt> + <dd>for changes that violate access restrictions.</dd> + + <dt>com::sun::star::lang::NoSupportException</dt> + <dd>for features that are not supported by the current implementation.</dd> + </dl> + </p> + <p> If no more detail information is available, this may be left `VOID`. + </p> + */ + any ErrorDetails; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/MergeImporter.idl b/offapi/com/sun/star/configuration/backend/MergeImporter.idl new file mode 100644 index 000000000..e9deb915e --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/MergeImporter.idl @@ -0,0 +1,61 @@ +/* -*- 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_configuration_backend_MergeImporter_idl__ +#define __com_sun_star_configuration_backend_MergeImporter_idl__ + +#include <com/sun/star/configuration/backend/Importer.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + imports data into a configuration layer by merging with existing data. + + <p> No named arguments to + com::sun::star::lang::XInitialization::initialize() + are supported. + </p> + + @since OOo 1.1.2 +*/ +published service MergeImporter +{ + + /** allows importing configuration data into a backend. + + <p> In this implementation, the changes are merged with any + XLayer data that already exists in the Backend, + replacing it completely. + </p> + + @see LayerUpdateMerger + Service that can be used to perform merging of changes into a layer. + */ + service Importer ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl b/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl new file mode 100644 index 000000000..569c4a338 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl @@ -0,0 +1,79 @@ +/* -*- 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_configuration_backend_MergeRecoveryRequest_idl__ +#define __com_sun_star_configuration_backend_MergeRecoveryRequest_idl__ + +#include <com/sun/star/uno/Exception.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** is passed to an InteractionHandler when merging fails due to + invalid layer data or access problems. + + @since OOo 2.0 + */ +exception MergeRecoveryRequest: ::com::sun::star::uno::Exception +{ + /** + data that provides more detailed information about the + reason and location of the error. + + <p> Typically this member should contain an exception characterizing + the error in detail. + </p> + <p> For example the following exceptions may be used: + <dl> + <dt>MalformedException</dt> + <dd>for layers containing invalid data.</dd> + + <dt>BackendAccessException</dt> + <dd>for layers that can't be accessed.</dd> + </dl> + </p> + <p> If no more detail information is available, this may be left `VOID`. + </p> + */ + any ErrorDetails; + + /** + Identifier of the layer object containing the invalid data. + */ + string ErrorLayerId; + + /** + specifies whether the requester wants to remove or skip the invalid layer. + + <p> If `TRUE` the requester wants to remove the underlying data of + the layer.<BR/> + If `FALSE` the request is to skip the underlying data this time, + but without removing it. + </p> + */ + boolean IsRemovalRequest; + +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/MultiLayerStratum.idl b/offapi/com/sun/star/configuration/backend/MultiLayerStratum.idl new file mode 100644 index 000000000..6081c77b2 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/MultiLayerStratum.idl @@ -0,0 +1,55 @@ +/* -*- 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_configuration_backend_MultiLayerStratum_idl__ +#define __com_sun_star_configuration_backend_MultiLayerStratum_idl__ + +#include <com/sun/star/configuration/backend/XBackendEntities.idl> +#include <com/sun/star/configuration/backend/XMultiLayerStratum.idl> + + + +module com { module sun { module star { module configuration { module backend { + + +/** + Provides access to a single layer of configuration data +*/ +service MultiLayerStratum +{ + /** + provides access to multiple layers of configuration data . + */ + interface XMultiLayerStratum ; + + + + /** + provides information about supported and special entities. + */ + [optional] interface XBackendEntities ; + + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/MultiStratumBackend.idl b/offapi/com/sun/star/configuration/backend/MultiStratumBackend.idl new file mode 100644 index 000000000..50200b76c --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/MultiStratumBackend.idl @@ -0,0 +1,60 @@ +/* -*- 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_configuration_backend_MultiStratumBackend_idl__ +#define __com_sun_star_configuration_backend_MultiStratumBackend_idl__ + +#include <com/sun/star/configuration/backend/Backend.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements Backend provides access to a configuration database + composed of one or more storage backends containing settings used by software modules. +*/ +service MultiStratumBackend +{ + + /** characterizes the functionality. + */ + service Backend ; + + + /** + allows initialization of backend data sources + + <p>If present a type + com::sun::star::configuration::bootstrap::BootstrapContext + must be passed, that provides further backend initialization settings. + </p> + + + */ + + [optional] interface com::sun::star::lang::XInitialization ; + +} ; + + +} ; } ; } ; } ; } ; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/NodeAttribute.idl b/offapi/com/sun/star/configuration/backend/NodeAttribute.idl new file mode 100644 index 000000000..44eea3eea --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/NodeAttribute.idl @@ -0,0 +1,85 @@ +/* -*- 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_configuration_backend_NodeAttribute_idl__ +#define __com_sun_star_configuration_backend_NodeAttribute_idl__ + + +module com { module sun { module star { module configuration { module backend { + + +/** These values are used to specify the behavior of a node or property + in a layer. + + <p> The values were chosen so they can be combined with values from + SchemaAttribute + </p> + + @see com::sun::star::configuration::backend::SchemaAttribute + During merging the values may be combined with static attributes + from the schema. + + @since OOo 1.1.2 + */ +published constants NodeAttribute +{ + + /** indicates that a node or property may not be changed or overridden + in subsequent layers + */ + const short FINALIZED = 256; + + + /** indicates that a set item may not be removed or replaced + in subsequent layers. + */ + const short MANDATORY = 512; + + + /** indicates that a node or property may not be changed + in this or subsequent layer. + */ + const short READONLY = 1024; + + + /** indicates that contents shall be fused. + + <p>Used in XLayerHandler::addOrReplaceNode(), + XLayerHandler::addOrReplaceNodeFromTemplate(), + XUpdateHandler::addOrReplaceNode(), and + XUpdateHandler::addOrReplaceNodeFromTemplate().</p> + + @since OOo 2.0.3 + */ + const short FUSE = 2048; + + + /** can be used to mask the node attributes from merged attributes + */ + const short MASK = 32512; // 0xFF00, changed to 0x7F00 because only 3 bits + // are masked and fixing a bug in idlc + +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/OfflineBackend.idl b/offapi/com/sun/star/configuration/backend/OfflineBackend.idl new file mode 100644 index 000000000..4d7a5181d --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/OfflineBackend.idl @@ -0,0 +1,65 @@ +/* -*- 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_configuration_backend_OfflineBackend_idl__ +#define __com_sun_star_configuration_backend_OfflineBackend_idl__ + +#include <com/sun/star/configuration/backend/BackendAdapter.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements BackendAdapter that maintains a cache so it + can operate even if the SingleBackend holding the data + is inaccessible. + + @see com::sun::star::configuration::backend::OnlineBackend + + @since OOo 1.1.2 +*/ +published service OfflineBackend +{ + + /** provides access to configuration data from a SingleBackend. + + <p>If no backend is provided during initialization or if the context + contains an <code>Offline</code> flag that is `TRUE`, then off-line mode + is activated. This may fail, if the off-line cache has not been filled + during a previous execution. + </p> + <p>Less entities may be available from XBackendEntities, + when operating in off-line mode than when operating with an on-line + SingleBackend. + </p> + <p>If off-line mode is not invoked, the implementation behaves + like any other BackendAdapter. + </p> + + */ + service BackendAdapter ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/OnlineBackend.idl b/offapi/com/sun/star/configuration/backend/OnlineBackend.idl new file mode 100644 index 000000000..9822ae5ba --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/OnlineBackend.idl @@ -0,0 +1,52 @@ +/* -*- 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_configuration_backend_OnlineBackend_idl__ +#define __com_sun_star_configuration_backend_OnlineBackend_idl__ + +#include <com/sun/star/configuration/backend/BackendAdapter.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements a BackendAdapter that requires that + the SingleBackend holding the data + is continuously accessible. + + @see com::sun::star::configuration::backend::OfflineBackend + + @since OOo 1.1.2 +*/ +published service OnlineBackend +{ + + /** provides access to configuration data from a SingleBackend. + + */ + service BackendAdapter ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/PlatformBackend.idl b/offapi/com/sun/star/configuration/backend/PlatformBackend.idl new file mode 100644 index 000000000..4b6b14857 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/PlatformBackend.idl @@ -0,0 +1,47 @@ +/* -*- 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_configuration_backend_PlatformBackend_idl__ +#define __com_sun_star_configuration_backend_PlatformBackend_idl__ + +#include <com/sun/star/configuration/backend/SingleLayerStratum.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements SingleLayerStratum that + provides access to a single layer of configuration data from external data store +*/ +service PlatformBackend +{ + + /** + provides access to configuration data. + */ + service SingleLayerStratum; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/PropertyInfo.idl b/offapi/com/sun/star/configuration/backend/PropertyInfo.idl new file mode 100644 index 000000000..02e4672e4 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/PropertyInfo.idl @@ -0,0 +1,59 @@ +/* -*- 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_configuration_backend_PropertyInfo_idl__ +#define __com_sun_star_configuration_backend_PropertyInfo_idl__ + + + +module com { module sun { module star { module configuration { module backend { + + +/** This structure contains all the information related to a property + @see XLayerContentDescriber +*/ +struct PropertyInfo +{ + /** The full name of the Property + * for eg. org.openoffice.Inet/Settings/ooInetHTTPProxyName + */ + string Name; + + /** The type of the Property + */ + string Type; + + /** The value of the property + */ + any Value; + + /** Is the property protected, if true the property can not + * be over written in later layer. + */ + boolean Protected; + + +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/Schema.idl b/offapi/com/sun/star/configuration/backend/Schema.idl new file mode 100644 index 000000000..58bad6f00 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/Schema.idl @@ -0,0 +1,72 @@ +/* -*- 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_configuration_backend_Schema_idl__ +#define __com_sun_star_configuration_backend_Schema_idl__ + +#include <com/sun/star/configuration/backend/XSchema.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides read only access to a configuration component schema. + + <p>A component is a set of hierarchically organized and semantically + related configuration settings, e.g StarWriter settings. + </p> + <p>A component schema contains two separate sections, one which + describes the templates to be used in the dynamic containers (sets) of + the component and one which describes the component's data structure. + </p> + + @see com::sun::star::configuration::backend::Layer + Service providing access to individual + configuration data for an entity. + + @since OOo 1.1.2 + */ +published service Schema +{ + + /** + handles access to the schema data for a component. + <p>The data can be read either in its entirety (templates and component + description) or each of its parts can be accessed. + </p> + */ + interface XSchema ; + + + /** + The URL of the layer data. + + @since OOo 2.0 + */ + [property,optional,readonly] string URL ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SchemaAttribute.idl b/offapi/com/sun/star/configuration/backend/SchemaAttribute.idl new file mode 100644 index 000000000..dbbf4ebe4 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SchemaAttribute.idl @@ -0,0 +1,65 @@ +/* -*- 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_configuration_backend_SchemaAttribute_idl__ +#define __com_sun_star_configuration_backend_SchemaAttribute_idl__ + + +module com { module sun { module star { module configuration { module backend { + + +/** These values are used to specify the behavior of a node or property + in the schema. + + @see com::sun::star::configuration::backend::NodeAttribute + During merging the values may be combined with node attributes. + + @since OOo 1.1.2 + */ +published constants SchemaAttribute +{ + + /** indicates that a property value can't be null. + */ + const short REQUIRED = 1; + + + /** indicates that the content of the node or the value of the property + may depend on the locale. + */ + const short LOCALIZED = 2; + + + /** indicates that properties can be added to the node at runtime + */ + const short EXTENSIBLE = 4; + + + /** can be used to mask the schema attributes from merged attributes + */ + const short MASK = 255; // 0x00FF + +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SchemaSupplier.idl b/offapi/com/sun/star/configuration/backend/SchemaSupplier.idl new file mode 100644 index 000000000..d43d4144c --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SchemaSupplier.idl @@ -0,0 +1,47 @@ +/* -*- 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_configuration_backend_SchemaSupplier_idl__ +#define __com_sun_star_configuration_backend_SchemaSupplier_idl__ + +#include <com/sun/star/configuration/backend/XSchemaSupplier.idl> + + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to configuration schemas +*/ +service SchemaSupplier +{ + /** + provides access to configuration schemas. + */ + interface XSchemaSupplier ; + + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SingleBackend.idl b/offapi/com/sun/star/configuration/backend/SingleBackend.idl new file mode 100644 index 000000000..218fe3854 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SingleBackend.idl @@ -0,0 +1,80 @@ +/* -*- 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_configuration_backend_SingleBackend_idl__ +#define __com_sun_star_configuration_backend_SingleBackend_idl__ + +#include <com/sun/star/configuration/backend/XBackendEntities.idl> +#include <com/sun/star/configuration/backend/XSchemaSupplier.idl> +#include <com/sun/star/configuration/backend/XMultiLayerStratum.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + is a configuration storage backends containing a complete + configuration database, including user data, default or + policy layers and schemata. + + <p> Configuration data is organized into layers which are selected + by components and entities. + </p> + + <p> Components are characterized by configuration schemas. + A component contains configuration data for a particular + application domain or software module. + </p> + <p> Entities are organized hierarchically in organizations, + groups, roles and individual users. Each element of the associated + hierarchy corresponds to a layer that applies to an entity. + </p> + <p> Layers contains data for multiple components + associated to a single entity. + <p> + + @since OOo 1.1.2 +*/ +published service SingleBackend +{ + + /** + provides access to configuration schemas. + */ + interface XSchemaSupplier ; + + + /** + provides access to the layer data. + */ + interface XMultiLayerStratum ; + + + /** + provides information about supported and special entities. + */ + interface XBackendEntities ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SingleBackendAdapter.idl b/offapi/com/sun/star/configuration/backend/SingleBackendAdapter.idl new file mode 100644 index 000000000..da6ecb788 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SingleBackendAdapter.idl @@ -0,0 +1,52 @@ +/* -*- 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_configuration_backend_SingleBackendAdapter_idl__ +#define __com_sun_star_configuration_backend_SingleBackendAdapter_idl__ + +#include <com/sun/star/configuration/backend/BackendAdapter.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements a simple BackendAdapter that can be used for + normal configuration operation. + + <p>All real functionality is provided by the wrapped SingleBackend. + + @see com::sun::star::configuration::backend::OnlineBackend + + @since OOo 1.1.2 +*/ +published service SingleBackendAdapter +{ + + /** provides access to configuration data from a SingleBackend. + */ + service BackendAdapter ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SingleLayerStratum.idl b/offapi/com/sun/star/configuration/backend/SingleLayerStratum.idl new file mode 100644 index 000000000..b59deecbb --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SingleLayerStratum.idl @@ -0,0 +1,55 @@ +/* -*- 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_configuration_backend_SingleLayerStratum_idl__ +#define __com_sun_star_configuration_backend_SingleLayerStratum_idl__ + +#include <com/sun/star/configuration/backend/XBackendEntities.idl> +#include <com/sun/star/configuration/backend/XSingleLayerStratum.idl> + + + +module com { module sun { module star { module configuration { module backend { + + +/** + Provides access to a single layer of configuration data +*/ +service SingleLayerStratum +{ + /** + provides access to single layer of configuration data. + */ + interface XSingleLayerStratum ; + + + + /** + provides information about supported and special entities. + */ + [optional] interface XBackendEntities ; + + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/StratumCreationException.idl b/offapi/com/sun/star/configuration/backend/StratumCreationException.idl new file mode 100644 index 000000000..ce5a62714 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/StratumCreationException.idl @@ -0,0 +1,51 @@ +/* -*- 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_configuration_backend_StratumCreationException_idl__ +#define __com_sun_star_configuration_backend_StratumCreationException_idl__ + +#include <com/sun/star/configuration/backend/BackendSetupException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** is passed to an InteractionHandler when creating a stratum backend fails. + + @since OOo 2.0 + */ +exception StratumCreationException : BackendSetupException +{ + /** + Identifier of the stratum service that could not be created. + */ + string StratumService; + + /** + Initialization data passed to the stratum instance. + */ + string StratumData; + +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SystemIntegration.idl b/offapi/com/sun/star/configuration/backend/SystemIntegration.idl new file mode 100644 index 000000000..8ace0d125 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SystemIntegration.idl @@ -0,0 +1,56 @@ +/* -*- 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_configuration_backend_SystemIntegration_idl__ +#define __com_sun_star_configuration_backend_SystemIntegration_idl__ + +#include <com/sun/star/configuration/backend/Backend.idl> +#include <com/sun/star/lang/XInitialization.idl> + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to a configuration data composed of one or more + platform backends containing settings used by software modules. + + */ +service SystemIntegration +{ + /** + provides access to the layer data. + */ + interface XBackend ; + + /** + allows initialization of backend data sources + + <p>no parameters need to be passed as backends are initialized + using the service registration database "services.rdb". + </p> + + */ + + interface com::sun::star::lang::XInitialization ; +} ; + + +} ; } ; } ; } ; } ; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/TemplateIdentifier.idl b/offapi/com/sun/star/configuration/backend/TemplateIdentifier.idl new file mode 100644 index 000000000..17fe57ecc --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/TemplateIdentifier.idl @@ -0,0 +1,55 @@ +/* -*- 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_configuration_backend_TemplateIdentifier_idl__ +#define __com_sun_star_configuration_backend_TemplateIdentifier_idl__ + + + +module com { module sun { module star { module configuration { module backend { + + +/** holds the data needed to identify a template. + + @since OOo 1.1.2 + + */ +published struct TemplateIdentifier +{ + /** specifies the name of the template. + + <p>The name is unique within a component.</p> + */ + string Name; + + + /** specifies the component where the template originates. + + */ + string Component; + + +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/UpdatableLayer.idl b/offapi/com/sun/star/configuration/backend/UpdatableLayer.idl new file mode 100644 index 000000000..df9fff0f9 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/UpdatableLayer.idl @@ -0,0 +1,109 @@ +/* -*- 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_configuration_backend_UpdatableLayer_idl__ +#define __com_sun_star_configuration_backend_UpdatableLayer_idl__ + +#include <com/sun/star/configuration/backend/Layer.idl> +#include <com/sun/star/configuration/backend/XUpdatableLayer.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides read/write access to a configuration data layer. + + <p>A layer contains the configuration setting changes to be performed + on a default layer (or schema) to obtain the values of those settings + for a given entity and component. + </p> + <p>An updatable layer can be read or replaced with another layer. + </p> + + @since OOo 1.1.2 + */ +published service UpdatableLayer +{ + + /** + handles read access to the contents of the layer. + + <p> If the implementation supports + com::sun::star::util::XTimeStamped, + then after executing XUpdatableLayer::replaceWith() + the timestamp will be the one for the replaced contents and + if reading after updates is supported the next read will reproduce the + replaced data. + </p> + */ + service Layer ; + + + /** + provides write access to the contents of the layer. + + <p> Depending of the actual type (simple, i.e pure XLayer or + composite, i.e XCompositeLayer) of the current layer and + the provided replacement layer, the operation performed + by XUpdatableLayer::replaceWith(), will vary. + </p> + <p> For the different current/replacement layer combinations, we have: + <dl> + <dt>Simple/Simple<dt> + <dd>the provided layer's contents replace the current one's.</dd> + + <dt>Composite/Composite<dt> + <dd>all layers (main and sub) present in the + provided layer are used to replace the corresponding current + layer contents. Sublayers present in the current layer but + not in the provided one are left untouched. Sublayers present + in the provided layer but not in the current one are added to + the current layer. + </dd> + + <dt>Simple/Composite<dt> + <dd>the main layer and sublayers of the provided layer + are merged into one whose contents replace the current layer. + </dd> + + <dt>Composite/Simple<dt> + <dd>the provided layer is split into a composite one whose contents + are then used to replace the current layer as described above. + </dd> + + </dl> + <em> Not all implementations of XUpdatableLayer + support conversions of the replacement layer. + In such a case the sublayers of the provided layer may be ignored + or all simple data be merged into the main layer. + </em> + </p> + */ + interface XUpdatableLayer ; + + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XBackend.idl b/offapi/com/sun/star/configuration/backend/XBackend.idl new file mode 100644 index 000000000..20eab1474 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XBackend.idl @@ -0,0 +1,172 @@ +/* -*- 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_configuration_backend_XBackend_idl__ +#define __com_sun_star_configuration_backend_XBackend_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/XUpdateHandler.idl> +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/configuration/backend/XSchema.idl> +#include <com/sun/star/configuration/backend/BackendAccessException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/NoSupportException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + Handles access to layered data stored in a repository. + + <p> Data can be retrieved on behalf of one or more entities.</p> + + <p> There is an implied owner entity associated to the object + when it is created. This entity should be used for normal data access. + For administrative operations data of other entities can be accessed. + </p> + + @see com::sun::star::configuration::backend::XBackendEntities + @see com::sun::star::configuration::backend::XSchemaSupplier + + @since OOo 1.1.2 +*/ +published interface XBackend : ::com::sun::star::uno::XInterface +{ + + /** + retrieves the layers associated to the owner + entity for a component. + + @param aComponent + component whose data will be accessed + + @returns + a list of objects allowing access to the + component data for each layer associated to + the current entity + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XBackendEntities::getOwnerEntity() + */ + sequence<XLayer> listOwnLayers([in] string aComponent) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + creates an update handler for the owner entity + layer for a component. + + @param aComponent + component whose data will be updated + + @returns + an object allowing manipulation of the + component data for the current entity + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid + + @throws com::sun::star::lang::NoSupportException + if updates are not supported for this backend + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XBackendEntities::getOwnerEntity() + */ + XUpdateHandler getOwnUpdateHandler([in] string aComponent) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves the layers associated to an entity for a component. + + @param aComponent + component whose data will be accessed + + @param aEntity + entity whose data will be accessed + + @returns + a list of objects allowing access to the + component data for each layer associated + with the entity. + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid + or if the entity doesn't exist. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XBackendEntities::supportsEntity() + */ + sequence<XLayer> listLayers([in] string aComponent, + [in] string aEntity) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + creates an update handler on an entity's layer for a component. + + @param aComponent + component whose data will be updated + + @param aEntity + entity whose data will be updated + + @returns + an object allowing manipulation of the + component data for the entity + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid + or if the entity doesn't exist. + + @throws com::sun::star::lang::NoSupportException + if updates are not supported for this backend + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XBackendEntities::supportsEntity() + */ + XUpdateHandler getUpdateHandler([in] string aComponent, + [in] string aEntity) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XBackendChangesListener.idl b/offapi/com/sun/star/configuration/backend/XBackendChangesListener.idl new file mode 100644 index 000000000..53818fc21 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XBackendChangesListener.idl @@ -0,0 +1,50 @@ +/* -*- 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_configuration_backend_XBackendChangesListener_idl__ +#define __com_sun_star_configuration_backend_XBackendChangesListener_idl__ + +#include <com/sun/star/configuration/backend/ComponentChangeEvent.idl> +#include <com/sun/star/lang/XEventListener.idl> + +module com { module sun { module star { module configuration { module backend { + + +/** receives notification from backend broadcaster objects. + + @see XBackendChangesNotifier + + */ + interface XBackendChangesListener: ::com::sun::star::lang::XEventListener +{ + /** is invoked when component data in backend source changes + + @param Event + Event indicating the component data change + */ + void componentDataChanged( [in] com::sun::star::configuration::backend::ComponentChangeEvent Event ); + +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl b/offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl new file mode 100644 index 000000000..164a3b4e4 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl @@ -0,0 +1,64 @@ +/* -*- 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_configuration_backend_XBackendChangesNotifier_idl__ +#define __com_sun_star_configuration_backend_XBackendChangesNotifier_idl__ + +#include <com/sun/star/configuration/backend/XBackendChangesListener.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** broadcasts changes when data from backend sources has changed. + + @see XBackendChangesListener +*/ +interface XBackendChangesNotifier: com::sun::star::uno::XInterface +{ + /** adds the specified listener to receive events when changes occurred. + @param aListener + specifies the listener object. + + @param component + The name of the component the listener is monitoring changes for. + + */ + void addChangesListener( [in] com::sun::star::configuration::backend::XBackendChangesListener aListener, + [in] string component); + + /** removes the specified listener. + @param aListener + specifies the listener object. + + @param component + The name of the component the listener is monitoring changes for. + + */ + void removeChangesListener( [in] com::sun::star::configuration::backend::XBackendChangesListener aListener, + [in] string component); + +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XBackendEntities.idl b/offapi/com/sun/star/configuration/backend/XBackendEntities.idl new file mode 100644 index 000000000..7f1bf481c --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XBackendEntities.idl @@ -0,0 +1,121 @@ +/* -*- 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_configuration_backend_XBackendEntities_idl__ +#define __com_sun_star_configuration_backend_XBackendEntities_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/configuration/backend/BackendAccessException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + Provides functionality relating to common and supported entities + for a configuration data backend. + + @see com::sun::star::configuration::backend::XBackend + @see com::sun::star::configuration::backend::XMultiLayerStratum + + @since OOo 1.1.2 +*/ +published interface XBackendEntities : ::com::sun::star::uno::XInterface +{ + + /** + provides the entity id of the owner entity of the backend. + + @returns + an entity identifier for the owner entity. + <p> The owner entity is the default entity for the backend. + For normal configuration data access the owner entity + should always be used. + </p> + + @see com::sun::star::configuration::backend::XBackend::listOwnLayers() + @see com::sun::star::configuration::backend::XBackend::getOwnUpdateHandler() + */ + string getOwnerEntity() ; + + + /** + provides the entity id of an entity for general administrative access. + + <p> The admin entity is an entity that should be used to + read and manage configuration data that applies to all entities + within the backend. + </p> + + @returns + an entity identifier for the admin entity or + an empty string, if there is no entity that can be used for + general administrative access. + + */ + string getAdminEntity() ; + + + /** + determines, if a given entity id exists in this backend. + + @param aEntity + The name of an entity. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the backend. + + @returns + `TRUE`, if aEntity is a valid, existing entity for this backend, + `FALSE` otherwise. + */ + boolean supportsEntity([in] string aEntity) + raises( BackendAccessException ); + + + /** + determines, if two given entity ids denote the same entity. + + @param aEntity + The name of an entity. + + @param aOtherEntity + The name of another entity. + + @returns + `TRUE`, if aEntity and aOtherEntity denote the same entity + within this backend, `FALSE` otherwise. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the backend. + + @throws com::sun::star::lang::IllegalArgumentException + if either entity does not exist. + */ + boolean isEqualEntity([in] string aEntity, [in] string aOtherEntity) + raises( BackendAccessException, com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XCompositeLayer.idl b/offapi/com/sun/star/configuration/backend/XCompositeLayer.idl new file mode 100644 index 000000000..a918488f2 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XCompositeLayer.idl @@ -0,0 +1,92 @@ +/* -*- 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_configuration_backend_XCompositeLayer_idl__ +#define __com_sun_star_configuration_backend_XCompositeLayer_idl__ + +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/lang/NullPointerException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> +#include <com/sun/star/configuration/backend/MalformedDataException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides read access to layers that contain sublayers accessible through an + additional criterion (for instance the locale they contain data for). + + @since OOo 1.1.2 + */ +published interface XCompositeLayer : XLayer +{ + + /** + Returns a list of the criteria that can be used to access the + sublayers. + + @return + a list supported sublayer identifiers + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the retrieval of the data. + */ + sequence<string> listSubLayerIds() + raises (com::sun::star::lang::WrappedTargetException) ; + + + /** + Describes the content of a particular sublayer to + an XLayerHandler. + + @param aHandler + Handler object that will receive calls + describing the contents of the sublayer. + + @param aSubLayerId + Identifier of the sublayer to be read. + <p> Must be one the identifiers returned by + XCompositeLayer::listSubLayerIds() + </p> + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::IllegalArgumentException + if the identifier is invalid. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XLayerHandler. + */ + void readSubLayerData([in] XLayerHandler aHandler, [in] string aSubLayerId) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + +} ; + + +} ; } ; } ; } ; } ; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XLayer.idl b/offapi/com/sun/star/configuration/backend/XLayer.idl new file mode 100644 index 000000000..e2948554f --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XLayer.idl @@ -0,0 +1,66 @@ +/* -*- 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_configuration_backend_XLayer_idl__ +#define __com_sun_star_configuration_backend_XLayer_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/XLayerHandler.idl> +#include <com/sun/star/lang/NullPointerException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> +#include <com/sun/star/configuration/backend/MalformedDataException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides read access to the data contained in a layer. + + @since OOo 1.1.2 +*/ +published interface XLayer : ::com::sun::star::uno::XInterface +{ + + /** + describes the contents of the layer to an XLayerHandler. + + @param aHandler + Handler object that will receive calls + describing the contents of the layer + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XLayerHandler. + */ + void readData([in] XLayerHandler aHandler) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + +} ; + + +} ; } ; } ; } ; } ; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XLayerContentDescriber.idl b/offapi/com/sun/star/configuration/backend/XLayerContentDescriber.idl new file mode 100644 index 000000000..355ab485f --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XLayerContentDescriber.idl @@ -0,0 +1,70 @@ +/* -*- 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_configuration_backend_XLayerContentDescriber_idl__ +#define __com_sun_star_configuration_backend_XLayerContentDescriber_idl__ + +#include <com/sun/star/configuration/backend/PropertyInfo.idl> +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/XLayerHandler.idl> +#include <com/sun/star/lang/NullPointerException.idl> +#include <com/sun/star/configuration/backend/MalformedDataException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + describe the contents of a layer to an XLayerHandler object. The contents of + the layer is contained in the sequence of PropertyInfo structures + @see PropertyInfo + +*/ +interface XLayerContentDescriber : ::com::sun::star::uno::XInterface +{ + + /** + describes the contents of the layer to an XLayerHandler. + + @param aHandler + Handler object that will receive calls + describing the contents of the layer + + @param aPropertyInfos + sequence of PropertyInfo structs contained + all required property information + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XLayerHandler. + */ + void describeLayer([in] XLayerHandler aHandler, + [in] sequence<PropertyInfo> aPropertyInfos) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + +} ; + + +} ; } ; } ; } ; } ; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XLayerHandler.idl b/offapi/com/sun/star/configuration/backend/XLayerHandler.idl new file mode 100644 index 000000000..df735c632 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XLayerHandler.idl @@ -0,0 +1,536 @@ +/* -*- 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_configuration_backend_XLayerHandler_idl__ +#define __com_sun_star_configuration_backend_XLayerHandler_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/TemplateIdentifier.idl> + +#include <com/sun/star/configuration/backend/MalformedDataException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** receives a description of a configuration layer + as a sequence of events. + + @since OOo 1.1.2 + */ +published interface XLayerHandler: ::com::sun::star::uno::XInterface +{ + + /** receives notification that a layer description is started + for a component. + + <p> Subsequent calls describe the contents of the layer + until a matching call to XLayerHandler::endLayer() + is encountered. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + if there is an unfinished layer in progress + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void startLayer( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a layer description is complete. + + <p> Must match a previous call to XLayerHandler::startLayer(). + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if invalid data is detected in the layer</li> + <li>if there is an unfinished subnode in progress</li> + <li>if no layer is started at all</li> + <li>if the layer tries to override read-only or final data</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endLayer( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a description of a node override is started. + + <p> Subsequent calls describe overrides to properties and members + or items of the node until a matching call to + XLayerHandler::endNode()is encountered. + </p> + + @param aName + specifies the name of the node. + + @param aAttributes + specifies attribute values to be applied to the node. + + <p> The value is a combination of + NodeAttribute flags. + </p> + <p> The attributes are combined cumulatively with those + set on lower layers. + </p> + + @param bClear + if `TRUE`, specifies that the node should be cleared to an empty + state by removing all non-mandatory children from lower layers prior + to applying the overrides. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a layer in progress</li> + <li>if there already was a change to that node</li> + <li>if there is no node with that name</li> + <li>if the node is marked read-only in a lower layer</li> + <li>if the name is not a valid node name</li> + <li>if the attributes are not valid for the node</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void overrideNode( [in] string aName, + [in] short aAttributes, + [in] boolean bClear ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a new item is started. + + <p> The current node must be a set and + a preexisting item (if any) must be removable. + </p> + <p> The new item will be created from the default template + of the set. + </p> + <p> Subsequent calls describe the difference from the template + of properties and members or items of the node until + a matching call to XLayerHandler::endNode() + is encountered. + </p> + + @param aName + specifies the name of the item. + + @param aAttributes + specifies attribute values to be applied to the new node. + + <p> The value is a combination of + NodeAttribute flags. Note that + NodeAttribute::FUSE has an impact on the + semantics of this method. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a set node in progress currently</li> + <li>if there already was a change to a node of that name</li> + <li>if the template for the new node is not found</li> + <li>if an item of that name on a lower layer is not removable</li> + <li>if the name is not a valid item name</li> + <li>if the attributes are not valid for the node</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void addOrReplaceNode( [in] string aName, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a new item based on a particular template + is started. + + <p> The current node must be a set and + a preexisting item (if any) must be removable. + </p> + <p> Subsequent calls describe the difference from the template + of properties and members or items of the node until + a matching call to XLayerHandler::endNode() + is encountered. + </p> + + @param aName + specifies the name of the item. + + @param aTemplate + specifies the template to use for the new node + + @param aAttributes + specifies attribute values to be applied to the new node. + + <p> The value is a combination of + NodeAttribute flags. Note that + NodeAttribute::FUSE has an impact on the + semantics of this method. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a set node in progress currently</li> + <li>if there already was a change to a node of that name</li> + <li>if the template for the new node is not found</li> + <li>if the template is not a valid item type for the containing set</li> + <li>if an item of that name on a lower layer is not removable</li> + <li>if the name is not a valid item name</li> + <li>if the attributes are not valid for the node</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void addOrReplaceNodeFromTemplate( [in] string aName, + [in] TemplateIdentifier aTemplate, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node description is complete. + + <p> Must match the last open call to + XLayerHandler::overrideNode(), + XLayerHandler::addOrReplaceNode() or + XLayerHandler::addOrReplaceNodeFromTemplate(). + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if invalid data is detected in the node</li> + <li>if no node is started at all</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endNode( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node is dropped from a set. + + <p> The current node must be a set and + the item must be removable. + </p> + + @param aName + specifies the name of the node. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a set node in progress currently</li> + <li>if there already was a change to a node of that name</li> + <li>if there is no item with that name</li> + <li>if the item is not removable</li> + <li>if the name is not a valid node name</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void dropNode( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that an existing property is modified. + + <p> Subsequent calls describe new value(s) for the property until a + matching call to XLayerHandler::endProperty() + is encountered. + </p> + + @param aName + specifies the name of the property. + + @param aAttributes + specifies the new attributes of the property. + + <p> The value is a combination of + NodeAttribute flags. + </p> + <p> The attributes are combined cumulatively with those + set on lower layers. + </p> + + @param aType + specifies the type of the property. + + <p> This must be the same type as is already defined in the schema + or lower layers, unless the previous type was unspecified + (as indicated by + com::sun::star::uno::TypeClass::ANY.) + </p> + <p> A `VOID` type indicates that the type is unspecified + in this layer. + In this case any subsequent value may be of a generic type + (e.g. `string` or - for list values - + `string[]`.) Such values may be + converted to the type defined in the schema by + the implementation. + </p> + + @param bClear + if `TRUE`, specifies that the property should be cleared to an empty + state by discarding all values from lower layers prior + to applying the overrides. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group or extensible node in progress currently</li> + <li>if there already was a change to a property of that name</li> + <li>if there is no property with that name</li> + <li>if the property is read-only</li> + <li>if the type does not match the type of the property</li> + <li>if a type is missing and cannot be determined otherwise</li> + <li>if the name is not a valid property name</li> + <li>if the attributes are not valid for the property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void overrideProperty( [in] string aName, + [in] short aAttributes, + [in] type aType, + [in] boolean bClear ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that the value of the current property + is overridden. + + @param aValue + specifies the new value of the property. + + <p> The value must match the type of the current property. + If the property does not have the + SchemaAttribute::REQUIRED flag set, + the value can be `VOID`. + </p> + <p> If the current property is localized, this value applies + to the default locale. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a property in progress currently</li> + <li>if there already was a change to the value of that property</li> + <li>if the value does not have the proper type</li> + <li>if the value is not valid for the property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void setPropertyValue( [in] any aValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that the value of the current localized property + is overridden for a specific locale . + + @param aValue + specifies the new value of the property. + + <p> The value must match the type of the current property. + If the property does not have the + SchemaAttribute::REQUIRED flag set, + the value can be `VOID`. + </p> + + @param aLocale + specifies the locale this value should apply to. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a property in progress currently</li> + <li>if the current property isn't localized</li> + <li>if there already was a change to the property for that locale</li> + <li>if the value does not have the proper type</li> + <li>if the value is not valid for the property</li> + <li>if the locale is not a valid locale</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void setPropertyValueForLocale([in] any aValue, + [in] string aLocale ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that a property description is complete. + + <p> Must match an open call to + XLayerHandler::overrideProperty(), + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if invalid data is detected in the property</li> + <li>if no property is started at all</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endProperty( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property having a `VOID` value is added + to the current node. + + <p> The current node must be extensible. + </p> + + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + + <p> The value is a combination of + NodeAttribute flags and may also contain the + SchemaAttribute::REQUIRED flag. + </p> + <p> NodeAttribute::MANDATORY need not be set, + as dynamically added properties always are mandatory + in subsequent layers. + </p> + + @param aType + specifies the type of the new property. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't an extensible node in progress currently</li> + <li>if a property with that name already exists</li> + <li>if the specified type is not allowed for a property</li> + <li>if the name is not a valid property name</li> + <li><li>if the attributes are not valid for the property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addProperty( [in] string aName, + [in] short aAttributes, + [in] type aType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that a property having a non-`VOID` value + is added to the current node. + + <p> The current node must be extensible. + </p> + + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + + <p> The value is a combination of + NodeAttribute flags and may also contain the + SchemaAttribute::REQUIRED flag. + </p> + </p> + <p> NodeAttribute::MANDATORY need not be set, + as dynamic properties always are mandatory + in subsequent layers. + </p> + + @param aValue + specifies the value of the new property. + + <p> The value also determines the type. + Therefore the value must not be `VOID`. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't an extensible node in progress currently</li> + <li>if a property with that name already exists</li> + <li>if the type of the value is not an allowed type + or if the value is `VOID`</li> + <li>if the name is not a valid property name</li> + <li>if the value is not valid for the property</li> + <li>if the attributes are not valid for the property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addPropertyWithValue( [in] string aName, + [in] short aAttributes, + [in] any aValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XLayerImporter.idl b/offapi/com/sun/star/configuration/backend/XLayerImporter.idl new file mode 100644 index 000000000..793227684 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XLayerImporter.idl @@ -0,0 +1,132 @@ +/* -*- 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_configuration_backend_XLayerImporter_idl__ +#define __com_sun_star_configuration_backend_XLayerImporter_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/configuration/backend/XBackend.idl> +#include <com/sun/star/configuration/backend/MalformedDataException.idl> +#include <com/sun/star/lang/NullPointerException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** allows importing a layer into a Backend + + @since OOo 1.1.2 +*/ +published interface XLayerImporter : ::com::sun::star::uno::XInterface +{ + + /** gets the target backend for importing. + + @returns + the Backend into which layers are + imported by XLayerImporter::importLayer(). + + */ + XBackend getTargetBackend(); + + + /** sets the target backend for importing. + + @param aBackend + a Backend into which layers should be + imported by XLayerImporter::importLayer(). + + @throws com::sun::star::lang::NullPointerException + if the backend passed is `NULL`. + */ + void setTargetBackend([in] XBackend aBackend) + raises (com::sun::star::lang::NullPointerException) ; + + + /** Imports the layer given into the backend. + + <p>This method imports data for the current entity of the backend.</p> + + @param aLayer + a layer whose data will be imported into the backend + + @throws com::sun::star::lang::NullPointerException + if the layer passed is `NULL` or no backend is available. + + @throws com::sun::star::configuration::backend::MalformedDataException + if the layer passed is invalid + + @throws com::sun::star::lang::IllegalArgumentException + if the layer passed is for a component + that doesn't exist in the backend + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the backend or source layer. + + @see com::sun::star::configuration::backend::XBackend::getOwnUpdateHandler() + */ + void importLayer([in] XLayer aLayer) + raises (MalformedDataException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException) ; + + + /** Imports the layer given into the backend for a given entity. + + <p>This method imports data for the current entity of the backend.</p> + + @param aLayer + a layer whose data will be imported into the backend + + @param aEntity + an entity into whose data the layer will be imported + + @throws com::sun::star::lang::NullPointerException + if the layer passed is `NULL` or no backend is available. + + @throws com::sun::star::configuration::backend::MalformedDataException + if the layer passed is invalid + + @throws com::sun::star::lang::IllegalArgumentException + if the layer passed is for a component + that doesn't exist in the backend + or if the entity doesn't exist in the backend. + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the backend or source layer. + + @see com::sun::star::configuration::backend::XBackend::getUpdateHandler() + */ + void importLayerForEntity([in] XLayer aLayer, [in] string aEntity) + raises (MalformedDataException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException) ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl b/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl new file mode 100644 index 000000000..5c20f01bb --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl @@ -0,0 +1,314 @@ +/* -*- 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_configuration_backend_XMultiLayerStratum_idl__ +#define __com_sun_star_configuration_backend_XMultiLayerStratum_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/configuration/backend/XUpdatableLayer.idl> +#include <com/sun/star/configuration/backend/BackendAccessException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/NoSupportException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + Handles access to a stratum consisting of multiple layers + in a single configuration data repository + + <p> The interface provides access to data for multiple entities and + timestamp-checking capabilities for efficient caching. + </p> + + @see com::sun::star::configuration::backend::XBackendEntities + @see com::sun::star::util::XTimeStamped + @see com::sun::star::configuration::backend::XSchemaSupplier + @see com::sun::star::configuration::backend::XSingleLayerStratum + + @since OOo 1.1.2 +*/ +published interface XMultiLayerStratum : ::com::sun::star::uno::XInterface +{ + + /** + identifies the layers within this stratum which should be read and + merged to determine data of a component for an entity + + + @param aComponent + The name of the component to access. + + @param aEntity + The name of an entity on behalf of which data will be accessed. + + @return + a list of layer identifiers that can be used to + retrieve Layer objects. + <p> The list is ordered by priority. Typically + the most general layers (global defaults, + entire organization) are first, more specific layers + (associated to specific groups or roles) are next + and the entity's own data is last. + </p> + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid or + if the entity doesn't exist. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XMultiLayerStratum::getLayer() + @see com::sun::star::configuration::backend::XMultiLayerStratum::getLayers() + @see com::sun::star::configuration::backend::XMultiLayerStratum::getMultipleLayers() + @see com::sun::star::configuration::backend::XBackendEntities + */ + sequence<string> listLayerIds([in] string aComponent, + [in] string aEntity) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + identifies the layer which should be modified + to update data of a component on behalf of an entity. + + <p> The layer id returned is one of the layer ids obtained from + XMultiLayerStratum::listLayerIds() for the same + component and entity. + </p> + + @param aComponent + The name of the component to access. + + @param aEntity + The name of an entity on behalf of which data will be accessed. + + @returns + a layer identifier that can be used to obtain + an UpdatableLayer object. + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid or + if the entity doesn't exist. + + @throws com::sun::star::lang::NoSupportException + if the implementation does not support updates. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XMultiLayerStratum::getUpdatableLayer() + @see com::sun::star::configuration::backend::XBackendEntities + */ + string getUpdateLayerId([in] string aComponent, + [in] string aEntity) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves a layer associated to a layer id, if newer than indicated. + + <p> A timestamp can be provided, which is used to indicate + a point in time. The layer should be returned only if is modified + since that time. + </p> + + @param aLayerId + identifier of the layers to be accessed. + <p>Layer ids can be obtained from + XMultiLayerStratum::listLayerIds() or + XMultiLayerStratum::getUpdateLayerId(). + </p> + + @param aTimestamp + a timestamp for the layer. + + <p> An empty timestamp indicates, that the layer should be + retrieved irrespective of its modification time. + </p> + <p> The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). + </p> + + @returns + a Layer object providing access to the layer data, + `NULL` if the layer is newer than indicated by the timestamp. + + @throws com::sun::star::lang::IllegalArgumentException + if the layer id is invalid or + if the timestamp is invalid + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + XLayer getLayer([in] string aLayerId, + [in] string aTimestamp) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves the layers associated to a series of layer ids, + if newer than indicated. + <p> A timestamp can be provided, which is used to indicate + a point in time. Only layers that are modified since that time + should be returned. The same timestamp is used for all layers. + </p> + + @param aLayerIds + identifiers of the layers to be accessed. + <p>Layer ids can be obtained from + XMultiLayerStratum::listLayerIds(). + </p> + + @param aTimestamp + a timestamp for all of the layers. + <p> An empty timestamp indicates, that the layers should be + retrieved irrespective of their modification time. + </p> + <p> The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). + </p> + + @returns + a list of Layer objects + providing access to the layer data. + <p> The list has the same length as aLayerIds. Each layer + object is associated to the layer id in the corresponding + position. + </p> + <p> For layers that are newer than indicated by the + timestamp, the list contains a `NULL` element. + </p> + + @throws com::sun::star::lang::IllegalArgumentException + if one of the layer ids is invalid or + if the timestamp is invalid + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + sequence<XLayer> getLayers([in] sequence<string> aLayerIds, + [in] string aTimestamp) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves the layers associated to a series of layer ids, + if newer than indicated for each layer. + <p> For each layer an individual timestamp can be provided, + which is used to indicate the last known version of the layer. + Only layers that are modified since that time should be returned. + </p> + + @param aLayerIds + identifiers of the layers to be accessed. + <p>Layer ids can be obtained from + XMultiLayerStratum::listLayerIds(). + </p> + + @param aTimestamps + timestamps for each of the layers. + + <p> This list must have the same length as aLayerIds. + Timestamps are matched to layer ids by their position. + </p> + <p> An empty timestamp indicates, that the associated layer + should be retrieved irrespective of its modification time. + </p> + <p> The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). + </p> + + @returns + a list of Layer objects + providing access to the layer data. + <p> The list has the same length as aLayerIds. Each layer + object is associated to the layer id in the corresponding + position. + </p> + <p> For layers that are newer than indicated by the corresponding + timestamp, the list contains a `NULL` element. + </p> + + @throws com::sun::star::lang::IllegalArgumentException + if one of the layer ids is invalid or + if one of the timestamps is invalid or + if the lengths of the arguments don't match. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + sequence<XLayer> getMultipleLayers([in] sequence<string> aLayerIds, + [in] sequence<string> aTimestamps) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves a writable representation of the layer + associated to a layer id. + + @param aLayerId + identifier of the layer to be accessed for writing. + <p>A layer id for writing can be obtained from + XMultiLayerStratum::getUpdateLayerId(). + </p> + + @return + an UpdatableLayer object providing + write access to the layer + + @throws com::sun::star::lang::IllegalArgumentException + if the layer id is invalid. + + @throws com::sun::star::lang::NoSupportException + if the implementation does not support updates. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + */ + XUpdatableLayer getUpdatableLayer([in] string aLayerId) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XSchema.idl b/offapi/com/sun/star/configuration/backend/XSchema.idl new file mode 100644 index 000000000..606cadcbf --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XSchema.idl @@ -0,0 +1,121 @@ +/* -*- 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_configuration_backend_XSchema_idl__ +#define __com_sun_star_configuration_backend_XSchema_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/XSchemaHandler.idl> +#include <com/sun/star/lang/NullPointerException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> +#include <com/sun/star/configuration/backend/MalformedDataException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + Handles access to the elements of a component schema, + i.e its templates and its component definition. + + @since OOo 1.1.2 +*/ +published interface XSchema : ::com::sun::star::uno::XInterface +{ + + /** + Describes the full schema (templates + component) to a + XSchemaHandler. + + @param aHandler + schema handler that will receive calls + describing the contents of the templates + and the component definition + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data or + if a subsequent call to any of the XSchemamethods is made. + The elements of a component schema are only parsed once,a repeat call + leads to exception. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XSchemaHandler. + */ + void readSchema([in] XSchemaHandler aHandler) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + + + /** + Describes only the component definition to a XSchemaHandler. + + @param aHandler + schema handler that will receive calls + describing the contents of the component + definition + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data or + if a subsequent call to any of the XSchemamethods is made. + The elements of a component schema are only parsed once,a repeat call + leads to exception. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XSchemaHandler. + */ + void readComponent([in] XSchemaHandler aHandler) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + + + /** + Describes the component templates to a XSchemaHandler. + + @param aHandler + schema handler that will receive calls + describing the contents of the templates + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data or + if a subsequent call to any of the XSchemamethods is made. + The elements of a component schema are only parsed once,a repeat call + leads to exception. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XSchemaHandler. + */ + void readTemplates([in] XSchemaHandler aHandler) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + +} ; + + +} ; } ; } ; } ; } ; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XSchemaHandler.idl b/offapi/com/sun/star/configuration/backend/XSchemaHandler.idl new file mode 100644 index 000000000..f3721f2fd --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XSchemaHandler.idl @@ -0,0 +1,502 @@ +/* -*- 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_configuration_backend_XSchemaHandler_idl__ +#define __com_sun_star_configuration_backend_XSchemaHandler_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/TemplateIdentifier.idl> + +#include <com/sun/star/configuration/backend/MalformedDataException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** receives a description of a configuration schema as a sequence of events. + + @since OOo 1.1.2 + */ +published interface XSchemaHandler: ::com::sun::star::uno::XInterface +{ + + /** receives notification that a schema description is started. + + <p> The schema description may comprise components templates or both. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + if a schema is already started (and has not been ended). + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void startSchema( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the current schema description is complete. + + <p> Must match a previous call to startSchema(). + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if invalid data is detected in the schema</li> + <li>if there is an unfinished component or template in progress</li> + <li>if no schema is started at all</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endSchema( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the schema depends on templates + from a different component. + + @param aName + specifies the name of the component. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there is an unfinished component or template in progress</li> + <li>if no schema is started at all</li> + <li>if the name is not a valid component name</li> + <li>if the requested component is not found</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void importComponent( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a component description is started. + + <p> Subsequent calls describe the schema of the component + until a matching call to endComponent() + is encountered. + </p> + + @param aName + specifies the name of the component. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there is an unfinished component or template in progress </li> + <li>if no schema is started at all </li> + <li>if there already is a component data tree of this name</li> + <li>if the name is not a valid component name</li> + <li>if the instance supports no component schemas (only templates)</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void startComponent( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a component description is complete. + + <p> Must match a previous call to startComponent(). + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if invalid data is detected in the component<li> + <li>if there is an unfinished subnode in progress<li> + <li>if no component has been started at all<li> + <li>if the instance supports no component schemas (only templates)<li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endComponent( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a template description is started for a group. + + <p> Subsequent calls describe the members and properties of the template + until a matching call to endTemplate() + is encountered. + </p> + + @param aTemplate + specifies the identity of the template. + + @param aAttributes + specifies the attributes of the template. + + <p> The value is a combination of + SchemaAttribute flags. + </p> + <p> SchemaAttribute::EXTENSIBLE can be used + to describe a template for a node with an extensible + set of properties. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there is an unfinished component or template in progress</li> + <li>if no schema is started at all </li> + <li>if there already is a template with that identifier</li> + <li>if the name is not a valid template identifier </li> + <li>if the attributes are not valid for a group</li> + <li>if the instance supports no templates (only component schemas)</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void startGroupTemplate( [in] TemplateIdentifier aTemplate, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a template description is started for a set. + + <p> Subsequent calls describe the members and properties of the template + until a matching call to endTemplate() + is encountered. + </p> + + @param aTemplate + specifies the identity of the template. + + @param aAttributes + specifies the attributes of the template. + + <p> The value is a combination of + SchemaAttribute flags. + </p> + <p> SchemaAttribute::EXTENSIBLE can be used + to describe a template for a node with an extensible + set of properties. + </p> + + @param aItemType + specifies the (default) template for set items. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there is an unfinished component or template in progress</li> + <li>if no schema is started at all </li> + <li>if there already is a template with that identifier</li> + <li>if the item-type template is not found</li> + <li>if the name or item-type are not valid template identifiers </li> + <li>if the attributes are not valid for a set</li> + <li>if the instance supports no templates (only component schemas).</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void startSetTemplate( [in] TemplateIdentifier aTemplate, + [in] short aAttributes, + [in] TemplateIdentifier aItemType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a template description is complete. + + <p> Must match a previous call to startGroupTemplate() + or startSetTemplate(). + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if invalid data is detected in the template</li> + <li>if there is an unfinished subnode in progress</li> + <li>if no template has been started at all</li> + <li>if the instance supports no templates (only component schemas)</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endTemplate( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a group description is started. + + <p> Subsequent calls describe the members and properties of the group + until a matching call to endNode() + is encountered. + </p> + + @param aName + specifies the name of the group. + + @param aAttributes + specifies the attributes of the node. + + <p> The value is a combination of + SchemaAttribute flags. + </p> + <p> SchemaAttribute::EXTENSIBLE can be used + to describe a group with an extensible set of properties. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group node in progress currently</li> + <li>if there already is a node with that name</li> + <li>if the name is not a valid node name</li> + <li>if the attributes are not valid for a group</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void startGroup( [in] string aName, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a set description is started. + + <p> Subsequent calls describe the item-types and properties of the set + until a matching call to endNode() + is encountered. + </p> + + @param aName + specifies the name of the set. + + @param aAttributes + specifies the attributes of the node. + + <p> The value is a combination of + SchemaAttribute flags. + </p> + <p> SchemaAttribute::EXTENSIBLE can be used + to describe a set with an extensible set of properties. + </p> + + @param aItemType + specifies the (default) template for set items. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group node in progress currently</li> + <li>if there already is a node with that name</li> + <li>if the item-type template is not found</li> + <li>if the name is not a valid node name</li> + <li>if the item-type is not a valid template identifier</li> + <li>if the attributes are not valid for a set</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void startSet( [in] string aName, + [in] short aAttributes, + [in] TemplateIdentifier aItemType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node description is complete. + + <p> Must match the last open call to startGroup() + or startSet(). + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if the name is not the name of the node in progress</li> + <li>if invalid data is detected in the node</li> + <li>if no node has been started at all</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endNode( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property is added to the current node. + + <p> The property will have a default value of `NULL` + (unless it is SchemaAttribute::REQUIRED). + </p> + + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + + <p> The value is a combination of + SchemaAttribute flags. + </p> + + @param aType + specifies the type of the new property. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group or extensible node in progress currently</li> + <li>if a property with the same name already exists</li> + <li>if the specified type is not allowed</li> + <li>if the name is not a valid property name</li> + <li>if the attributes are not valid for a property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addProperty( [in] string aName, + [in] short aAttributes, + [in] type aType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that a property having a default value + is added to the current node. + + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + + <p> The value is a combination of + SchemaAttribute flags. + </p> + + @param aDefaultValue + specifies the value of the new property. + + <p> The value also determines the type. + Therefore the value must not be `VOID`. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group or extensible node in progress currently</li> + <li>if a property with the same name already exists</li> + <li>if the type of the default value is not an allowed type, + or if the default value is `VOID`</li> + <li>if the name is not a valid property name</li> + <li>if the attributes are not valid for a property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addPropertyWithDefault( [in] string aName, + [in] short aAttributes, + [in] any aDefaultValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that the current group has a child node + that is an instance of a specified template. + + @param aName + specifies the name of the new node. + + @param aTemplate + specifies a template that describes the new node. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group node in progress currently</li> + <li>if there already is a node with that name</li> + <li>if the template is not found</li> + <li>if the name or template name are not valid</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void addInstance( [in] string aName, + [in] TemplateIdentifier aTemplate ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that the current set can contain items + that are instances of a specified template. + + @param aItemType + specifies a template that is accepted as valid item type + for the current set node. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a set node in progress currently</li> + <li>if the template is not found</li> + <li>if the name is not a valid template name</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void addItemType( [in] TemplateIdentifier aItemType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XSchemaSupplier.idl b/offapi/com/sun/star/configuration/backend/XSchemaSupplier.idl new file mode 100644 index 000000000..6c7319006 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XSchemaSupplier.idl @@ -0,0 +1,67 @@ +/* -*- 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_configuration_backend_XSchemaSupplier_idl__ +#define __com_sun_star_configuration_backend_XSchemaSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/XSchema.idl> +#include <com/sun/star/configuration/backend/BackendAccessException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to configuration component schemas. + + @since OOo 1.1.2 +*/ +published interface XSchemaSupplier : ::com::sun::star::uno::XInterface +{ + + /** + Returns the schema information (component + templates) + for a particular component. + + @param aComponent + component whose schema will be accessed + + @returns + an object allowing access to the various parts of the schema, + `NULL` if the component doesn't exist. + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + */ + XSchema getComponentSchema([in] string aComponent) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl b/offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl new file mode 100644 index 000000000..6faa25a30 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl @@ -0,0 +1,122 @@ +/* -*- 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_configuration_backend_XSingleLayerStratum_idl__ +#define __com_sun_star_configuration_backend_XSingleLayerStratum_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/configuration/backend/XUpdatableLayer.idl> +#include <com/sun/star/configuration/backend/BackendAccessException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/NoSupportException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + Handles access to a stratum consisting of a single layer + in a configuration data repository + + <p> The interface provides timestamp-checking capabilities + for efficient caching. + </p> + + @see com::sun::star::util::XTimeStamped + @see com::sun::star::configuration::backend::XSchemaSupplier + @see com::sun::star::configuration::backend::XMultiLayerStratum + + @since OOo 1.1.2 +*/ +published interface XSingleLayerStratum : ::com::sun::star::uno::XInterface +{ + + /** + retrieves the layer data for a component, if newer than indicated. + + <p> A timestamp can be provided, which is used to indicate + a point in time. The layer should be returned only if is modified + since that time. + </p> + + @param aComponent + The name of the component to access. + + @param aTimestamp + a timestamp for the layer. + + <p> An empty timestamp indicates, that the layer should be + retrieved irrespective of its modification time. + </p> + <p> The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). + </p> + + @returns + a Layer object providing access to the layer data, + `NULL` if the layer is newer than indicated by the timestamp. + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid or + if the timestamp is invalid. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + XLayer getLayer([in] string aComponent, + [in] string aTimestamp) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves a writable representation of the layer for a component. + + @param aComponent + The name of the component to access. + + @return + an UpdatableLayer object providing + write access to the layer + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid. + + @throws com::sun::star::lang::NoSupportException + if the implementation does not support updates. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + */ + XUpdatableLayer getUpdatableLayer([in] string aComponent) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl b/offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl new file mode 100644 index 000000000..dcc9e35ec --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl @@ -0,0 +1,71 @@ +/* -*- 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_configuration_backend_XUpdatableLayer_idl__ +#define __com_sun_star_configuration_backend_XUpdatableLayer_idl__ + +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/lang/NullPointerException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> +#include <com/sun/star/configuration/backend/MalformedDataException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + Provides access to a read-write layer of configuration data for + a given component and entity. + + @since OOo 1.1.2 + */ +published interface XUpdatableLayer : XLayer +{ + + /** + Replaces the current layer with the layer given as input + parameter. + + <p> After the replacement has been performed, reading the + layer will return the new content. Some implementations + may not support this, so after an update + XLayer::readData() may fail. + </p> + + @param aNewLayer + replacement layer + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs during the replacement. + @throws com::sun::star::configuration::backend::MalformedDataException + if the layer contains invalid data. + */ + void replaceWith([in] XLayer aNewLayer) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + +} ; + +} ; } ; } ; } ; } ; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XUpdateHandler.idl b/offapi/com/sun/star/configuration/backend/XUpdateHandler.idl new file mode 100644 index 000000000..5bff16437 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XUpdateHandler.idl @@ -0,0 +1,633 @@ +/* -*- 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_configuration_backend_XUpdateHandler_idl__ +#define __com_sun_star_configuration_backend_XUpdateHandler_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/TemplateIdentifier.idl> + +#include <com/sun/star/configuration/backend/MalformedDataException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> +#include <com/sun/star/lang/IllegalAccessException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** receives a description of a configuration update or layer + as a sequence of events. + + @since OOo 1.1.2 + */ +published interface XUpdateHandler: ::com::sun::star::uno::XInterface +{ + + /** receives notification that an update or description is started. + + @throws com::sun::star::configuration::backend::MalformedDataException + if the update already was started + + @throws com::sun::star::lang::IllegalAccessException + if the target layer is read-only + <p><em>Some implementations can only detect this when executing + XUpdateHandler::endUpdate()</em> + </p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void startUpdate( ) + raises( MalformedDataException, + com::sun::star::lang::IllegalAccessException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the current update description is complete. + + <p> Must match a previous call to XUpdateHandler::startUpdate(). + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if no update is started at all</li> + <li>if invalid data is detected in the update</li> + <li>if there is an unfinished subnode in progress</li> + <li>if the update tries to change read-only data</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::IllegalAccessException + if the target layer is read-only + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endUpdate( ) + raises( MalformedDataException, + com::sun::star::lang::IllegalAccessException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a modification of a node is started. + + <p> Subsequent calls describe changes to properties and items or + members of the node until a matching call to + XUpdateHandler::endNode() is encountered. + </p> + + @param aName + specifies the name of the node. + + @param aAttributes + specifies attribute values to be applied to the node in the + current layer. + + <p> The value is a combination of + NodeAttribute flags. + </p> + <p> Only attributes which are selected in aAttributeMask + are changed. + </p> + + @param aAttributeMask + specifies which attributes should be changed for the node. + + <p> The value is a combination of + NodeAttribute flags. + </p> + + @param bReset + if `TRUE`, specifies that the node should be reset to its default + state as given by lower layers and the schema or template prior + to applying the changes. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't an update in progress at all</li> + <li>if a node is not valid in this place</li> + <li>if there already was a change to that node</li> + <li>if there is no node with that name</li> + <li>if the node is read-only</li> + <li>if the name is not a valid node name</li> + <li>if the attributes or mask are not valid for the node</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void modifyNode ( [in] string aName, + [in] short aAttributes, + [in] short aAttributeMask, + [in] boolean bReset ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node is started as a new item. + + <p> The current node must be a set and + a preexisting item (if any) must be removable. + </p> + <p> The new item will be created from the default template + of the set. + </p> + <p> Subsequent calls describe the difference from the template + of properties, items or members of the node until a matching call + to XUpdateHandler::endNode() is encountered. + </p> + + @param aName + specifies the name of the new item. + + @param aAttributes + specifies attribute values to be applied to the new node. + + <p> The value is a combination of + NodeAttribute flags. Note that + NodeAttribute::FUSE has an impact on the + semantics of this method. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a set node in progress currently</li> + <li>if there already was a change to an item of that name</li> + <li>if the template for the new node is not found</li> + <li>if an item of that name exists and is not removable</li> + <li>if the name is not a valid item name</li> + <li>if the attributes are not valid for the node</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void addOrReplaceNode ( [in] string aName, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node is started as a new item + based on a particular template. + + <p> The current node must be a set and + a preexisting item (if any) must be removable. + </p> + <p> Subsequent calls describe the difference from the template + of properties or members of the node until a matching call + to XUpdateHandler::endNode() is encountered. + </p> + + @param aName + specifies the name of the item. + + @param aTemplate + specifies the template to use for the new node + + @param aAttributes + specifies attribute values to be applied to the new node. + + <p> The value is a combination of + NodeAttribute flags. Note that + NodeAttribute::FUSE has an impact on the + semantics of this method. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a set node in progress currently</li> + <li>if there already was a change to an item of that name</li> + <li>if the template for the new node is not found</li> + <li>if an item of that name exists and is not removable</li> + <li>if the name is not a valid item name</li> + <li>if the template is not a valid item type for the containing set</li> + <li>if the attributes are not valid for the node</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void addOrReplaceNodeFromTemplate( [in] string aName, + [in] short aAttributes, + [in] TemplateIdentifier aTemplate ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node modification is complete. + + <p> Must match the last open call to + XUpdateHandler::modifyNode(), + XUpdateHandler::addOrReplaceNode() or + XUpdateHandler::addOrReplaceNodeFromTemplate(). + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if invalid data is detected in the node</li> + <li>if no node is started at all</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endNode( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that an item is to be dropped from a set. + + <p> The current node must be a set and + the item must be removable. + </p> + + @param aName + specifies the name of the node. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a set node in progress currently</li> + <li>if there already was a change to a node of that name</li> + <li>if there is no item with that name</li> + <li>if the item is not removable</li> + <li>if the name is not a valid node name</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void removeNode( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that modification of an existing property is + started. + + <p> Subsequent calls describe changes to the value(s) + of the property until a matching call to + XUpdateHandler::endProperty() is encountered. + </p> + + @param aName + specifies the name of the property. + + @param aAttributes + specifies new attributes of the property. + + <p> The value is a combination of + NodeAttribute flags. + </p> + <p> Only attributes which are selected in aAttributeMask are changed. + </p> + <p> NodeAttribute::MANDATORY need not be set + and can't be removed, as dynamic properties always are mandatory + in subsequent layers. + </p> + + @param aAttributeMask + specifies which attributes should be changed for the property. + + <p> The value is a combination of + NodeAttribute flags. + </p> + + @param aType + specifies the type of the property. + + <p> A `VOID` type can be used to signify that + the type is unknown and should not be recorded. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group or extensible node in progress currently</li> + <li>if there already was a change to a property of that name</li> + <li>if there is no property with that name</li> + <li>if the property is read-only</li> + <li>if the name is not a valid property name</li> + <li>if the attributes are not valid for the property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void modifyProperty( [in] string aName, + [in] short aAttributes, + [in] short aAttributeMask, + [in] type aType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification about a change to the value of + the current property. + + @param aValue + specifies the new value of the property. + + <p> The value must match the type of the existing property. + If the property does not have the + SchemaAttribute::REQUIRED flag set, + the value can be `VOID`. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a property modification in progress currently</li> + <li>if there already was a change to this value</li> + <li>if the type of the value is not an allowed type</li> + <li>if the value is not valid for the property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void setPropertyValue( [in] any aValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification about a change to the value of + the current property for a specific locale. + + @param aValue + specifies the new value of the property for the given locale. + + <p> The value must match the type of the existing property. + If the property does not have the + SchemaAttribute::REQUIRED flag set, + the value can be `VOID`. + </p> + + @param aLocale + specifies the locale that the new value applies to. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a property modification in progress currently</li> + <li>if the property is not localizable</li> + <li>if there already was a change to this value</li> + <li>if the type of the value is not an allowed type</li> + <li>if the value is not valid for the property</li> + <li>if the locale is not a valid locale name</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void setPropertyValueForLocale( [in] any aValue, [in] string aLocale ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the value of the current property + should be reset to its default. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a property modification in progress currently</li> + <li>if there already was a change to this value</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void resetPropertyValue( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the value of the current property + for a specific locale should be reset to its default. + + @param aLocale + specifies the locale the change applies to. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a property modification in progress currently</li> + <li>if the property is not localizable</li> + <li>if there already was a change to this value</li> + <li>if the locale is not a valid locale name</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void resetPropertyValueForLocale( [in] string aLocale ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property modification is complete. + + <p> Must match the last open call to + XUpdateHandler::modifyProperty(). + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if invalid data is detected in the property</li> + <li>if no property is started at all</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endProperty( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property is reset to its default state. + + @param aName + specifies the name of the property. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group or extensible node in progress currently</li> + <li>if there already was a change to a property of that name</li> + <li>if there is no property with that name, or if the property + has no default</li> + <li>if the property is read-only</li> + <li>if the name is not a valid property name</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void resetProperty( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property having a value of `VOID` + is added to the current node. + + <p> The current node must be extensible and + a preexisting property (if any) must be + removable in this layer. + </p> + + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + + <p> The value is a combination of + NodeAttribute flags and may also contain the + SchemaAttribute::REQUIRED flag. + </p> + </p> + <p> NodeAttribute::MANDATORY need not be set, + as dynamic properties always are mandatory + in subsequent layers. + </p> + + @param aType + specifies the type of the new property. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group or extensible node in progress currently</li> + <li>if there already was a change to a property of that name</li> + <li>if a property of that name exists and is not removable</li> + <li>if the specified type is not allowed</li> + <li>if the name is not a valid property name</li> + <li>if the attributes are not valid for the property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addOrReplaceProperty( [in] string aName, + [in] short aAttributes, + [in] type aType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property having a non-`NULL` value + is added to the current node. + + <p> The current node must be extensible and + a preexisting property (if any) must be + removable in this layer. + </p> + + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + + <p> The value is a combination of + NodeAttribute flags and may also contain the + SchemaAttribute::REQUIRED flag. + </p> + </p> + <p> NodeAttribute::MANDATORY need not be set, + as dynamic properties always are mandatory + in subsequent layers. + </p> + + @param aValue + specifies the value of the new property. + + <p> The value also determines the type. + Therefore the value must not be `VOID`. + </p> + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group or extensible node in progress currently</li> + <li>if there already was a change to a property of that name</li> + <li>if a property of that name exists and is not removable</li> + <li>if the type of the value is not an allowed type, + or if the value is `VOID`</li> + <li>if the name is not a valid property name</li> + <li>if the attributes are not valid for the property</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addOrReplacePropertyWithValue( [in] string aName, + [in] short aAttributes, + [in] any aValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property is dropped from the current node. + + <p>The current node must be extensible and the property removable.</p> + + @param aName + specifies the name of the property. + + @throws com::sun::star::configuration::backend::MalformedDataException + <ul> + <li>if there isn't a group or extensible node in progress currently</li> + <li>if there is no property with that name</li> + <li>if the property is not removable</li> + <li>if the name is not a valid node name</li> + </ul> + <p><em>Not every implementation can detect each condition</em></p> + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void removeProperty( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.idl b/offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.idl new file mode 100644 index 000000000..9d8e83167 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.idl @@ -0,0 +1,78 @@ +/* -*- 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_configuration_backend_XVersionedSchemaSupplier_idl__ +#define __com_sun_star_configuration_backend_XVersionedSchemaSupplier_idl__ + +#include <com/sun/star/configuration/backend/XSchemaSupplier.idl> +#include <com/sun/star/configuration/backend/BackendAccessException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to versioned configuration component schemas. + + @since OOo 2.0 +*/ +interface XVersionedSchemaSupplier : XSchemaSupplier +{ + + /** + Returns the schema version for a particular component. + + @param aComponent + component whose schema version will be determined + + @returns + a `string` that identifies the schema version for + the given component. + + <p> The format of the version string is arbitrary. No meaning + should be attached to it, unless an implementing service + defines one. If no version can be determined, an empty + `string` may be returned. + </p> + + <p> Clients may assume that all instances of a schema with the + same version are identical. The converse is not true. + In particular an implementation may return the same version + string for all schemas it supplies (i.e. return a version for + the complete schema, including all components) + </p> + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the version data. + */ + string getSchemaVersion([in] string aComponent) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/xml/LayerParser.idl b/offapi/com/sun/star/configuration/backend/xml/LayerParser.idl new file mode 100644 index 000000000..53a90edcd --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/xml/LayerParser.idl @@ -0,0 +1,77 @@ +/* -*- 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_configuration_backend_xml_LayerParser_idl__ +#define __com_sun_star_configuration_backend_xml_LayerParser_idl__ + +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/io/XActiveDataSink.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module configuration { module backend { +module xml { + + +/** + represents a configuration data layer that is stored in a stream in + OOR Update XML format. + + <p> The configuration layer XML from a given stream is parsed and fed to a + com::sun::star::configuration::backend::XLayerHandler. + </p> + + @see com::sun::star::configuration::backend::xml::SchemaParser + Service that represents a configuration schema stored in XML. + + @see com::sun::star::configuration::backend::xml::LayerWriter + Service that writes OOR Update XML for data described via + com::sun::star::configuration::backend::XLayerHandler. + + @since OOo 1.1.2 +*/ +published service LayerParser +{ + + /** provides access to the parsed layer data. + */ + interface com::sun::star::configuration::backend::XLayer ; + + + /** provides access to the source XML stream. + */ + interface com::sun::star::io::XActiveDataSink ; + + + /** allows initializing the source stream. + + <p> The source can be passed + as a com::sun::star::io::XInputStream or + as a com::sun::star::xml::sax::InputSource. + </p> + */ + interface com::sun::star::lang::XInitialization ; + +} ; + +} ; +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl b/offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl new file mode 100644 index 000000000..6e3a30c08 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl @@ -0,0 +1,72 @@ +/* -*- 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_configuration_backend_xml_LayerWriter_idl__ +#define __com_sun_star_configuration_backend_xml_LayerWriter_idl__ + +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/io/XActiveDataSource.idl> +#include <com/sun/star/configuration/backend/XLayerHandler.idl> + + +module com { module sun { module star { module configuration { module backend { +module xml { + + +/** + can be used to parse a stream of configuration layer XML. + + <p> The configuration layer data described to a + com::sun::star::configuration::backend::XLayerHandler + is written to a stream as OOR Update XML. + </p> + + @see com::sun::star::configuration::backend::xml::LayerParser + Service that parses configuration layer XML. + + @since OOo 1.1.2 +*/ +published service LayerWriter +{ + + /** accepts events describing the layer data. + */ + interface com::sun::star::configuration::backend::XLayerHandler ; + + + /** provides access to the target stream. + */ + interface com::sun::star::io::XActiveDataSource ; + + + /** allows initializing target stream. + + <p> The target can be passed + as a com::sun::star::io::XOutputStream. + </p> + */ + interface com::sun::star::lang::XInitialization ; + +} ; + +} ; +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl b/offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl new file mode 100644 index 000000000..e8f600425 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl @@ -0,0 +1,72 @@ +/* -*- 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_configuration_backend_xml_SchemaParser_idl__ +#define __com_sun_star_configuration_backend_xml_SchemaParser_idl__ + +#include <com/sun/star/configuration/backend/XSchema.idl> +#include <com/sun/star/io/XActiveDataSink.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module configuration { module backend { +module xml { + + +/** represents a configuration schema that is stored in a stream in + OOR Schema XML format. + + <p> The configuration schema XML from a given stream is parsed and fed to a + com::sun::star::configuration::backend::XSchemaHandler. + </p> + + @see com::sun::star::configuration::backend::xml::LayerParser + Service that parses configuration layer XML. + + @since OOo 1.1.2 +*/ +published service SchemaParser +{ + + /** provides access to the parsed schema data. + */ + interface com::sun::star::configuration::backend::XSchema ; + + + /** provides access to the source XML stream. + */ + interface com::sun::star::io::XActiveDataSink ; + + + /** allows initializing the source stream. + + <p> The source can be passed + as a com::sun::star::io::XInputStream or + as a com::sun::star::xml::sax::InputSource. + </p> + */ + interface com::sun::star::lang::XInitialization ; + +} ; + +} ; +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl b/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl new file mode 100644 index 000000000..1e488492f --- /dev/null +++ b/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl @@ -0,0 +1,65 @@ +/* -*- 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_configuration_bootstrap_BootstrapContext_idl__ +#define __com_sun_star_configuration_bootstrap_BootstrapContext_idl__ + +#include <com/sun/star/uno/XComponentContext.idl> + + +module com { module sun { module star { module configuration { module bootstrap { + + +/** + provides access to a component context that is enhanced with + bootstrap parameters for configuration services from the + associated metaconfiguration mechanism. + + <p> The contained settings are used to initialize the + com::sun::star::configuration::DefaultProvider and + com::sun::star::configuration::backend::DefaultBackend of the + component context. + </p> + <p> The implementation is usually available as a singleton in the context + that it wraps... + </p> + + @since OOo 1.1.2 + + @deprecated +*/ +published service BootstrapContext +{ + + /** + provides access to metaconfiguration data. + + <p>Some values are retrieved from external metaconfiguration, + if they are not overridden in the wrapped context. + </p> + */ + interface com::sun::star::uno::XComponentContext ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/theDefaultProvider.idl b/offapi/com/sun/star/configuration/theDefaultProvider.idl new file mode 100644 index 000000000..16e280ee3 --- /dev/null +++ b/offapi/com/sun/star/configuration/theDefaultProvider.idl @@ -0,0 +1,35 @@ +/* -*- 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/. + */ + +#ifndef _COM_SUN_STAR_CONFIGURATION_THEDEFAULTPROVIDER_IDL +#define _COM_SUN_STAR_CONFIGURATION_THEDEFAULTPROVIDER_IDL + +module com { module sun { module star { module lang { + published interface XMultiServiceFactory; +}; }; }; }; + +module com { module sun { module star { module configuration { + +/** + The default ConfigurationProvider. + + <p>This singleton somewhat arbitrarily makes available the + com::sun::star::lang::XMultiServiceFactory interface of + the (old-style) DefaultProvider service, as it is the most + frequently used one. See the DefaultProvider service for + details.</p> + + @since OOo 1.1.2 +*/ +published singleton theDefaultProvider: + com::sun::star::lang::XMultiServiceFactory; + +}; }; }; }; + +#endif |