summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/configuration
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--offapi/com/sun/star/configuration/AccessRootElement.idl155
-rw-r--r--offapi/com/sun/star/configuration/AdministrationProvider.idl176
-rw-r--r--offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl40
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationAccess.idl235
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationProvider.idl238
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationRegistry.idl93
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl123
-rw-r--r--offapi/com/sun/star/configuration/CorruptedConfigurationException.idl50
-rw-r--r--offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl44
-rw-r--r--offapi/com/sun/star/configuration/DefaultProvider.idl79
-rw-r--r--offapi/com/sun/star/configuration/GroupAccess.idl122
-rw-r--r--offapi/com/sun/star/configuration/GroupElement.idl74
-rw-r--r--offapi/com/sun/star/configuration/GroupUpdate.idl78
-rw-r--r--offapi/com/sun/star/configuration/HierarchyAccess.idl158
-rw-r--r--offapi/com/sun/star/configuration/HierarchyElement.idl109
-rw-r--r--offapi/com/sun/star/configuration/InstallationIncompleteException.idl40
-rw-r--r--offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl42
-rw-r--r--offapi/com/sun/star/configuration/MissingBootstrapFileException.idl42
-rw-r--r--offapi/com/sun/star/configuration/PropertyHierarchy.idl84
-rw-r--r--offapi/com/sun/star/configuration/ReadOnlyAccess.idl36
-rw-r--r--offapi/com/sun/star/configuration/ReadWriteAccess.idl36
-rw-r--r--offapi/com/sun/star/configuration/SetAccess.idl88
-rw-r--r--offapi/com/sun/star/configuration/SetElement.idl166
-rw-r--r--offapi/com/sun/star/configuration/SetUpdate.idl91
-rw-r--r--offapi/com/sun/star/configuration/SimpleSetAccess.idl102
-rw-r--r--offapi/com/sun/star/configuration/SimpleSetUpdate.idl164
-rw-r--r--offapi/com/sun/star/configuration/Update.idl39
-rw-r--r--offapi/com/sun/star/configuration/UpdateRootElement.idl96
-rw-r--r--offapi/com/sun/star/configuration/XReadWriteAccess.idl38
-rw-r--r--offapi/com/sun/star/configuration/XTemplateContainer.idl68
-rw-r--r--offapi/com/sun/star/configuration/XTemplateInstance.idl58
-rw-r--r--offapi/com/sun/star/configuration/XUpdate.idl51
-rw-r--r--offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl42
-rw-r--r--offapi/com/sun/star/configuration/backend/Backend.idl79
-rw-r--r--offapi/com/sun/star/configuration/backend/BackendAccessException.idl43
-rw-r--r--offapi/com/sun/star/configuration/backend/BackendAdapter.idl73
-rw-r--r--offapi/com/sun/star/configuration/backend/BackendSetupException.idl51
-rw-r--r--offapi/com/sun/star/configuration/backend/CannotConnectException.idl51
-rw-r--r--offapi/com/sun/star/configuration/backend/ComponentChangeEvent.idl46
-rw-r--r--offapi/com/sun/star/configuration/backend/ConnectionLostException.idl46
-rw-r--r--offapi/com/sun/star/configuration/backend/CopyImporter.idl72
-rw-r--r--offapi/com/sun/star/configuration/backend/DataImporter.idl114
-rw-r--r--offapi/com/sun/star/configuration/backend/DefaultBackend.idl51
-rw-r--r--offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl72
-rw-r--r--offapi/com/sun/star/configuration/backend/Importer.idl70
-rw-r--r--offapi/com/sun/star/configuration/backend/InsufficientAccessRightsException.idl52
-rw-r--r--offapi/com/sun/star/configuration/backend/InteractionHandler.idl93
-rw-r--r--offapi/com/sun/star/configuration/backend/InvalidAuthenticationMechanismException.idl43
-rw-r--r--offapi/com/sun/star/configuration/backend/Layer.idl94
-rw-r--r--offapi/com/sun/star/configuration/backend/LayerDescriber.idl52
-rw-r--r--offapi/com/sun/star/configuration/backend/LayerFilter.idl76
-rw-r--r--offapi/com/sun/star/configuration/backend/LayerUpdateMerger.idl84
-rw-r--r--offapi/com/sun/star/configuration/backend/LdapMultiLayerStratum.idl47
-rw-r--r--offapi/com/sun/star/configuration/backend/LdapSingleBackend.idl48
-rw-r--r--offapi/com/sun/star/configuration/backend/LdapSingleStratum.idl47
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalDataImporter.idl98
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.idl79
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalSchemaSupplier.idl48
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalSingleBackend.idl48
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalSingleStratum.idl47
-rw-r--r--offapi/com/sun/star/configuration/backend/MalformedDataException.idl80
-rw-r--r--offapi/com/sun/star/configuration/backend/MergeImporter.idl61
-rw-r--r--offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl79
-rw-r--r--offapi/com/sun/star/configuration/backend/MultiLayerStratum.idl55
-rw-r--r--offapi/com/sun/star/configuration/backend/MultiStratumBackend.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/NodeAttribute.idl85
-rw-r--r--offapi/com/sun/star/configuration/backend/OfflineBackend.idl65
-rw-r--r--offapi/com/sun/star/configuration/backend/OnlineBackend.idl52
-rw-r--r--offapi/com/sun/star/configuration/backend/PlatformBackend.idl47
-rw-r--r--offapi/com/sun/star/configuration/backend/PropertyInfo.idl59
-rw-r--r--offapi/com/sun/star/configuration/backend/Schema.idl72
-rw-r--r--offapi/com/sun/star/configuration/backend/SchemaAttribute.idl65
-rw-r--r--offapi/com/sun/star/configuration/backend/SchemaSupplier.idl47
-rw-r--r--offapi/com/sun/star/configuration/backend/SingleBackend.idl80
-rw-r--r--offapi/com/sun/star/configuration/backend/SingleBackendAdapter.idl52
-rw-r--r--offapi/com/sun/star/configuration/backend/SingleLayerStratum.idl55
-rw-r--r--offapi/com/sun/star/configuration/backend/StratumCreationException.idl51
-rw-r--r--offapi/com/sun/star/configuration/backend/SystemIntegration.idl56
-rw-r--r--offapi/com/sun/star/configuration/backend/TemplateIdentifier.idl55
-rw-r--r--offapi/com/sun/star/configuration/backend/UpdatableLayer.idl109
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackend.idl172
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackendChangesListener.idl50
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl64
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackendEntities.idl121
-rw-r--r--offapi/com/sun/star/configuration/backend/XCompositeLayer.idl92
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayer.idl66
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayerContentDescriber.idl70
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayerHandler.idl536
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayerImporter.idl132
-rw-r--r--offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl314
-rw-r--r--offapi/com/sun/star/configuration/backend/XSchema.idl121
-rw-r--r--offapi/com/sun/star/configuration/backend/XSchemaHandler.idl502
-rw-r--r--offapi/com/sun/star/configuration/backend/XSchemaSupplier.idl67
-rw-r--r--offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl122
-rw-r--r--offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl71
-rw-r--r--offapi/com/sun/star/configuration/backend/XUpdateHandler.idl633
-rw-r--r--offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.idl78
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/LayerParser.idl77
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl72
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl72
-rw-r--r--offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl65
-rw-r--r--offapi/com/sun/star/configuration/theDefaultProvider.idl35
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 = &lt;Locale for en_US&gt;</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