summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/configuration')
-rw-r--r--offapi/com/sun/star/configuration/AccessRootElement.idl176
-rw-r--r--offapi/com/sun/star/configuration/AdministrationProvider.idl191
-rw-r--r--offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl51
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationAccess.idl265
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationProvider.idl251
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationRegistry.idl108
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl144
-rw-r--r--offapi/com/sun/star/configuration/CorruptedConfigurationException.idl61
-rw-r--r--offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl55
-rw-r--r--offapi/com/sun/star/configuration/DefaultProvider.idl100
-rw-r--r--offapi/com/sun/star/configuration/GroupAccess.idl143
-rw-r--r--offapi/com/sun/star/configuration/GroupElement.idl89
-rw-r--r--offapi/com/sun/star/configuration/GroupUpdate.idl93
-rw-r--r--offapi/com/sun/star/configuration/HierarchyAccess.idl187
-rw-r--r--offapi/com/sun/star/configuration/HierarchyElement.idl132
-rw-r--r--offapi/com/sun/star/configuration/InstallationIncompleteException.idl51
-rw-r--r--offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl53
-rw-r--r--offapi/com/sun/star/configuration/MissingBootstrapFileException.idl53
-rw-r--r--offapi/com/sun/star/configuration/PropertyHierarchy.idl104
-rw-r--r--offapi/com/sun/star/configuration/SetAccess.idl105
-rw-r--r--offapi/com/sun/star/configuration/SetElement.idl186
-rw-r--r--offapi/com/sun/star/configuration/SetUpdate.idl105
-rw-r--r--offapi/com/sun/star/configuration/SimpleSetAccess.idl122
-rw-r--r--offapi/com/sun/star/configuration/SimpleSetUpdate.idl184
-rw-r--r--offapi/com/sun/star/configuration/Update.idl45
-rw-r--r--offapi/com/sun/star/configuration/UpdateRootElement.idl110
-rw-r--r--offapi/com/sun/star/configuration/XTemplateContainer.idl80
-rw-r--r--offapi/com/sun/star/configuration/XTemplateInstance.idl70
-rw-r--r--offapi/com/sun/star/configuration/XUpdate.idl57
-rw-r--r--offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl50
-rw-r--r--offapi/com/sun/star/configuration/backend/Backend.idl100
-rw-r--r--offapi/com/sun/star/configuration/backend/BackendAccessException.idl51
-rw-r--r--offapi/com/sun/star/configuration/backend/BackendAdapter.idl94
-rw-r--r--offapi/com/sun/star/configuration/backend/BackendSetupException.idl59
-rw-r--r--offapi/com/sun/star/configuration/backend/CannotConnectException.idl59
-rw-r--r--offapi/com/sun/star/configuration/backend/ComponentChangeEvent.idl58
-rw-r--r--offapi/com/sun/star/configuration/backend/ConnectionLostException.idl54
-rw-r--r--offapi/com/sun/star/configuration/backend/CopyImporter.idl89
-rw-r--r--offapi/com/sun/star/configuration/backend/DataImporter.idl127
-rw-r--r--offapi/com/sun/star/configuration/backend/DefaultBackend.idl64
-rw-r--r--offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl85
-rw-r--r--offapi/com/sun/star/configuration/backend/Importer.idl87
-rw-r--r--offapi/com/sun/star/configuration/backend/InsufficientAccessRightsException.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/InteractionHandler.idl102
-rw-r--r--offapi/com/sun/star/configuration/backend/InvalidAuthenticationMechanismException.idl51
-rw-r--r--offapi/com/sun/star/configuration/backend/Layer.idl117
-rw-r--r--offapi/com/sun/star/configuration/backend/LayerDescriber.idl41
-rw-r--r--offapi/com/sun/star/configuration/backend/LayerFilter.idl94
-rw-r--r--offapi/com/sun/star/configuration/backend/LayerUpdateMerger.idl101
-rw-r--r--offapi/com/sun/star/configuration/backend/LdapMultiLayerStratum.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/LdapSingleBackend.idl61
-rw-r--r--offapi/com/sun/star/configuration/backend/LdapSingleStratum.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalDataImporter.idl111
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.idl92
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalSchemaSupplier.idl61
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalSingleBackend.idl61
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalSingleStratum.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/MalformedDataException.idl91
-rw-r--r--offapi/com/sun/star/configuration/backend/MergeImporter.idl77
-rw-r--r--offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl90
-rw-r--r--offapi/com/sun/star/configuration/backend/MultiLayerStratum.idl73
-rw-r--r--offapi/com/sun/star/configuration/backend/MultiStratumBackend.idl76
-rw-r--r--offapi/com/sun/star/configuration/backend/NodeAttribute.idl101
-rw-r--r--offapi/com/sun/star/configuration/backend/OfflineBackend.idl78
-rw-r--r--offapi/com/sun/star/configuration/backend/OnlineBackend.idl65
-rw-r--r--offapi/com/sun/star/configuration/backend/PlatformBackend.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/PropertyInfo.idl69
-rw-r--r--offapi/com/sun/star/configuration/backend/Schema.idl87
-rw-r--r--offapi/com/sun/star/configuration/backend/SchemaAttribute.idl80
-rw-r--r--offapi/com/sun/star/configuration/backend/SchemaSupplier.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/SingleBackend.idl101
-rw-r--r--offapi/com/sun/star/configuration/backend/SingleBackendAdapter.idl65
-rw-r--r--offapi/com/sun/star/configuration/backend/SingleLayerStratum.idl73
-rw-r--r--offapi/com/sun/star/configuration/backend/StratumCreationException.idl62
-rw-r--r--offapi/com/sun/star/configuration/backend/SystemIntegration.idl72
-rw-r--r--offapi/com/sun/star/configuration/backend/TemplateIdentifier.idl67
-rw-r--r--offapi/com/sun/star/configuration/backend/UpdatableLayer.idl127
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackend.idl206
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackendChangesListener.idl65
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl80
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackendEntities.idl142
-rw-r--r--offapi/com/sun/star/configuration/backend/XCompositeLayer.idl118
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayer.idl91
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayerContentDescriber.idl95
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayerHandler.idl570
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayerImporter.idl163
-rw-r--r--offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl347
-rw-r--r--offapi/com/sun/star/configuration/backend/XSchema.idl148
-rw-r--r--offapi/com/sun/star/configuration/backend/XSchemaHandler.idl538
-rw-r--r--offapi/com/sun/star/configuration/backend/XSchemaSupplier.idl89
-rw-r--r--offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl151
-rw-r--r--offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl92
-rw-r--r--offapi/com/sun/star/configuration/backend/XUpdateHandler.idl673
-rw-r--r--offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.idl97
-rw-r--r--offapi/com/sun/star/configuration/backend/makefile.mk103
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/LayerParser.idl98
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl93
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl93
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/makefile.mk43
-rw-r--r--offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl76
-rw-r--r--offapi/com/sun/star/configuration/bootstrap/makefile.mk41
-rw-r--r--offapi/com/sun/star/configuration/makefile.mk74
102 files changed, 11340 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 000000000000..e6cab960ecb6
--- /dev/null
+++ b/offapi/com/sun/star/configuration/AccessRootElement.idl
@@ -0,0 +1,176 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_AccessRootElement_idl__
+#define __com_sun_star_configuration_AccessRootElement_idl__
+
+#ifndef __com_sun_star_configuration_HierarchyElement_idl__
+#include <com/sun/star/configuration/HierarchyElement.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XLocalizable_idl__
+#include <com/sun/star/lang/XLocalizable.idl>
+#endif
+
+#ifndef __com_sun_star_util_XChangesNotifier_idl__
+#include <com/sun/star/util/XChangesNotifier.idl>
+#endif
+
+//=============================================================================
+
+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 <type scope="com::sun::star::container">XChild</type> 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 <type>ConfigurationProvider</type> 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 <member scope="com::sun::star::lang">XComponent::dispose()</member>.
+ 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 an <type scope="com::sun::star::lang">XEventListener</type>
+ 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
+ <type scope="com::sun::star::util">XChangesListener</type>,
+ 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
+ <type scope="com::sun::star::util">ChangesEvent</type>. For Example:
+ </p>
+
+ <p>
+ If <member scope="com::sun::star::beans">XMultiPropertySet::setPropertyValues()</member>
+ or <member scope="com::sun::star::beans">XMultiHierarchicalPropertySet::setHierarchicalPropertyValues()</member>
+ 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
+ <member scope="com::sun::star::util">XChangesBatch::commitChanges()</member>
+ 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
+ <member scope="com::sun::star::lang">XLocalizable::setLocale()</member>
+ is therefore not recommended.
+ </p>
+*/
+ [optional] interface com::sun::star::lang::XLocalizable;
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
+
diff --git a/offapi/com/sun/star/configuration/AdministrationProvider.idl b/offapi/com/sun/star/configuration/AdministrationProvider.idl
new file mode 100644
index 000000000000..0c4a419fcf1f
--- /dev/null
+++ b/offapi/com/sun/star/configuration/AdministrationProvider.idl
@@ -0,0 +1,191 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_ConfigurationProvider_idl__
+#define __com_sun_star_configuration_ConfigurationProvider_idl__
+
+#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__
+#include <com/sun/star/lang/XMultiServiceFactory.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration {
+
+//=============================================================================
+/** manages one, or more, complete sets of configuration data for
+ administrative puposes 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 users' 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
+ <type scope="com::sun::star::lang">ServiceManager</type>. The arguments passed to
+ <member scope="com::sun::star::lang">XMultiComponentFactory::createInstanceWithContextAndArguments()</member>
+ 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 <type> ConfigurationProvider</type> 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 a <type>AdministrationProvider</type> 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
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member>
+ 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 <type>ConfigurationAccess</type>.
+ To reflect its <em>element role</em> as root of the view, it implements
+ service <type>AccessRootElement</type>.
+ </p>
+
+ <p>Using the second form requests an updatable view of the configuration.
+ The object that is created should implement service
+ <type>ConfigurationUpdateAccess</type>. To reflect its <em>element role</em>
+ which includes controlling updates for the whole view, it implements
+ service <type>UpdateRootElement</type>.
+ <BR />If the root element of the view is marked read-only (as indicated
+ by <const scope="com::sun::star::beans">PropertyAttributes::READONLY</const>),
+ the implementation may either raise an exception or return a (read-only)
+ <type>ConfigurationAccess</type>/<type>AccessRootElement</type> instead.
+ </p>
+
+ <p>The arguments passed to
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member>
+ 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 <type scope="com::sun::star::beans">PropertyValue</type>
+ or a <type scope="com::sun::star::beans">NamedValue</type>,
+ 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 <atom>string</atom>.
+ 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 decendants. The administrative entity is the default for the
+ <type>AdministrationProvider</type>. 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
+ <type>ConfigurationProvider</type>.
+ </p>
+ <p>One notable difference exists for parameter <code>"Locale"</code>. For a
+ <type>ConfigurationProvider</type> 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 <type>SetAccess</type> using the language names as accessors.
+ This also allows targetted setting of values for selected locales.
+ This behavior can be requested explicitly by specifing a special argument
+ value <code>locale = "*"</code>.
+ </p>
+
+ <p><member scope="com::sun::star::lang">XMultiServiceFactory::createInstance()</member>
+ 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
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member>
+ 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 <member scope="com::sun::star::lang">XComponent::dispose()</member>.
+ </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
+
+
diff --git a/offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl b/offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl
new file mode 100644
index 000000000000..7e6bb2daaaff
--- /dev/null
+++ b/offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl
@@ -0,0 +1,51 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_CannotLoadConfigurationException_idl__
+#define __com_sun_star_configuration_CannotLoadConfigurationException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+//=============================================================================
+
+ 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
diff --git a/offapi/com/sun/star/configuration/ConfigurationAccess.idl b/offapi/com/sun/star/configuration/ConfigurationAccess.idl
new file mode 100644
index 000000000000..41662f03f5e2
--- /dev/null
+++ b/offapi/com/sun/star/configuration/ConfigurationAccess.idl
@@ -0,0 +1,265 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_ConfigurationAccess_idl__
+#define __com_sun_star_configuration_ConfigurationAccess_idl__
+
+#ifndef __com_sun_star_configuration_HierarchyAccess_idl__
+#include <com/sun/star/configuration/HierarchyAccess.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_HierarchyElement_idl__
+#include <com/sun/star/configuration/HierarchyElement.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_SetAccess_idl__
+#include <com/sun/star/configuration/SetAccess.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_GroupAccess_idl__
+#include <com/sun/star/configuration/GroupAccess.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_AccessRootElement_idl__
+#include <com/sun/star/configuration/AccessRootElement.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_SetElement_idl__
+#include <com/sun/star/configuration/SetElement.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_GroupElement_idl__
+#include <com/sun/star/configuration/GroupElement.idl>
+#endif
+
+//=============================================================================
+
+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 <atom>string</atom>.</p>
+ <p>Sequences are represented as <atom dim="[]">string</atom>.</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 <atom>boolean</atom>.
+ <p>Sequences are represented as <atom dim="[]">boolean</atom>.</p>
+ </li>
+ <li><strong>short</strong> can hold a 16-bit signed integer.
+ <p>Values are represented as <atom>short</atom>.</p>
+ <p>Sequences are represented as <atom dim="[]">short</atom>.</p>
+ </li>
+ <li><strong>int</strong> can hold a 32-bit signed integer.
+ <p>Values are represented as <atom>long</atom>.</p>
+ <p>Sequences are represented as <atom dim="[]">long</atom>.</p>
+ </li>
+ <li><strong>long</strong> can hold a 64-bit signed integer.
+ <p>Values are represented as <atom>hyper</atom>.</p>
+ <p>Sequences are represented as <atom dim="[]">hyper</atom>.</p>
+ </li>
+ <li><strong>double</strong> can hold a floating point number.
+ <p>Values are represented as <atom>double</atom>.</p>
+ <p>Sequences are represented as <atom dim="[]">double</atom>.</p>
+ </li>
+ <li><strong>binary</strong> can hold a sequence of octets.
+ <p>Values are represented as <atom dim="[]">byte</atom>.</p>
+ <p>Sequences are represented as <atom dim="[][]">byte</atom>.</p>
+ </li>
+ </ul>
+
+ <p>Within templates an additional type <strong>any</strong> can occur. When
+ such a template is used to create a new <type>SetElement</type>, the type
+ of the element is initially reported as <atom>any</atom> (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 <const scope="com::sun::star::beans">PropertyAttribute::MAYBEVOID</const> ),
+ its contents may be <NULL/>.
+ </p>
+
+ <p>The configuration should support explicit access to default values
+ (implementing <type scope="com::sun::star::beans">XPropertyState</type>
+ and <type scope="com::sun::star::beans">XPropertyWithState</type>).
+ </p>
+
+ @see ConfigurationProvider
+ Root instances of this service can be requested from a
+ <type>ConfigurationProvider</type>.
+
+ @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><type>SetAccess</type> if this element is a <em>Set</em>.</li>
+ <li><type>GroupAccess</type> 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><type>AccessRootElement</type> if this element is the
+ <em>Root</em> of the whole hierarchy. Objects that can be
+ created directly by a <type>ConfigurationProvider</type>
+ implement this service.</li>
+ <li><type>SetElement</type> if this element may be contained in a
+ <em>Set</em>.</li>
+ <li><type>GroupElement</type> if this element is a child of a
+ <em>Group</em>.</li>
+ </ul>
+
+ */
+ service HierarchyElement;
+
+ /** specializes <type>HierarchyAccess</type>, if this element is a <em>Set</em>.
+
+ <p>This is an alternative to <type>GroupAccess</type>.
+ </p>
+ */
+ [optional] service SetAccess;
+
+ /** specializes <type>HierarchyAccess</type>,
+ if this element is a <em>Group</em>.
+ <p>This is an alternative to <type>SetAccess</type>.
+ </p>
+ */
+ [optional] service GroupAccess;
+
+ /** specializes <type>HierarchyElement</type>,
+ if this element is the <em>Root</em> of the whole hierarchy.
+ <p>This is an alternative to <type>SetElement</type>
+ or <type>GroupElement</type>.
+ </p>
+
+ @see ConfigurationProvider
+ Instances obtained from a <type>ConfigurationProvider</type> will
+ implement this version of <type>HierarchyElement</type>.
+ */
+ [optional] service AccessRootElement;
+
+ /** specializes <type>HierarchyElement</type>,
+ if this element may be contained in a <em>Set</em>.
+ <p>This is an alternative to <type>AccessRootElement</type>
+ or <type>GroupElement</type>.
+ </p>
+ */
+ [optional] service SetElement;
+
+ /** specializes <type>HierarchyElement</type>,
+ if this element is a child of a <em>Group</em>.
+ <p>This is an alternative to <type>AccessRootElement</type>
+ or <type>SetElement</type>.
+ </p>
+*/
+ [optional] service GroupElement;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
+
diff --git a/offapi/com/sun/star/configuration/ConfigurationProvider.idl b/offapi/com/sun/star/configuration/ConfigurationProvider.idl
new file mode 100644
index 000000000000..c6924acf6c6e
--- /dev/null
+++ b/offapi/com/sun/star/configuration/ConfigurationProvider.idl
@@ -0,0 +1,251 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_ConfigurationProvider_idl__
+#define __com_sun_star_configuration_ConfigurationProvider_idl__
+
+#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__
+#include <com/sun/star/lang/XMultiServiceFactory.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type scope="com::sun::star::lang">ServiceManager</type>. The arguments passed to
+ <member scope="com::sun::star::lang">XMultiComponentFactory::createInstanceWithContextAndArguments()</member>
+ select the configuration data source. Arguments must be provided as
+ <type scope="com::sun::star::beans">NamedValue</type>
+ or <type scope="com::sun::star::beans">PropertyValue</type>.
+ 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
+ <type scope="com::sun::star::configuration">DefaultProvider</type> object.
+ </p>
+ <p>Some arguments for
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member>
+ 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>
+ */
+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
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member>
+ 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 <type>ConfigurationAccess</type>.
+ To reflect its <em>element role</em> as root of the view, it implements
+ service <type>AccessRootElement</type>.
+ </p>
+
+ <p>Using the second form requests an updatable view of the configuration.
+ The object that is created should implement service
+ <type>ConfigurationUpdateAccess</type>. To reflect its <em>element role</em>
+ which includes controlling updates for the whole view, it implements
+ service <type>UpdateRootElement</type>.
+ <BR />If the root element of the view is marked read-only (as indicated
+ by <const scope="com::sun::star::beans">PropertyAttributes::READONLY</const>),
+ the implementation may either raise an exception or return a (read-only)
+ <type>ConfigurationAccess</type>/<type>AccessRootElement</type> instead.
+ </p>
+
+ <p>The arguments passed to
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member>
+ 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 <type scope="com::sun::star::beans">PropertyValue</type>
+ or a <type scope="com::sun::star::beans">NamedValue</type>,
+ 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 <atom>string</atom>.
+ 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 decendants.
+ </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> : <atom>string</atom></dt>
+ <dd>specifies the location of the view root in the configuration.</dd>
+ <dt><code>"depth"</code> : <atom>short</atom></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> : <type scope="com::sun::star::lang">Locale</type></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> : <atom>boolean</atom></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
+ <member scope="com::sun::star::util">XChangesBatch::commitChanges()</member>
+ 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> : <atom>boolean</atom></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><member scope="com::sun::star::lang">XMultiServiceFactory::createInstance()</member>
+ 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
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member>
+ 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 <member scope="com::sun::star::lang">XComponent::dispose()</member>.
+ Note that the default provider is owned by the
+ <type scope="com::sun::star::lang">ServiceManager</type> 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
+
+
diff --git a/offapi/com/sun/star/configuration/ConfigurationRegistry.idl b/offapi/com/sun/star/configuration/ConfigurationRegistry.idl
new file mode 100644
index 000000000000..870af90e7986
--- /dev/null
+++ b/offapi/com/sun/star/configuration/ConfigurationRegistry.idl
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_ConfigurationRegistry_idl__
+#define __com_sun_star_configuration_ConfigurationRegistry_idl__
+
+//=============================================================================
+
+#ifndef __com_sun_star_registry_XSimpleRegistry_idl__
+#include <com/sun/star/registry/XSimpleRegistry.idl>
+#endif
+#ifndef __com_sun_star_util_XFlushable_idl__
+#include <com/sun/star/util/XFlushable.idl>
+#endif
+
+module com { module sun { module star { module configuration {
+
+//=============================================================================
+
+
+/* provides access to a configuration tree as a registry.
+
+ <p>This service is deprecated,
+ <type scope="com.sun.star.configuration">ConfigurationProvider</type> should
+ be used instead.</p>
+
+ <p> Using the <type scope="com::sun::star::registry">XSimpleRegistry</type>
+ interface, the service can be bound to a subtree within the
+ configuration tree, as provided by an
+ <type scope="com.sun.star.configuration">ConfigurationProvider</type>
+ 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
+ <member scope="com.sun.star.registry">XRegistryKey::createKey()</member> method is not allowed
+ for some nodes.
+ </p><p>
+ Thus anybody using this service is strongly advised to read and understand the specification
+ of an configuration provider (<type scope="com.sun.star.configuration">ConfigurationProvider</type>)
+ and all of it's aspects.
+ </p>
+
+ @author Frank Schoenheit
+ @version 1.0 2000/07/06
+*/
+
+published service ConfigurationRegistry
+{
+ /** controls the binding of the object to a configuration sub tree.
+ <p><member scope="com::sun::star::registry">XSimpleRegistry::open()</member>
+ 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
+ <type scope="com::sun::star::configuration">ConfigurationUpdateAccess</type>
+ service, all changes made to an configuration subtree have to be commited
+ before they become persistent.
+ To do this for a configuration accessed as a registry, call
+ <method scope="com::sun::star::util">XFlushable::flush</method>.
+ </p>
+ <p><strong>Warning:</strong><em>Changes that are not flushed will be
+ lost.</em>
+ </p>
+ */
+ interface com::sun::star::util::XFlushable;
+};
+
+
+//=============================================================================
+
+}; }; }; };
+
+
+#endif
+
diff --git a/offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl b/offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl
new file mode 100644
index 000000000000..bd13b167c2c5
--- /dev/null
+++ b/offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl
@@ -0,0 +1,144 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_ConfigurationUpdateAccess_idl__
+#define __com_sun_star_configuration_ConfigurationUpdateAccess_idl__
+
+#ifndef __com_sun_star_configuration_ConfigurationAccess_idl__
+#include <com/sun/star/configuration/ConfigurationAccess.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_SetUpdate_idl__
+#include <com/sun/star/configuration/SetUpdate.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_GroupUpdate_idl__
+#include <com/sun/star/configuration/GroupUpdate.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_UpdateRootElement_idl__
+#include <com/sun/star/configuration/UpdateRootElement.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration {
+
+//=============================================================================
+/** provides modifying access to a fragment of the configuration hierarchy.
+
+ <p>Extends <type>ConfigurationAccess</type> 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
+ <const scope="com::sun::star::beans">PropertyAttribute::READONLY</const>),
+ in which case they only need implement <type>ConfigurationAccess</type>.
+ </p>
+
+ <p>The classification of implementations that is described for
+ <type>ConfigurationAccess</type> 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 <type>ConfigurationAccess</type>.
+ </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 <type scope="com::sun::star::util">XChangesBatch</type>.
+ For elements of a <em>set</em> or a <em>group</em> no additinal
+ interfaces are supported.
+ </li>
+ </ul>
+
+ @see ConfigurationProvider
+ Root instances of this service can be requested from a
+ <type>ConfigurationProvider</type>
+*/
+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 <type>HierarchyAccess</type> specialization implemented will be
+ further specialized to support modifying access.
+ Implementations shall therefore implement one of <type>SetUpdate</type> or
+ <type>GroupUpdate</type> depending on the <em>Container</em> role.
+ </p>
+
+ <p>If the <type>HierarchyElement</type> specialization that is implemented
+ is <type>AccessRootElement</type>, the implementation must support the
+ extended functionality of <type>UpdateRootElement</type>. Otherwise, there
+ are no new requirements mandated by the <em>Element</em> role.
+ </p>
+
+ */
+ service ConfigurationAccess;
+
+ /** specializes <type>SetAccess</type> to support modifying the element.
+
+ <p>Implemented, if this element is a <em>Set</em>.
+ Otherwise service <type>GroupUpdate</type> is provided.
+ </p>
+ */
+ [optional] service SetUpdate;
+
+ /** specializes <type>GroupAccess</type> to support modifying contained
+ data.
+
+ <p>Implemented, if this element is a <em>Group</em>.
+ Otherwise service <type>SetUpdate</type> is provided.
+ </p>
+ */
+ [optional] service GroupUpdate;
+
+ /** specializes <type>AccessRootElement</type> 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 <type>SetElement</type> or <type>GroupElement</type> is provided.
+ </p>
+
+ @see ConfigurationProvider
+ Instances obtained from a <type>ConfigurationProvider</type> will
+ implement this version of <type>HierarchyElement</type>.
+ */
+ [optional] service UpdateRootElement;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
+
diff --git a/offapi/com/sun/star/configuration/CorruptedConfigurationException.idl b/offapi/com/sun/star/configuration/CorruptedConfigurationException.idl
new file mode 100644
index 000000000000..a2e827003eb3
--- /dev/null
+++ b/offapi/com/sun/star/configuration/CorruptedConfigurationException.idl
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_CorruptedConfigurationException_idl__
+#define __com_sun_star_configuration_CorruptedConfigurationException_idl__
+
+#ifndef __com_sun_star_uno_RuntimeException_idl__
+#include <com/sun/star/uno/RuntimeException.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl b/offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl
new file mode 100644
index 000000000000..5373cb570a91
--- /dev/null
+++ b/offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_CorruptedUIConfigurationException_idl__
+#define __com_sun_star_configuration_CorruptedUIConfigurationException_idl__
+
+#ifndef __com_sun_star_configuration_CorruptedConfigurationException_idl__
+#include <com/sun/star/configuration/CorruptedConfigurationException.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/offapi/com/sun/star/configuration/DefaultProvider.idl b/offapi/com/sun/star/configuration/DefaultProvider.idl
new file mode 100644
index 000000000000..b41bdeec33a5
--- /dev/null
+++ b/offapi/com/sun/star/configuration/DefaultProvider.idl
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_DefaultProvider_idl__
+#define __com_sun_star_configuration_DefaultProvider_idl__
+
+#ifndef __com_sun_star_configuration_ConfigurationProvider_idl__
+#include <com/sun/star/configuration/ConfigurationProvider.idl>
+#endif
+
+#ifndef __com_sun_star_util_XRefreshable_idl__
+#include <com/sun/star/util/XRefreshable.idl>
+#endif
+
+#ifndef __com_sun_star_util_XFlushable_idl__
+#include <com/sun/star/util/XFlushable.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XLocalizable_idl__
+#include <com/sun/star/lang/XLocalizable.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module configuration {
+
+//=============================================================================
+
+/**
+ is a <type>ConfigurationProvider</type>, that is
+ the default <type>ConfigurationProvider</type> for its
+ <type scope="com::sun::star::uno">XComponentContext</type>.
+
+ <p>This object is accessible as singleton within the context</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.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.0
+ */
+
+ [optional,property] boolean EnableAsync;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ;
+
+#endif
diff --git a/offapi/com/sun/star/configuration/GroupAccess.idl b/offapi/com/sun/star/configuration/GroupAccess.idl
new file mode 100644
index 000000000000..46c0312eb617
--- /dev/null
+++ b/offapi/com/sun/star/configuration/GroupAccess.idl
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_GroupAccess_idl__
+#define __com_sun_star_configuration_GroupAccess_idl__
+
+#ifndef __com_sun_star_configuration_HierarchyAccess_idl__
+#include <com/sun/star/configuration/HierarchyAccess.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_PropertyHierarchy_idl__
+#include <com/sun/star/configuration/PropertyHierarchy.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XPropertyState_idl__
+#include <com/sun/star/beans/XPropertyState.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XMultiPropertyState_idl__
+#include <com/sun/star/beans/XMultiPropertyStates.idl>
+#endif
+
+//=============================================================================
+
+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
+ Objects' properties may change, but not which properties they have.
+ Therefore, dynamic elements of the hierarchy (see <type>SetAccess</type>)
+ do not implement service <type>PropertyHierarchy</type>.
+ </p>
+
+ <p>If such elements occur as properties or subproperties of an implementation,
+ it is not specified whether direct subproperty access using
+ <type scope="com::sun::star::beans">XHierarchicalPropertySet</type> or
+ <type scope="com::sun::star::beans">XMultiHierarchicalPropertySet</type> can
+ be used to access descendants of such elements.
+ </p>
+
+ <p>Similarly, information about such descendants may not be available from
+ the <type scope="com::sun::star::beans">XHierarchicalPropertySetInfo</type>
+ 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
+ <const scope="com::sun::star::beans">PropertyAttribute::READONLY</const> 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 <type>HierarchyAccess</type> 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 <type>HierarchyAccess</type> applies.
+ </p>
+*/
+ [optional] interface com::sun::star::beans::XMultiPropertyStates;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
+
diff --git a/offapi/com/sun/star/configuration/GroupElement.idl b/offapi/com/sun/star/configuration/GroupElement.idl
new file mode 100644
index 000000000000..0f66580b0c92
--- /dev/null
+++ b/offapi/com/sun/star/configuration/GroupElement.idl
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_GroupElement_idl__
+#define __com_sun_star_configuration_GroupElement_idl__
+
+#ifndef __com_sun_star_configuration_HierarchyElement_idl__
+#include <com/sun/star/configuration/HierarchyElement.idl>
+#endif
+
+#ifndef __com_sun_star_container_XChild_idl__
+#include <com/sun/star/container/XChild.idl>
+#endif
+
+//=============================================================================
+
+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><member scope="com::sun::star::container">XChild::getParent()</member>
+ shall not return NULL.
+ </p>
+
+ <p><em>Setting a different parent is not supported.</em></p>
+*/
+ interface com::sun::star::container::XChild;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
+
diff --git a/offapi/com/sun/star/configuration/GroupUpdate.idl b/offapi/com/sun/star/configuration/GroupUpdate.idl
new file mode 100644
index 000000000000..0c7184c003c7
--- /dev/null
+++ b/offapi/com/sun/star/configuration/GroupUpdate.idl
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_GroupUpdate_idl__
+#define __com_sun_star_configuration_GroupUpdate_idl__
+
+#ifndef __com_sun_star_configuration_GroupAccess_idl__
+#include <com/sun/star/configuration/GroupAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_XNameReplace_idl__
+#include <com/sun/star/container/XNameReplace.idl>
+#endif
+
+//=============================================================================
+
+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 <type>GroupAccess</type> 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
+ <const scope="com::sun::star::beans">PropertyAttribute::READONLY</const>.
+ </p>
+*/
+ service GroupAccess;
+
+/** allows replacing values.
+
+ <p>This service extends the interface
+ <type scope="com::sun::star::container">XNameAccess</type> supported
+ by service <type>GroupAccess</type> to allow changing values.
+ This strongly overlaps with functionality available through
+ <type>PropertyHierarchy</type> (from <type>GroupAccess</type>), 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
+ <type scope="com::sun::star::beans">XPropertySet</type> or
+ <type scope="com::sun::star::beans">XMultiPropertySet</type>.
+ </p>
+
+ <p>Elements of this group may be replaced only if they are of simple type.
+ The type returned by
+ <member scope="com::sun::star::container">XElementAccess::getElementType()</member>
+ must not be an interface type. Replacing whole subtrees is not supported.
+ </p>
+*/
+ interface com::sun::star::container::XNameReplace;
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
+
diff --git a/offapi/com/sun/star/configuration/HierarchyAccess.idl b/offapi/com/sun/star/configuration/HierarchyAccess.idl
new file mode 100644
index 000000000000..a5779042cd42
--- /dev/null
+++ b/offapi/com/sun/star/configuration/HierarchyAccess.idl
@@ -0,0 +1,187 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_HierarchyAccess_idl__
+#define __com_sun_star_configuration_HierarchyAccess_idl__
+
+#ifndef __com_sun_star_container_XNameAccess_idl__
+#include <com/sun/star/container/XNameAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__
+#include <com/sun/star/container/XHierarchicalNameAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_XContainer_idl__
+#include <com/sun/star/container/XContainer.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XExactName_idl__
+#include <com/sun/star/beans/XExactName.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XPropertySetInfo_idl__
+#include <com/sun/star/beans/XPropertySetInfo.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XPropertyState_idl__
+#include <com/sun/star/beans/XPropertyState.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XMultiPropertyState_idl__
+#include <com/sun/star/beans/XMultiPropertyStates.idl>
+#endif
+
+//=============================================================================
+
+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 <type>HierarchyElement</type>, 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><member scope="com::sun::star::container">XNameAccess::getByName()</member>
+ returns an <atom>any</atom> 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><member scope="com::sun::star::container">XHierarchicalNameAccess::getByHierarchicalName()</member>
+ returns an <atom>any</atom> 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
+ <type scope="com::sun::star::container">XNameAccess</type>,
+ <type scope="com::sun::star::container">XHierarchicalNameAccess</type>,
+ <type scope="com::sun::star::beans">XPropertySet</type> 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 hierachical
+ 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 <type scope="com::sun::star::beans">PropertyAttribute</type>
+ values or if the same information is available by other means,
+ e.g. if the implementation supports
+ <member scope="com::sun::star::beans">XPropertySet::getPropertySetInfo()</member>.
+ </p>
+
+ <p>If a child of this node is an object that implements
+ <type scope="com::sun::star::beans">XProperty</type>, then this implementation
+ returns the same <type scope="com::sun::star::beans">Property</type> 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
+ <const scope="com::sun::star::beans">PropertyAttribute::MAYBEDEFAULT</const>),
+ they should implement
+ <type scope="com::sun::star::beans">XPropertyWithState</type>, in which case
+ the <type scope="com::sun::star::beans">PropertyState</type> 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
+ <const scope="com::sun::star::beans">PropertyAttribute::MAYBEDEFAULT</const>),
+ they should implement
+ <type scope="com::sun::star::beans">XPropertyWithState</type>, in which case
+ the <type scope="com::sun::star::beans">PropertyState</type> 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
diff --git a/offapi/com/sun/star/configuration/HierarchyElement.idl b/offapi/com/sun/star/configuration/HierarchyElement.idl
new file mode 100644
index 000000000000..7a784821e202
--- /dev/null
+++ b/offapi/com/sun/star/configuration/HierarchyElement.idl
@@ -0,0 +1,132 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_HierarchyElement_idl__
+#define __com_sun_star_configuration_HierarchyElement_idl__
+
+#ifndef __com_sun_star_container_XNamed_idl__
+#include <com/sun/star/container/XNamed.idl>
+#endif
+
+#ifndef __com_sun_star_container_XHierarchicalName_idl__
+#include <com/sun/star/container/XHierarchicalName.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XProperty_idl__
+#include <com/sun/star/beans/XProperty.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XPropertyWithState_idl__
+#include <com/sun/star/beans/XPropertyWithState.idl>
+#endif
+
+#ifndef __com_sun_star_container_XChild_idl__
+#include <com/sun/star/container/XChild.idl>
+#endif
+
+//=============================================================================
+
+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 <type>HierarchyAccess</type>, 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 <type scope="com::sun::star::beans">PropertyAttribute</type>
+ values.
+ </p>
+
+ <p>If the parent of this object implements
+ <type scope="com::sun::star::beans">XPropertySetInfo</type>, then this returns
+ the same <type scope="com::sun::star::beans">Property</type> as the
+ <type scope="com::sun::star::beans">XPropertySetInfo</type> 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
+ <type scope="com::sun::star::beans">XPropertyState</type>, 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><member scope="com::sun::star::container">XChild::getParent()</member>
+ 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
diff --git a/offapi/com/sun/star/configuration/InstallationIncompleteException.idl b/offapi/com/sun/star/configuration/InstallationIncompleteException.idl
new file mode 100644
index 000000000000..568c36674286
--- /dev/null
+++ b/offapi/com/sun/star/configuration/InstallationIncompleteException.idl
@@ -0,0 +1,51 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_InstallationIncompleteException_idl__
+#define __com_sun_star_configuration_InstallationIncompleteException_idl__
+
+#ifndef __com_sun_star_configuration_CannotLoadConfigurationException_idl__
+#include <com/sun/star/configuration/CannotLoadConfigurationException.idl>
+#endif
+
+//=============================================================================
+
+ 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
diff --git a/offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl b/offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl
new file mode 100644
index 000000000000..d7cba09edf41
--- /dev/null
+++ b/offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl
@@ -0,0 +1,53 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_InvalidBootstrapFileException_idl__
+#define __com_sun_star_configuration_InvalidBootstrapFileException_idl__
+
+#ifndef __com_sun_star_configuration_CannotLoadConfigurationException_idl__
+#include <com/sun/star/configuration/CannotLoadConfigurationException.idl>
+#endif
+
+//=============================================================================
+
+ 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
diff --git a/offapi/com/sun/star/configuration/MissingBootstrapFileException.idl b/offapi/com/sun/star/configuration/MissingBootstrapFileException.idl
new file mode 100644
index 000000000000..b9588dc09a83
--- /dev/null
+++ b/offapi/com/sun/star/configuration/MissingBootstrapFileException.idl
@@ -0,0 +1,53 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_MissingBootstrapFileException_idl__
+#define __com_sun_star_configuration_MissingBootstrapFileException_idl__
+
+#ifndef __com_sun_star_configuration_CannotLoadConfigurationException_idl__
+#include <com/sun/star/configuration/CannotLoadConfigurationException.idl>
+#endif
+
+//=============================================================================
+
+ 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
diff --git a/offapi/com/sun/star/configuration/PropertyHierarchy.idl b/offapi/com/sun/star/configuration/PropertyHierarchy.idl
new file mode 100644
index 000000000000..3d37344a2c33
--- /dev/null
+++ b/offapi/com/sun/star/configuration/PropertyHierarchy.idl
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_PropertyHierarchy_idl__
+#define __com_sun_star_configuration_PropertyHierarchy_idl__
+
+#ifndef __com_sun_star_beans_XPropertySet_idl__
+#include <com/sun/star/beans/XPropertySet.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XMultiPropertySet_idl__
+#include <com/sun/star/beans/XMultiPropertySet.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XHierarchicalPropertySet_idl__
+#include <com/sun/star/beans/XHierarchicalPropertySet.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XMultiHierarchicalPropertySet_idl__
+#include <com/sun/star/beans/XMultiHierarchicalPropertySet.idl>
+#endif
+
+//=============================================================================
+
+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 <type scope="com::sun::star::beans">XProperty</type> to allow
+ direct access to information about the object.
+ If such objects have properties of their own, they should fully implement
+ <type>PropertyHierarchy</type> 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
diff --git a/offapi/com/sun/star/configuration/SetAccess.idl b/offapi/com/sun/star/configuration/SetAccess.idl
new file mode 100644
index 000000000000..9b564d90eabd
--- /dev/null
+++ b/offapi/com/sun/star/configuration/SetAccess.idl
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_SetAccess_idl__
+#define __com_sun_star_configuration_SetAccess_idl__
+
+#ifndef __com_sun_star_configuration_HierarchyAccess_idl__
+#include <com/sun/star/configuration/HierarchyAccess.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_SimpleSetAccess_idl__
+#include <com/sun/star/configuration/SimpleSetAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_XContainer_idl__
+#include <com/sun/star/container/XContainer.idl>
+#endif
+
+//=============================================================================
+
+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 <type>SetElement</type>.
+ The template name returned by the child from
+ <member>XTemplateInstance::getTemplateName()</member>
+ corresponds to the name returned by the set from
+ <member>XTemplateContainer::getElementTemplateName()</member>.
+
+ @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
+ <member scope="com::sun::star::util">XStringEscape::escapeString()</member>
+ (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 <type scope="com::sun::star::configuration">XTemplateContainer</type>,
+ which is optional in <type>SimpleSetAccess</type> 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
diff --git a/offapi/com/sun/star/configuration/SetElement.idl b/offapi/com/sun/star/configuration/SetElement.idl
new file mode 100644
index 000000000000..f82b642934be
--- /dev/null
+++ b/offapi/com/sun/star/configuration/SetElement.idl
@@ -0,0 +1,186 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_SetElement_idl__
+#define __com_sun_star_configuration_SetElement_idl__
+
+#ifndef __com_sun_star_configuration_HierarchyElement_idl__
+#include <com/sun/star/configuration/HierarchyElement.idl>
+#endif
+
+#ifndef __com_sun_star_container_XChild_idl__
+#include <com/sun/star/container/XChild.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_XTemplateInstance_idl__
+#include <com/sun/star/configuration/XTemplateInstance.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type scope="com::sun::star::lang">XSingleServiceFactory</type> or,
+ if supported, <type scope="com::sun::star::lang">XMultiServiceFactory</type>
+ on an implementation of <type>SetUpdate</type>. 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
+ <member scope="com::sun::star::lang">XComponent::dispose()</member>. 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
+ <member scope="com::sun::star::container">XNamed::setName()</member> 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 <type scope="com::sun::star::lang">XEventListener</type> 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><member scope="com::sun::star::container">XChild::getParent()</member>
+ returns <NULL/>, if the object is currently not contained in a container.
+ </p>
+
+ <p>An implementation may also support
+ <member scope="com::sun::star::container">XChild::setParent()</member>.
+ 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
+ <member scope="com::sun::star::lang">XComponent::dispose()</member>, only if
+ the object is currently not contained in a container (
+ <member scope="com::sun::star::container">XChild::getParent()</member>
+ returns <NULL/>).
+ </p>
+
+ <p>Clients may register an <type scope="com::sun::star::lang">XEventListener</type>
+ 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
+ <type scope="com::sun::star::lang">XSingleServiceFactory</type>
+ on an implementation of <type>SetUpdate</type>, this interface describes the
+ same template as interface <type>XTemplateContainer</type> on that
+ <type>SetUpdate</type>.
+ </p>
+ <p>If the object was created using interface
+ <type scope="com::sun::star::lang">XMultiServiceFactory</type>
+ on an implementation of <type>SetUpdate</type>, 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
diff --git a/offapi/com/sun/star/configuration/SetUpdate.idl b/offapi/com/sun/star/configuration/SetUpdate.idl
new file mode 100644
index 000000000000..57c56e7d0231
--- /dev/null
+++ b/offapi/com/sun/star/configuration/SetUpdate.idl
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_SetUpdate_idl__
+#define __com_sun_star_configuration_SetUpdate_idl__
+
+#ifndef __com_sun_star_configuration_SetAccess_idl__
+#include <com/sun/star/configuration/SetAccess.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_SimpleSetUpdate_idl__
+#include <com/sun/star/configuration/SimpleSetUpdate.idl>
+#endif
+
+//=============================================================================
+
+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 <type>SetAccess</type> 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
+ <const scope="com::sun::star::beans">PropertyAttribute::READONLY</const>).
+ </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
+ <type scope="com::sun::star::container">XContainer</type>.
+ </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 <type scope="com::sun::star::lang">XSingleServiceFactory</type>
+ and (if supported) <type scope="com::sun::star::lang">XMultiServiceFactory</type>.
+ </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 <member>XTemplateInstance::getTemplateName()</member>.
+ </p>
+
+ <p>Other ways in which an element may be moved among or within compatible sets
+ include <member scope="com::sun::star::container">XChild::setParent()</member>
+ and <member scope="com::sun::star::container">XNamed::setName()</member>, if
+ the element implements them.
+ </p>
+
+ @see com::sun::star::configuration::SetElement
+*/
+ service SimpleSetUpdate;
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/configuration/SimpleSetAccess.idl b/offapi/com/sun/star/configuration/SimpleSetAccess.idl
new file mode 100644
index 000000000000..35f8745fe977
--- /dev/null
+++ b/offapi/com/sun/star/configuration/SimpleSetAccess.idl
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_SimpleSetAccess_idl__
+#define __com_sun_star_configuration_SimpleSetAccess_idl__
+
+#ifndef __com_sun_star_container_XNameAccess_idl__
+#include <com/sun/star/container/XNameAccess.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_XTemplateContainer_idl__
+#include <com/sun/star/configuration/XTemplateContainer.idl>
+#endif
+
+#ifndef __com_sun_star_util_XStringEscape_idl__
+#include <com/sun/star/util/XStringEscape.idl>
+#endif
+
+#ifndef __com_sun_star_container_XContainer_idl__
+#include <com/sun/star/container/XContainer.idl>
+#endif
+
+//=============================================================================
+
+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
+ <member scope="com::sun::star::util">XStringEscape::escapeString()</member>,
+ 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,
+ <member scope="com::sun::star::container">XElementAccess::getElementType()</member>
+ 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
diff --git a/offapi/com/sun/star/configuration/SimpleSetUpdate.idl b/offapi/com/sun/star/configuration/SimpleSetUpdate.idl
new file mode 100644
index 000000000000..c9fb908281d1
--- /dev/null
+++ b/offapi/com/sun/star/configuration/SimpleSetUpdate.idl
@@ -0,0 +1,184 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_SimpleSetUpdate_idl__
+#define __com_sun_star_configuration_SimpleSetUpdate_idl__
+
+#ifndef __com_sun_star_configuration_SimpleSetAccess_idl__
+#include <com/sun/star/configuration/SimpleSetAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_XNameContainer_idl__
+#include <com/sun/star/container/XNameContainer.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XSingleServiceFactory_idl__
+#include <com/sun/star/lang/XSingleServiceFactory.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__
+#include <com/sun/star/lang/XMultiServiceFactory.idl>
+#endif
+
+//=============================================================================
+
+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 <type>SimpleSetAccess</type> 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
+ <type scope="com::sun::star::container">XNameAccess</type> supported
+ by service <type>SimpleSetAccess</type> to allow modifying the container.
+ </p>
+
+ <p>If available, changes can be observed by registering a listener with interface
+ <type scope="com::sun::star::container">XContainer</type>.
+ </p>
+
+ <p>If the elements of this set are of simple type (the type returned by
+ <member scope="com::sun::star::container">XElementAccess::getElementType()</member>
+ is not an interface type), then values of that type can directly be passed to
+ <member scope="com::sun::star::container">XNameContainer::insertByName()</member>
+ and
+ <member scope="com::sun::star::container">XNameContainer::replaceByName()</member>.
+ </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 <type scope="com::sun::star::lang">XSingleServiceFactory</type>
+ and, if supported, <type scope="com::sun::star::lang">XMultiServiceFactory</type>.
+ </p>
+
+ <p>Objects to be inserted must not be contained in any set at the time of
+ insertion. <member scope="com::sun::star::container">XChild::getParent()</member>
+ must return <NULL/>. If a name had been assigned to the object prior to insertion
+ (using <member scope="com::sun::star::container">XNamed::setName()</member>
+ 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 <member scope="com::sun::star::container">XNameContainer::insertByName()</member>
+ or <member scope="com::sun::star::container">XNameContainer::replaceByName()</member>.
+</p>
+
+
+ <p>Objects that are removed using
+ <member scope="com::sun::star::container">XNameContainer::removeByName()</member>
+ or replaced using
+ <member scope="com::sun::star::container">XNameContainer::replaceByName()</member>
+ 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
+ <member scope="com::sun::star::container">XElementAccess::getElementType()</member>,
+ is an object type, such as an interface.
+ </p>
+
+ <p>Using <member scope="com::sun::star::lang">XSingleServiceFactory::createInstance()</member>
+ 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
+ <member scope="com::sun::star::lang">XSingleServiceFactory::createInstanceWithArguments()</member>.
+ 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
+ <member scope="com::sun::star::container">XNameContainer::insertByName()</member>
+ or
+ <member scope="com::sun::star::container">XNameContainer::replaceByName()</member>.
+ </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
+ <member scope="com::sun::star::container">XElementAccess::getElementType()</member>)
+ is an object type, such as an interface. An implementation should also implement
+ interface <type>XTemplateContainer</type> which is optional in this service.
+ </p>
+
+ <p>The service identifier argument passed
+ to <member scope="com::sun::star::lang">XMultiServiceFactory::createInstance()</member>
+ or <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member>
+ 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 <member>XTemplateContainer::getElementTemplateName()</member>
+ as a service identifier, in which case the result shall be the same as if
+ the corresponding member of <type scope="com::sun::star::lang">XSingleServiceFactory</type>
+ had been called.
+ </p>
+
+*/
+ [optional] interface com::sun::star::lang::XMultiServiceFactory;
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/configuration/Update.idl b/offapi/com/sun/star/configuration/Update.idl
new file mode 100644
index 000000000000..790a4bb40235
--- /dev/null
+++ b/offapi/com/sun/star/configuration/Update.idl
@@ -0,0 +1,45 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+#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.0
+*/
+singleton Update: XUpdate;
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/configuration/UpdateRootElement.idl b/offapi/com/sun/star/configuration/UpdateRootElement.idl
new file mode 100644
index 000000000000..16ffa9450a08
--- /dev/null
+++ b/offapi/com/sun/star/configuration/UpdateRootElement.idl
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_UpdateRootElement_idl__
+#define __com_sun_star_configuration_UpdateRootElement_idl__
+
+#ifndef __com_sun_star_configuration_AccessRootElement_idl__
+#include <com/sun/star/configuration/AccessRootElement.idl>
+#endif
+
+#ifndef __com_sun_star_util_XChangesBatch_idl__
+#include <com/sun/star/util/XChangesBatch.idl>
+#endif
+
+//=============================================================================
+
+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 <type>AccessRootElement</type> 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 <type>AccessRootElement</type>]. 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
+ <type scope="com::sun::star::util">XChangesBatch</type>. Pending changes
+ will become persistent and visible from other overlapping hierarchies
+ only when <member scope="com::sun::star::util">XChangesBatch::commitChanges()</member>
+ 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><member scope="com::sun::star::util">XChangesBatch::getPendingChanges()</member>
+ 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
+ <member scope="com::sun::star::util">XChangesBatch::commitChanges()</member>
+ is invoked.
+ </p>
+
+ <p>If the implementation supports
+ <member scope="com::sun::star::lang">XLocalizable::setLocale()</member>, changes
+ will be considered to apply to the locale that is set when
+ <member scope="com::sun::star::util">XChangesBatch::commitChanges()</member>
+ is invoked.
+ </p>
+
+ @ see AccessRootElement
+ @ see com::sun::star::util::XChangesNotifier
+*/
+ interface com::sun::star::util::XChangesBatch;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/configuration/XTemplateContainer.idl b/offapi/com/sun/star/configuration/XTemplateContainer.idl
new file mode 100644
index 000000000000..84331c660c19
--- /dev/null
+++ b/offapi/com/sun/star/configuration/XTemplateContainer.idl
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_XTemplateContainer_idl__
+#define __com_sun_star_configuration_XTemplateContainer_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+//=============================================================================
+
+ 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
+ <type scope="com::sun::star::lang">XSingleServiceFactory</type>, in which case
+ that interface creates instances of the specified template.
+ </p>
+ <p> If multiple templates are supported, the supported factory interface may be
+ <type scope="com::sun::star::lang">XMultiServiceFactory</type>, in which case
+ the <atom>string</atom> returned from
+ <member>XTemplateContainer::getElementTemplateName()</member> 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
diff --git a/offapi/com/sun/star/configuration/XTemplateInstance.idl b/offapi/com/sun/star/configuration/XTemplateInstance.idl
new file mode 100644
index 000000000000..f624ce8705f7
--- /dev/null
+++ b/offapi/com/sun/star/configuration/XTemplateInstance.idl
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_XTemplateInstance_idl__
+#define __com_sun_star_configuration_XTemplateInstance_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+//=============================================================================
+
+ 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
diff --git a/offapi/com/sun/star/configuration/XUpdate.idl b/offapi/com/sun/star/configuration/XUpdate.idl
new file mode 100644
index 000000000000..c3316ea5dc45
--- /dev/null
+++ b/offapi/com/sun/star/configuration/XUpdate.idl
@@ -0,0 +1,57 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+#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.0
+*/
+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
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 000000000000..32ee9cf05f2f
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl
@@ -0,0 +1,50 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_AuthenticationFailedException_idl__
+#define __com_sun_star_configuration_backend_AuthenticationFailedException_idl__
+
+#ifndef __com_sun_star_configuration_backend_BackendSetupException_idl__
+#include <com/sun/star/configuration/backend/BackendSetupException.idl>
+#endif
+
+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
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 000000000000..0932291c74bd
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/Backend.idl
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_Backend_idl__
+#define __com_sun_star_configuration_backend_Backend_idl__
+
+#ifndef __com_sun_star_configuration_backend_XBackend_idl__
+#include <com/sun/star/configuration/backend/XBackend.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XBackendEntities_idl__
+#include <com/sun/star/configuration/backend/XBackendEntities.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XSchemaSupplier_idl__
+#include <com/sun/star/configuration/backend/XSchemaSupplier.idl>
+#endif
+
+//=============================================================================
+
+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 organised hierarchically in organisations,
+ 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
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 000000000000..d5c80d01ee0b
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/BackendAccessException.idl
@@ -0,0 +1,51 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_BackendAccessException_idl__
+#define __com_sun_star_configuration_backend_BackendAccessException_idl__
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+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
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 000000000000..176abb2d1ce0
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/BackendAdapter.idl
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_BackendAdapter_idl__
+#define __com_sun_star_configuration_backend_BackendAdapter_idl__
+
+#ifndef __com_sun_star_configuration_backend_Backend_idl__
+#include <com/sun/star/configuration/backend/Backend.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XBackendEntities_idl__
+#include <com/sun/star/configuration/backend/XBackendEntities.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>Backend</type> retrieving data
+ from a <type>SingleBackend</type>.
+
+ @since OOo 1.1.2
+*/
+published service BackendAdapter
+{
+ //-------------------------------------------------------------------------
+
+ /** provides access to configuration data.
+ */
+ service Backend ;
+
+ //-------------------------------------------------------------------------
+
+ /**
+ This interface, that is optional in <type>Backend</type>, is
+ mandatory in this service.
+ */
+ interface XBackendEntities ;
+
+ //-------------------------------------------------------------------------
+
+ /**
+ allows initializing the backend to use.
+
+ <p>If this interface is present, a <type>SingleBackend</type>
+ may be passed, that is used to access the data.
+ Also a <type scope="com::sun::star::configuration::bootstrap">BootstrapContext</type>
+ 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 <type scope="com::sun::star::uno">XComponentContext</type>.
+ </p>
+ */
+ [optional] interface com::sun::star::lang::XInitialization ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..c5ce0d0c47cd
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/BackendSetupException.idl
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_BackendSetupException_idl__
+#define __com_sun_star_configuration_backend_BackendSetupException_idl__
+
+#ifndef __com_sun_star_configuration_CannotLoadConfigurationException_idl__
+#include <com/sun/star/configuration/CannotLoadConfigurationException.idl>
+#endif
+
+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 <atom>string</atom> or <void/>,
+ if the original exception is not represented as a
+ <type scope="com::sun::star::uno">Exception</type>.
+ </p>
+ */
+ any BackendException;
+} ;
+
+} ;
+} ; } ; } ; } ;
+
+#endif
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 000000000000..04a1d44b9c03
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/CannotConnectException.idl
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_CannotConnectException_idl__
+#define __com_sun_star_configuration_backend_CannotConnectException_idl__
+
+#ifndef __com_sun_star_configuration_backend_BackendSetupException_idl__
+#include <com/sun/star/configuration/backend/BackendSetupException.idl>
+#endif
+
+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
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 000000000000..afe42f257a83
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/ComponentChangeEvent.idl
@@ -0,0 +1,58 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_ComponentChangeEvent_idl__
+#define __com_sun_star_configuration_backend_ComponentChangeEvent_idl__
+
+#ifndef __com_sun_star_lang_EventObject_idl__
+#include <com/sun/star/lang/EventObject.idl>
+#endif
+//=============================================================================
+
+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
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 000000000000..f6213e9327c5
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/ConnectionLostException.idl
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_ConnectionLostException_idl__
+#define __com_sun_star_configuration_backend_ConnectionLostException_idl__
+
+#ifndef __com_sun_star_configuration_backend_BackendAccessException_idl__
+#include <com/sun/star/configuration/backend/BackendAccessException.idl>
+#endif
+
+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
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 000000000000..ab790ba521e1
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/CopyImporter.idl
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_CopyImporter_idl__
+#define __com_sun_star_configuration_backend_CopyImporter_idl__
+
+#ifndef __com_sun_star_configuration_backend_Importer_idl__
+#include <com/sun/star/configuration/backend/Importer.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type>XLayer</type> data that already exists in the <type>Backend</type>,
+ replacing it completely.
+ </p>
+ */
+ service Importer ;
+
+ //-------------------------------------------------------------------------
+
+ /** allows initializing the implementation with settings that control
+ its behavior .
+
+ <p> This interface, which is optional in <type>Importer</type>
+ is mandatory in this service and supports the following arguments
+ which must be provided as
+ <type scope="com::sun::star::beans">NamedValue</type>:
+ <dl>
+ <dt><code>Overwrite</code> : <atom>boolean</atom></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
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 000000000000..a3b039e24ca0
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/DataImporter.idl
@@ -0,0 +1,127 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_DataImporter_idl__
+#define __com_sun_star_configuration_backend_DataImporter_idl__
+
+#ifndef __com_sun_star_task_XJob_idl__
+#include <com/sun/star/task/XJob.idl>
+#endif
+
+//=============================================================================
+
+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
+ <member scope="com::sun::star::task">XJob::execute()</member>.
+ 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
+ <member scope="com::sun::star::task">XJob::execute()</member>
+ 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
+ <type scope="com::sun::star::uno">Exception</type> is returned,
+ it represents an error condition encountered during execution.
+ </p>
+
+ <p> The following arguments to
+ <member scope="com::sun::star::task">XJob::execute()</member>
+ should be supported by implementations. Implementations must document
+ a failure to support any of these arguments:
+ <dl>
+ <dt><code>ImporterService</code> : <atom >string</atom></dt>
+ <dd>A service or implementation name used to instantiate the
+ <type>Importer</type> to use for importing. If this parameter
+ is missing, the implementation selects an appropriate importer.
+ By default, a <type>MergeImporter</type> should be used.
+ </dd>
+ <dt><code>OverwriteExisting</code> : <atom >boolean</atom></dt>
+ <dd>If <TRUE/>, specifies that no existing data should be
+ overwritten by the import. If the <type>Importer</type> 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> : <atom >boolean</atom></dt>
+ <dd>If <TRUE/>, specifies that existing data should be
+ discarded and replaced by the imported data.
+ If the <type>Importer</type> used does not support this
+ operation, an error may be raised.
+ By default, a <type>CopyImporter</type> is used to perform
+ truncating import.
+ </dd>
+ <dt><code>Entity</code> : <atom >string</atom></dt>
+ <dd>An identifier for the entity in the destination backend for
+ which the imported data should apply. The value will be passed
+ to <member>XLayerImporter::importLayerForEntity()</member>.
+ If this parameter is missing, the implementation uses
+ <member>XLayerImporter::importLayer()</member> instead.
+ </dd>
+ <dt><code>Component</code> : <atom >string</atom></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> : <type >LayerFilter</type></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
+ <type scope="com::sun::star::lang">IllegalArgumentException</type>.
+ </dd>
+ </dl>
+ </p>
+
+ */
+ interface com::sun::star::task::XJob ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..38ddc1e034e7
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/DefaultBackend.idl
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_DefaultBackend_idl__
+#define __com_sun_star_configuration_backend_DefaultBackend_idl__
+
+#ifndef __com_sun_star_configuration_backend_Backend_idl__
+#include <com/sun/star/configuration/backend/Backend.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ is a <type>DefaultBackend</type>, that is
+ the default <type>DefaultBackend</type> for its
+ <type scope="com::sun::star::uno">XComponentContext</type>.
+
+ <p>This object is accessible as singleton within the context</p>.
+
+ @since OOo 1.1.2
+*/
+service DefaultBackend
+{
+ //-------------------------------------------------------------------------
+
+ /** characterizes the functionality.
+ */
+ service Backend ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..22f07f63b37b
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_HierarchyBrowser_idl__
+#define __com_sun_star_configuration_backend_HierarchyBrowser_idl__
+
+#ifndef __com_sun_star_task_XJob_idl__
+#include <com/sun/star/task/XJob.idl>
+#endif
+
+//=============================================================================
+
+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
+ <member scope="com::sun::star::task">XJob::execute()</member>.
+ The names and meanings of such arguments depend on
+ the implementation. Each implementation must document such arguments.
+ </p>
+
+ <p> The following argument to
+ <member scope="com::sun::star::task">XJob::execute()</member>
+ must be supported by all implementations:
+ <dl>
+ <dt><code>ExcludeComponents</code> : <atom dim="[]">string</atom> or <atom >string</atom></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
+ <member scope="com::sun::star::task">XJob::execute()</member>
+ 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 <type>Backend</type>.
+ </p>
+ */
+ interface com::sun::star::task::XJob ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..8cb74626c6be
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/Importer.idl
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_Importer_idl__
+#define __com_sun_star_configuration_backend_Importer_idl__
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XLayerImporter_idl__
+#include <com/sun/star/configuration/backend/XLayerImporter.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ imports data into a configuration layer.
+
+ <p> The configuration changes are read from a <type>XLayer</type>
+ and stored into a <type>Backend</type>.
+ </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
+ <type scope="com::sun::star::beans">NamedValue</type>.
+ Implementations specify which arguments they support.
+
+ <dl>
+ <dt><code>Notify</code> : <atom>boolean</atom></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
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 000000000000..81da4911437b
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/InsufficientAccessRightsException.idl
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_InsufficientAccessRightsException_idl__
+#define __com_sun_star_configuration_backend_InsufficientAccessRightsException_idl__
+
+#ifndef __com_sun_star_configuration_backend_BackendAccessException_idl__
+#include <com/sun/star/configuration/backend/BackendAccessException.idl>
+#endif
+
+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
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 000000000000..82a3595a6b08
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/InteractionHandler.idl
@@ -0,0 +1,102 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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><type>MergeRecoveryRequest</type>*</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
+ <type scope="com::sun::star::task">XInteractionApprove</type>,
+ <type scope="com::sun::star::task">XInteractionDisapprove</type>,
+ <type scope="com::sun::star::task">XInteractionRetry</type>, or
+ <type scope="com::sun::star::task">XInteractionAbort</type> (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.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
+ <type scope="com::sun::star::beans">PropertyValue</type>s. The
+ currently supported properties are:
+ <UL>
+ <LI><code>"Parent"</code> of type
+ <type scope="com::sun::star::awt">XWindow</type> 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 <atom>string</atom> 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
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 000000000000..50d9650636ff
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/InvalidAuthenticationMechanismException.idl
@@ -0,0 +1,51 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_InvalidAuthenticationMechanismException_idl__
+#define __com_sun_star_configuration_backend_InvalidAuthenticationMechanismException_idl__
+
+#ifndef __com_sun_star_configuration_backend_BackendSetupException_idl__
+#include <com/sun/star/configuration/backend/BackendSetupException.idl>
+#endif
+
+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
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 000000000000..8b9429810b15
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/Layer.idl
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_Layer_idl__
+#define __com_sun_star_configuration_backend_Layer_idl__
+
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#include <com/sun/star/configuration/backend/XLayer.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XCompositeLayer_idl__
+#include <com/sun/star/configuration/backend/XCompositeLayer.idl>
+#endif
+
+#ifndef __com_sun_star_util_XTimeStamped_idl__
+#include <com/sun/star/util/XTimeStamped.idl>
+#endif
+
+//==============================================================================
+
+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.0
+ */
+ [property,optional,readonly] string URL ;
+
+ //--------------------------------------------------------------------------
+} ;
+
+//==============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
+
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 000000000000..1f6ae54f2c5f
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LayerDescriber.idl
@@ -0,0 +1,41 @@
+#ifndef __com_sun_star_configuration_backend_LayerDescriber_idl__
+#define __com_sun_star_configuration_backend_LayerDescriber_idl__
+
+#ifndef __com_sun_star_configuration_backend_XLayerContentDescriber_idl__
+#include <com/sun/star/configuration/backend/XLayerContentDescriber.idl>
+#endif
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ describe the contents of a layer to an XLayerHander 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
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 000000000000..ec5a209aa8ac
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LayerFilter.idl
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_LayerFilter_idl__
+#define __com_sun_star_configuration_backend_LayerFilter_idl__
+
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#include <com/sun/star/configuration/backend/XLayer.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+//==============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//==============================================================================
+
+/**
+ provides a filtered version of a configuration data <type>Layer</type>.
+
+ <p> A layer filter wraps a source <type>XLayer</type> 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 <type>LayerFilter</type> to imported data.
+
+ @since OOo 2.0.0
+ */
+published service LayerFilter
+{
+ //--------------------------------------------------------------------------
+
+ /**
+ provides read access to the filtered contents.
+
+ <p> Method <member>XLayer::readData</member> 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 <method scope="com::sun::star::lang">XInitialization::initialize</method>()
+ with a single argument of type <type scope="com::sun::star::beans">NamedValue</type>,
+ where <member scope="com::sun::star::beans">NamedValue::Name</member> is <code>"Source"</code>
+ and <member scope="com::sun::star::beans">NamedValue::Value</member>
+ is an object implementing <type>XLayer</type>.
+ </p>
+ */
+ interface com::sun::star::lang::XInitialization ;
+
+ //--------------------------------------------------------------------------
+} ;
+
+//==============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
+
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 000000000000..bff3c26c92a8
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LayerUpdateMerger.idl
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_LayerUpdateMerger_idl__
+#define __com_sun_star_configuration_backend_LayerUpdateMerger_idl__
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XUpdateHandler_idl__
+#include <com/sun/star/configuration/backend/XUpdateHandler.idl>
+#endif
+
+//=============================================================================
+
+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 <type>XLayer</type>
+ and the changed layer is provided as <type>XLayer</type> again or
+ described to a <type>XLayerHandler</type>.
+ </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
+ <type>XUpdatableLayer</type> object. Alternatively they can be
+ provided individually by providing a <type>XLayer</type> object as
+ data source and an <type>XLayerHandler</type> object to receive the
+ updated data.
+ </p>
+ <p> Implementations can provide more arguments to finetune the behavior.
+ Such arguments are provided as
+ <type scope="com::sun::star::beans">NamedValue</type>.
+ Implementations should support the following named arguments:
+ <dl>
+ <dt><code>Overwrite</code> : <atom>boolean</atom></dt>
+ <dd>If <FALSE/>, specifies that changes should be applied
+ only if the existing layer is empty.
+ </dd>
+ <dt><code>Truncate</code> : <atom>boolean</atom></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
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 000000000000..f02bd733498e
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LdapMultiLayerStratum.idl
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_LdapMultiLayerStratum_idl__
+#define __com_sun_star_configuration_backend_LdapMultiLayerStratum_idl__
+
+#ifndef __com_sun_star_configuration_backend_MultiLayerStratum_idl__
+#include <com/sun/star/configuration/backend/MultiLayerStratum.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>MultiLayerStratum</type> 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
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 000000000000..31897515ce7c
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LdapSingleBackend.idl
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_LdapSingleBackend_idl__
+#define __com_sun_star_configuration_backend_LdapSingleBackend_idl__
+
+#ifndef __com_sun_star_configuration_backend_SingleBackend_idl__
+#include <com/sun/star/configuration/backend/SingleBackend.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>SingleBackend</type> that stores data in an
+ LDAP directoy.
+
+ @since OOo 1.1.2
+*/
+published service LdapSingleBackend
+{
+ //-------------------------------------------------------------------------
+
+ /** provides access to configuration data.
+ */
+ service SingleBackend ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..ae50be4c836a
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LdapSingleStratum.idl
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_LdapSingleStratum_idl__
+#define __com_sun_star_configuration_backend_LdapSingleStratum_idl__
+
+#ifndef __com_sun_star_configuration_backend_SingleLayerStratum_idl__
+#include <com/sun/star/configuration/backend/SingleLayerStratum.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>SingleLayerStratum</type> that
+ provides access to a single layer of configuration data from ldap source
+*/
+service LdapSingleStratum
+{
+ //-------------------------------------------------------------------------
+
+ /**
+ provides access to configuration data.
+ */
+ service SingleLayerStratum;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..9c1dd5ee77f0
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LocalDataImporter.idl
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_LocalDataImporter_idl__
+#define __com_sun_star_configuration_backend_LocalDataImporter_idl__
+
+#ifndef __com_sun_star_configuration_backend_DataImporter_idl__
+#include <com/sun/star/configuration/backend/DataImporter.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ allows importing data from a local configuration data repository
+ or file into any <type>Backend</type>.
+
+ <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 <type>DefaultBackend</type>.
+ </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
+ <member scope="com::sun::star::task">XJob::execute()</member>
+ to indicates successful execution. If import is not executed,
+ because <code>OverwriteExisting = </code><TRUE/> was specified,
+ a <type scope="com::sun::star::lang">IllegalAccessException</type>
+ is returned.
+ </p>
+ <p>If <void/> or <TRUE/> is returned, this indicates successful
+ execution. If an
+ <type scope="com::sun::star::uno">Exception</type> is returned,
+ it represents an error condition encountered during execution.
+ </p>
+
+ <p> The standard arguments to
+ <member scope="com::sun::star::task">XJob::execute()</member>
+ are all supported by implementations. Additionally the following
+ argument is required to select the data source:
+ <dl>
+ <dt><code>LayerDataUrl</code> : <atom >string</atom></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 <type>Backend</type>, that is not the
+ <type>DefaultBackend</type>.
+ </p>
+ */
+ service DataImporter ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..ae7244365af2
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.idl
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_LocalHierarchyBrowser_idl__
+#define __com_sun_star_configuration_backend_LocalHierarchyBrowser_idl__
+
+#ifndef __com_sun_star_configuration_backend_HierarchyBrowser_idl__
+#include <com/sun/star/configuration/backend/HierarchyBrowser.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ is a <type>HierarchyBrowser</type>, 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
+ <member scope="com::sun::star::task">XJob::execute()</member>:<BR/>
+
+ <dl>
+ <dt><code>SchemaDataUrl</code> : <atom>string</atom></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> : <atom>string</atom></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> : <atom>boolean</atom></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
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 000000000000..3c72d908579c
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LocalSchemaSupplier.idl
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_LocalSchemaSupplier_idl__
+#define __com_sun_star_configuration_backend_LocalSchemaSupplier_idl__
+
+#ifndef __com_sun_star_configuration_backend_SchemaSupplier_idl__
+#include <com/sun/star/configuration/backend/SchemaSupplier.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>SchemaSupplier</type> providing access to
+ local configuration schemas
+*/
+service LocalSchemaSupplier
+{
+ //-------------------------------------------------------------------------
+ /**
+ provides access to configuration schemas.
+ */
+ service SchemaSupplier ;
+
+ //-------------------------------------------------------------------------
+
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..098d8123e079
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LocalSingleBackend.idl
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_LocalSingleBackend_idl__
+#define __com_sun_star_configuration_backend_LocalSingleBackend_idl__
+
+#ifndef __com_sun_star_configuration_backend_SingleBackend_idl__
+#include <com/sun/star/configuration/backend/SingleBackend.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>SingleBackend</type> that stores data in the
+ local filesystem using the OOR XML formats.
+
+ @since OOo 1.1.2
+*/
+published service LocalSingleBackend
+{
+ //-------------------------------------------------------------------------
+
+ /** provides access to configuration data.
+ */
+ service SingleBackend ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..aea200df1925
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/LocalSingleStratum.idl
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_LocalSingleStratum_idl__
+#define __com_sun_star_configuration_backend_LocalSingleStratum_idl__
+
+#ifndef __com_sun_star_configuration_backend_SingleLayerStratum_idl__
+#include <com/sun/star/configuration/backend/SingleLayerStratum.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>SingleLayerStratum</type> that
+ provides access to a singe layer of configuration data from local file system
+*/
+service LocalSingleStratum
+{
+ //-------------------------------------------------------------------------
+
+ /**
+ provides access to configuration data.
+ */
+ service SingleLayerStratum;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..211571a41566
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/MalformedDataException.idl
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#define __com_sun_star_configuration_backend_MalformedDataException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+//=============================================================================
+
+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><type scope="com::sun::star::container">ElementExistException</type></dt>
+ <dd>for duplicate nodes.</dd>
+
+ <dt><type scope="com::sun::star::container">NoSuchElementException</type></dt>
+ <dd>for nodes that are not in the schema.</dd>
+
+ <dt><type scope="com::sun::star::beans">IllegalTypeException</type></dt>
+ <dd>for properties having the wrong or an invalid type.</dd>
+
+ <dt><type scope="com::sun::star::beans">PropertyExistException</type></dt>
+ <dd>for duplicate properties.</dd>
+
+ <dt><type scope="com::sun::star::beans">UnknownPropertyException</type></dt>
+ <dd>for properties that are not in the schema.</dd>
+
+ <dt><type scope="com::sun::star::lang">IllegalArgumentException</type></dt>
+ <dd>for data values (names,attibutes,etc.) that are invalid.</dd>
+
+ <dt><type scope="com::sun::star::lang">IllegalAccessException</type></dt>
+ <dd>for changes that violate access restrictions.</dd>
+
+ <dt><type scope="com::sun::star::lang">NoSupportException</type></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
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 000000000000..d02d68985f32
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/MergeImporter.idl
@@ -0,0 +1,77 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_MergeImporter_idl__
+#define __com_sun_star_configuration_backend_MergeImporter_idl__
+
+#ifndef __com_sun_star_configuration_backend_Importer_idl__
+#include <com/sun/star/configuration/backend/Importer.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+//=============================================================================
+
+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
+ <member scope="com::sun::star::lang">XInitialization::initialize()</member>
+ 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
+ <type>XLayer</type> data that already exists in the <type>Backend</type>,
+ replacing it completely.
+ </p>
+
+ @see LayerUpdateMerger
+ Service that can be used to perform merging of changes into a layer.
+ */
+ service Importer ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..c5d44ac4b7bf
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_MergeRecoveryRequest_idl__
+#define __com_sun_star_configuration_backend_MergeRecoveryRequest_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/** is passed to an <type>InteractionHandler<type> when merging fails due to
+ invalid layer data or access problems.
+
+ @since OOo 2.0.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><type>MalformedException</type></dt>
+ <dd>for layers containing invalid data.</dd>
+
+ <dt><type>BackendAccessException</type></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 requestor wants to remove or skip the invalid layer.
+
+ <p> If <TRUE/> the requestor 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
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 000000000000..375f8851829c
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/MultiLayerStratum.idl
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_SingleLayerStratum_idl__
+#define __com_sun_star_configuration_backend_SingleLayerStratum_idl__
+
+#ifndef __com_sun_star_configuration_backend_XBackendEntities_idl__
+#include <com/sun/star/configuration/backend/XBackendEntities.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XMultiLayerStratum_idl__
+#include <com/sun/star/configuration/backend/XMultiLayerStratum.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ Provides access to a singe 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
+
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 000000000000..7e755d187d94
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/MultiStratumBackend.idl
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_MultiStratumBackend_idl__
+#define __com_sun_star_configuration_backend_MultiStratumBackend_idl__
+
+#ifndef __com_sun_star_configuration_backend_Backend_idl__
+#include <com/sun/star/configuration/backend/Backend.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>Backend</type> 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
+ <type scope="com::sun::star::configuration::bootstrap">BootstrapContext</type>
+ must be passed, that provides further backend initialization settings.
+ </p>
+
+
+ */
+
+ [optional] interface com::sun::star::lang::XInitialization ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+#endif
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 000000000000..5c5007e5e1a2
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/NodeAttribute.idl
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#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
+ <type>SchemaAttribute</type>
+ </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 <member>XLayerHandler::addOrReplaceNode</member>,
+ <member>XLayerHandler::addOrReplaceNodeFromTemplate</member>,
+ <member>XUpdateHandler::addOrReplaceNode</member>, and
+ <member>XUpdateHandler::addOrReplaceNodeFromTemplate</member>.</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
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 000000000000..57775a6a4afd
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/OfflineBackend.idl
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_OfflineBackend_idl__
+#define __com_sun_star_configuration_backend_OfflineBackend_idl__
+
+#ifndef __com_sun_star_configuration_backend_BackendAdapter_idl__
+#include <com/sun/star/configuration/backend/BackendAdapter.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>BackendAdapter</type> that maintains a cache so it
+ can operate even if the <type>SingleBackend</type> 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 <type>SingleBackend</type>.
+
+ <p>If no backend is provided during initalization or if the context
+ contains an <code>Offline</code> flag that is <TRUE/>, then offline mode
+ is activated. This may fail, if the offline cache has not been filled
+ during a previous execution.
+ </p>
+ <p>Less entities may be available from <type>XBackendEntities</type>,
+ when operating in offline mode than when operating with an online
+ <type>SingleBackend</type>.
+ </p>
+ <p>If offline mode is not invoked, the implementation behaves
+ like any other <type>BackendAdapter</type>.
+ </p>
+
+ */
+ service BackendAdapter ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..a0d8e39abaf8
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/OnlineBackend.idl
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_OnlineBackend_idl__
+#define __com_sun_star_configuration_backend_OnlineBackend_idl__
+
+#ifndef __com_sun_star_configuration_backend_BackendAdapter_idl__
+#include <com/sun/star/configuration/backend/BackendAdapter.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements a <type>BackendAdapter</type> that requires that
+ the <type>SingleBackend</type> 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 <type>SingleBackend</type>.
+
+ */
+ service BackendAdapter ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..70577522da86
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/PlatformBackend.idl
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_PlatformBackend_idl__
+#define __com_sun_star_configuration_backend_PlatformBackend_idl__
+
+#ifndef __com_sun_star_configuration_backend_SingleLayerStratum_idl__
+#include <com/sun/star/configuration/backend/SingleLayerStratum.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements <type>SingleLayerStratum</type> that
+ provides access to a singe layer of configuration data from external data store
+*/
+service PlatformBackend
+{
+ //-------------------------------------------------------------------------
+
+ /**
+ provides access to configuration data.
+ */
+ service SingleLayerStratum;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..11f5fe6ba142
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/PropertyInfo.idl
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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
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 000000000000..873f7c464b15
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/Schema.idl
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_Schema_idl__
+#define __com_sun_star_configuration_backend_Schema_idl__
+
+#ifndef __com_sun_star_configuration_backend_XSchema_idl__
+#include <com/sun/star/configuration/backend/XSchema.idl>
+#endif
+
+//==============================================================================
+
+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 organised 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.0
+ */
+ [property,optional,readonly] string URL ;
+
+ //--------------------------------------------------------------------------
+} ;
+
+//==============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
+
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 000000000000..dbc58c870913
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/SchemaAttribute.idl
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#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
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 000000000000..10b59ddc5c6d
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/SchemaSupplier.idl
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_SchemaSupplier_idl__
+#define __com_sun_star_configuration_backend_SchemaSupplier_idl__
+
+#ifndef __com_sun_star_configuration_backend_XSchemaSupplier_idl__
+#include <com/sun/star/configuration/backend/XSchemaSupplier.idl>
+#endif
+
+
+//=============================================================================
+
+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
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 000000000000..2cf1dc898661
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/SingleBackend.idl
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_SingleBackend_idl__
+#define __com_sun_star_configuration_backend_SingleBackend_idl__
+
+#ifndef __com_sun_star_configuration_backend_XBackendEntities_idl__
+#include <com/sun/star/configuration/backend/XBackendEntities.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XSchemaSupplier_idl__
+#include <com/sun/star/configuration/backend/XSchemaSupplier.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XMultiLayerStratum_idl__
+#include <com/sun/star/configuration/backend/XMultiLayerStratum.idl>
+#endif
+
+//=============================================================================
+
+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 organised hierarchically in organisations,
+ 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
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 000000000000..6135f75d9f68
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/SingleBackendAdapter.idl
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_SingleBackendAdapter_idl__
+#define __com_sun_star_configuration_backend_SingleBackendAdapter_idl__
+
+#ifndef __com_sun_star_configuration_backend_BackendAdapter_idl__
+#include <com/sun/star/configuration/backend/BackendAdapter.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ implements a simple <type>BackendAdapter</type> that can be used for
+ normal configuration operation.
+
+ <p>All real functionality is provided by the wrapped <type>SingleBackend</type>.
+
+ @see com::sun::star::configuration::backend::OnlineBackend
+
+ @since OOo 1.1.2
+*/
+published service SingleBackendAdapter
+{
+ //-------------------------------------------------------------------------
+
+ /** provides access to configuration data from a <type>SingleBackend</type>.
+ */
+ service BackendAdapter ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..8f6a28085c7a
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/SingleLayerStratum.idl
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_SingleLayerStratum_idl__
+#define __com_sun_star_configuration_backend_SingleLayerStratum_idl__
+
+#ifndef __com_sun_star_configuration_backend_XBackendEntities_idl__
+#include <com/sun/star/configuration/backend/XBackendEntities.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XSingleLayerStratum_idl__
+#include <com/sun/star/configuration/backend/XSingleLayerStratum.idl>
+#endif
+
+
+//=============================================================================
+
+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
+
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 000000000000..f425118de937
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/StratumCreationException.idl
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_StratumCreationException_idl__
+#define __com_sun_star_configuration_backend_StratumCreationException_idl__
+
+#ifndef __com_sun_star_configuration_backend_BackendSetupException_idl__
+#include <com/sun/star/configuration/backend/BackendSetupException.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/** is passed to an <type>InteractionHandler<type> when creating a stratum backend fails.
+
+ @since OOo 2.0.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
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 000000000000..5aa281a67ec0
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/SystemIntegration.idl
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_SystemIntegration_idl__
+#define __com_sun_star_configuration_backend_SystemIntegration_idl__
+
+#ifndef __com_sun_star_configuration_backend_Backend_idl__
+#include <com/sun/star/configuration/backend/Backend.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+//=============================================================================
+
+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 initialised
+ using the service registration database 'services.rdb'.
+ </p>
+
+ */
+
+ interface com::sun::star::lang::XInitialization ;
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+#endif
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 000000000000..b0338b771e41
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/TemplateIdentifier.idl
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#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
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 000000000000..f74b1f2d5ce8
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/UpdatableLayer.idl
@@ -0,0 +1,127 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_UpdatableLayer_idl__
+#define __com_sun_star_configuration_backend_UpdatableLayer_idl__
+
+#ifndef __com_sun_star_configuration_backend_Layer_idl__
+#include <com/sun/star/configuration/backend/Layer.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XUpdatableLayer_idl__
+#include <com/sun/star/configuration/backend/XUpdatableLayer.idl>
+#endif
+
+//==============================================================================
+
+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
+ <type scope="com::sun::star::util">XTimeStamped</type>,
+ then after executing <member>XUpdatableLayer::replaceWith()</member>
+ 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 <type>XLayer</type> or
+ composite, i.e <type>XCompositeLayer</type>) of the current layer and
+ the provided replacement layer, the operation performed
+ by <member>XUpdatableLayer::replaceWith()</member>, 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 <type>XUpdatableLayer</type>
+ 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
+
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 000000000000..5696bff294b3
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XBackend.idl
@@ -0,0 +1,206 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XBackend_idl__
+#define __com_sun_star_configuration_backend_XBackend_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XUpdateHandler_idl__
+#include <com/sun/star/configuration/backend/XUpdateHandler.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#include <com/sun/star/configuration/backend/XLayer.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XSchema_idl__
+#include <com/sun/star/configuration/backend/XSchema.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_BackendAccessException_idl__
+#include <com/sun/star/configuration/backend/BackendAccessException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NoSupportException_idl__
+#include <com/sun/star/lang/NoSupportException.idl>
+#endif
+
+//=============================================================================
+
+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
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 000000000000..6530e7182fea
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XBackendChangesListener.idl
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_XBackendChangesListener_idl__
+#define __com_sun_star_configuration_backend_XBackendChangesListener_idl__
+
+#ifndef __com_sun_star_configuration_backend_ComponentChangeEvent_idl__
+#include <com/sun/star/configuration/backend/ComponentChangeEvent.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XEventListener_idl__
+#include <com/sun/star/lang/XEventListener.idl>
+#endif
+//=============================================================================
+
+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
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 000000000000..ca2861bcf443
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XBackendChangesNotifier_idl__
+#define __com_sun_star_configuration_backend_XBackendChangesNotifier_idl__
+
+#ifndef __com_sun_star_configuration_backend_XBackendChangesListener_idl__
+#include <com/sun/star/configuration/backend/XBackendChangesListener.idl>
+#endif
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+//=============================================================================
+
+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 occured.
+ @param aListener
+ specifies the listener object.
+
+ @param component
+ The name of the component the listener is monitoring changes for.
+
+ */
+ [oneway] 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.
+
+ */
+ [oneway] void removeChangesListener( [in] com::sun::star::configuration::backend::XBackendChangesListener aListener,
+ [in] string component);
+
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
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 000000000000..9829ad993ec3
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XBackendEntities.idl
@@ -0,0 +1,142 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XBackendEntities_idl__
+#define __com_sun_star_configuration_backend_XBackendEntities_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+#ifndef __com_sun_star_configuration_backend_BackendAccessException_idl__
+#include <com/sun/star/configuration/backend/BackendAccessException.idl>
+#endif
+
+//=============================================================================
+
+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
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 000000000000..74dc11e27820
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XCompositeLayer.idl
@@ -0,0 +1,118 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_XCompositeLayer_idl__
+#define __com_sun_star_configuration_backend_XCompositeLayer_idl__
+
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#include <com/sun/star/configuration/backend/XLayer.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NullPointerException_idl__
+#include <com/sun/star/lang/NullPointerException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#include <com/sun/star/configuration/backend/MalformedDataException.idl>
+#endif
+
+//==============================================================================
+
+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 <type>XLayerHandler</type>.
+
+ @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
+ <member>XCompositeLayer::listSubLayerIds()</member>
+ </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
+ <type>XLayerHandler</type>.
+ */
+ 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
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 000000000000..89911d869dc8
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XLayer.idl
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#define __com_sun_star_configuration_backend_XLayer_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XLayerHandler_idl__
+#include <com/sun/star/configuration/backend/XLayerHandler.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NullPointerException_idl__
+#include <com/sun/star/lang/NullPointerException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#include <com/sun/star/configuration/backend/MalformedDataException.idl>
+#endif
+
+//=============================================================================
+
+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 <type>XLayerHandler</type>.
+
+ @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
+ <type>XLayerHandler</type>.
+ */
+ void readData([in] XLayerHandler aHandler)
+ raises (com::sun::star::lang::NullPointerException,
+ com::sun::star::lang::WrappedTargetException,
+ MalformedDataException) ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+#endif
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 000000000000..d8718f361c1a
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XLayerContentDescriber.idl
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XLayerContentDescriber_idl__
+#define __com_sun_star_configuration_backend_XLayerContentDescriber_idl__
+
+#ifndef __com_sun_star_configuration_backend_PropertyInfo_idl__
+#include <com/sun/star/configuration/backend/PropertyInfo.idl>
+#endif
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XLayerHandler_idl__
+#include <com/sun/star/configuration/backend/XLayerHandler.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NullPointerException_idl__
+#include <com/sun/star/lang/NullPointerException.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#include <com/sun/star/configuration/backend/MalformedDataException.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/**
+ describe the contents of a layer to an XLayerHander 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 <type>XLayerHandler</type>.
+
+ @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
+ <type>XLayerHandler</type>.
+ */
+ void describeLayer([in] XLayerHandler aHandler,
+ [in] sequence<PropertyInfo> aPropertyInfos)
+ raises (com::sun::star::lang::NullPointerException,
+ com::sun::star::lang::WrappedTargetException,
+ MalformedDataException) ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+#endif
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 000000000000..22b75c9466dc
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XLayerHandler.idl
@@ -0,0 +1,570 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XLayerHandler_idl__
+#define __com_sun_star_configuration_backend_XLayerHandler_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_TemplateIdentifier_idl__
+#include <com/sun/star/configuration/backend/TemplateIdentifier.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#include <com/sun/star/configuration/backend/MalformedDataException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+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 <member>XLayerHandler::endLayer()</member>
+ 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 <member>XLayerHandler::startLayer()</member>.
+ </p>
+
+ @throws com::sun::star::configuration::backend::MalformedDataException
+ <ul>
+ <li>if invalid data is detected in the layer</li>
+ <li>if there is a 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
+ <member>XLayerHandler::endNode()</member>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
+ <type>NodeAttribute</type> 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 removeable.
+ </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 <member>XLayerHandler::endNode()</member>
+ 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
+ <type>NodeAttribute</type> flags. Note that
+ <member>NodeAttribute::FUSE</member> 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 removeable</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 removeable.
+ </p>
+ <p> Subsequent calls describe the difference from the template
+ of properties and members or items of the node until
+ a matching call to <member>XLayerHandler::endNode()</member>
+ 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
+ <type>NodeAttribute</type> flags. Note that
+ <member>NodeAttribute::FUSE</member> 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 removeable</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
+ <member>XLayerHandler::overrideNode()</member>,
+ <member>XLayerHandler::addOrReplaceNode()</member> or
+ <member>XLayerHandler::addOrReplaceNodeFromTemplate()</member>.
+ </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 removeable.
+ </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 removeable</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 <member>XLayerHandler::endProperty()</member>
+ 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
+ <type>NodeAttribute</type> 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
+ <const scope="com::sun::star::uno">TypeClass::ANY</const>.)
+ </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. <atom>string</atom> or - for list values -
+ <atom dim="[]">string</atom>.) 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
+ <const>SchemaAttribute::REQUIRED</const> 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
+ <const>SchemaAttribute::REQUIRED</const> 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
+ <member>XLayerHandler::overrideProperty()</member>,
+ </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
+ <type>NodeAttribute</type> flags and may also contain the
+ <const>SchemaAttribute::REQUIRED</const> flag.
+ </p>
+ <p> <const>NodeAttribute::MANDATORY</const> 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
+ <type>NodeAttribute</type> flags and may also contain the
+ <const>SchemaAttribute::REQUIRED</const> flag.
+ </p>
+ </p>
+ <p> <const>NodeAttribute::MANDATORY</const> 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
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 000000000000..ee0d686dd640
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XLayerImporter.idl
@@ -0,0 +1,163 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XLayerImporter_idl__
+#define __com_sun_star_configuration_backend_XLayerImporter_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#include <com/sun/star/configuration/backend/XLayer.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XBackend_idl__
+#include <com/sun/star/configuration/backend/XBackend.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#include <com/sun/star/configuration/backend/MalformedDataException.idl>
+#endif
+#ifndef __com_sun_star_lang_NullPointerException_idl__
+#include <com/sun/star/lang/NullPointerException.idl>
+#endif
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module configuration { module backend {
+
+//=============================================================================
+
+/** allows importing a layer into a <type>Backend</type>
+
+ @since OOo 1.1.2
+*/
+published interface XLayerImporter : ::com::sun::star::uno::XInterface
+{
+ //-------------------------------------------------------------------------
+
+ /** gets the target backend for importing.
+
+ @returns
+ the <type>Backend</type> into which layers are
+ imported by <member>XLayerImporter::importLayer()<member/>.
+
+ */
+ XBackend getTargetBackend();
+
+ //-------------------------------------------------------------------------
+
+ /** sets the target backend for importing.
+
+ @param aBackend
+ a <type>Backend</type> into which layers should be
+ imported by <method>XLayerImporter::importLayer()<method/>.
+
+ @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
+ a 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
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 000000000000..0f28433a24f6
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl
@@ -0,0 +1,347 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XMultiLayerStratum_idl__
+#define __com_sun_star_configuration_backend_XMultiLayerStratum_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#include <com/sun/star/configuration/backend/XLayer.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XUpdatableLayer_idl__
+#include <com/sun/star/configuration/backend/XUpdatableLayer.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_BackendAccessException_idl__
+#include <com/sun/star/configuration/backend/BackendAccessException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NoSupportException_idl__
+#include <com/sun/star/lang/NoSupportException.idl>
+#endif
+
+//=============================================================================
+
+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 <type>Layer</type> objects.
+ <p> The list ist 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
+ <member>XMultiLayerStratum::listLayerIds()</member> 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 <type>UpdatableLayer</type> 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
+ <member>XMultiLayerStratum::listLayerIds()</member> or
+ <member>XMultiLayerStratum::getUpdateLayerId()</member>.
+ </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
+ <member scope="com::sun::star::util">XTimeStamped::getTimestamp()</member>.
+ </p>
+
+ @returns
+ a <type>Layer</type> 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
+ <member>XMultiLayerStratum::listLayerIds()</member>.
+ </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
+ <member scope="com::sun::star::util">XTimeStamped::getTimestamp()</member>.
+ </p>
+
+ @returns
+ a list of <type>Layer</type> 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
+ <member>XMultiLayerStratum::listLayerIds()</member>.
+ </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
+ <member scope="com::sun::star::util">XTimeStamped::getTimestamp()</member>.
+ </p>
+
+ @returns
+ a list of <type>Layer</type> 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
+ <member>XMultiLayerStratum::getUpdateLayerId()</member>.
+ </p>
+
+ @return
+ an <type>UpdatableLayer</type> 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
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 000000000000..6f761216fd39
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XSchema.idl
@@ -0,0 +1,148 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XSchema_idl__
+#define __com_sun_star_configuration_backend_XSchema_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XSchemaHandler_idl__
+#include <com/sun/star/configuration/backend/XSchemaHandler.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NullPointerException_idl__
+#include <com/sun/star/lang/NullPointerException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#include <com/sun/star/configuration/backend/MalformedDataException.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type>XSchemaHandler</type>.
+
+ @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 <type>XSchema</type>methods 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
+ <type>XSchemaHandler</type>.
+ */
+ void readSchema([in] XSchemaHandler aHandler)
+ raises (com::sun::star::lang::NullPointerException,
+ com::sun::star::lang::WrappedTargetException,
+ MalformedDataException) ;
+
+ //-------------------------------------------------------------------------
+
+ /**
+ Describes only the component definition to a <type>XSchemaHandler</type>.
+
+ @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 <type>XSchema</type>methods 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
+ <type>XSchemaHandler</type>.
+ */
+ void readComponent([in] XSchemaHandler aHandler)
+ raises (com::sun::star::lang::NullPointerException,
+ com::sun::star::lang::WrappedTargetException,
+ MalformedDataException) ;
+
+ //-------------------------------------------------------------------------
+
+ /**
+ Describes the component templates to a <type>XSchemaHandler</type>.
+
+ @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 <type>XSchema</type>methods 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
+ <type>XSchemaHandler</type>.
+ */
+ void readTemplates([in] XSchemaHandler aHandler)
+ raises (com::sun::star::lang::NullPointerException,
+ com::sun::star::lang::WrappedTargetException,
+ MalformedDataException) ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+
+} ; } ; } ; } ; } ;
+#endif
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 000000000000..635eb6164bbd
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XSchemaHandler.idl
@@ -0,0 +1,538 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XSchemaHandler_idl__
+#define __com_sun_star_configuration_backend_XSchemaHandler_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_TemplateIdentifier_idl__
+#include <com/sun/star/configuration/backend/TemplateIdentifier.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#include <com/sun/star/configuration/backend/MalformedDataException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+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 descrption 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 <member>startSchema</member>.
+ </p>
+
+ @throws com::sun::star::configuration::backend::MalformedDataException
+ <ul>
+ <li>if invalid data is detected in the schema</li>
+ <li>if there is a 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 a 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 <member>endComponent</member>
+ is encountered.
+ </p>
+
+ @param aName
+ specifies the name of the component.
+
+ @throws com::sun::star::configuration::backend::MalformedDataException
+ <ul>
+ <li>if there is a 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 <member>startComponent</member>.
+ </p>
+
+ @throws com::sun::star::configuration::backend::MalformedDataException
+ <ul>
+ <li>if invalid data is detected in the component<li>
+ <li>if there is a 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 <member>endTemplate</member>
+ 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
+ <type>SchemaAttribute</type> flags.
+ </p>
+ <p> <const>SchemaAttribute::EXTENSIBLE</const> 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 a 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 <member>endTemplate</member>
+ 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
+ <type>SchemaAttribute</type> flags.
+ </p>
+ <p> <const>SchemaAttribute::EXTENSIBLE</const> 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 a 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 <member>startGroupTemplate</member>
+ or <member>startSetTemplate</member>.
+ </p>
+
+ @throws com::sun::star::configuration::backend::MalformedDataException
+ <ul>
+ <li>if invalid data is detected in the template</li>
+ <li>if there is a 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 <member>endNode</member>
+ 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
+ <type>SchemaAttribute</type> flags.
+ </p>
+ <p> <const>SchemaAttribute::EXTENSIBLE</const> 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 <member>endNode</member>
+ 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
+ <type>SchemaAttribute</type> flags.
+ </p>
+ <p> <const>SchemaAttribute::EXTENSIBLE</const> 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 <member>startGroup</member>
+ or <member>startSet</member>.
+ </p>
+
+ @throws com::sun::star::configuration::backend::MalformedDataException
+ <ul>
+ <li>if the name is not a 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 <const>SchemaAttribute::REQUIRED</const>).
+ </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
+ <type>SchemaAttribute</type> 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
+ <type>SchemaAttribute</type> 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
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 000000000000..d8005be6a38b
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XSchemaSupplier.idl
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XSchemaSupplier_idl__
+#define __com_sun_star_configuration_backend_XSchemaSupplier_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XSchema_idl__
+#include <com/sun/star/configuration/backend/XSchema.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_BackendAccessException_idl__
+#include <com/sun/star/configuration/backend/BackendAccessException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+//=============================================================================
+
+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
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 000000000000..96ac572e82db
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl
@@ -0,0 +1,151 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XSingleLayerStratum_idl__
+#define __com_sun_star_configuration_backend_XSingleLayerStratum_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#include <com/sun/star/configuration/backend/XLayer.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XUpdatableLayer_idl__
+#include <com/sun/star/configuration/backend/XUpdatableLayer.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_BackendAccessException_idl__
+#include <com/sun/star/configuration/backend/BackendAccessException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NoSupportException_idl__
+#include <com/sun/star/lang/NoSupportException.idl>
+#endif
+
+//=============================================================================
+
+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
+ <member scope="com::sun::star::util">XTimeStamped::getTimestamp()</member>.
+ </p>
+
+ @returns
+ a <type>Layer</type> 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 <type>UpdatableLayer</type> 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
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 000000000000..c2fdf99e2eb0
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_configuration_backend_XUpdatableLayer_idl__
+#define __com_sun_star_configuration_backend_XUpdatableLayer_idl__
+
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#include <com/sun/star/configuration/backend/XLayer.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NullPointerException_idl__
+#include <com/sun/star/lang/NullPointerException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#include <com/sun/star/configuration/backend/MalformedDataException.idl>
+#endif
+
+//==============================================================================
+
+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
+ <member>XLayer::readData()</member> 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
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 000000000000..918eee7ea365
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XUpdateHandler.idl
@@ -0,0 +1,673 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XUpdateHandler_idl__
+#define __com_sun_star_configuration_backend_XUpdateHandler_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_TemplateIdentifier_idl__
+#include <com/sun/star/configuration/backend/TemplateIdentifier.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__
+#include <com/sun/star/configuration/backend/MalformedDataException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalAccessException_idl__
+#include <com/sun/star/lang/IllegalAccessException.idl>
+#endif
+
+//=============================================================================
+
+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 a 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
+ <member>XUpdateHandler::endUpdate()</member></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 <member>XUpdateHandler::startUpdate()</member>.
+ </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
+ <member>XUpdateHandler::endNode()</member> 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
+ <type>NodeAttribute</type> 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
+ <type>NodeAttribute</type> 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 removeable.
+ </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 <member>XUpdateHandler::endNode()</member> 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
+ <type>NodeAttribute</type> flags. Note that
+ <member>NodeAttribute::FUSE</member> 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 removeable</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 removeable.
+ </p>
+ <p> Subsequent calls describe the difference from the template
+ of properties or members of the node until a matching call
+ to <member>XUpdateHandler::endNode()</member> 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
+ <type>NodeAttribute</type> flags. Note that
+ <member>NodeAttribute::FUSE</member> 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 removeable</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
+ <member>XUpdateHandler::modifyNode()</member>,
+ <member>XUpdateHandler::addOrReplaceNode()</member> or
+ <member>XUpdateHandler::addOrReplaceNodeFromTemplate()</member>.
+ </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 removeable.
+ </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 removeable</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
+ <member>XUpdateHandler::endProperty()</member> 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
+ <type>NodeAttribute</type> flags.
+ </p>
+ <p> Only attributes which are selected in aAttributeMask are changed.
+ </p>
+ <p> <const>NodeAttribute::MANDATORY</const> 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
+ <type>NodeAttribute</type> 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
+ <const>SchemaAttribute::REQUIRED</const> 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
+ <const>SchemaAttribute::REQUIRED</const> 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
+ <member>XUpdateHandler::modifyProperty()</member>.
+ </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
+ removeable 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
+ <type>NodeAttribute</type> flags and may also contain the
+ <const>SchemaAttribute::REQUIRED</const> flag.
+ </p>
+ </p>
+ <p> <const>NodeAttribute::MANDATORY</const> 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 removeable</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
+ removeable 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
+ <type>NodeAttribute</type> flags and may also contain the
+ <const>SchemaAttribute::REQUIRED</const> flag.
+ </p>
+ </p>
+ <p> <const>NodeAttribute::MANDATORY</const> 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 removeable</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 removeable.</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 removeable</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
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 000000000000..2bcefd070ac3
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.idl
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_XVersionedSchemaSupplier_idl__
+#define __com_sun_star_configuration_backend_XVersionedSchemaSupplier_idl__
+
+#ifndef __com_sun_star_configuration_backend_XSchemaSupplier_idl__
+#include <com/sun/star/configuration/backend/XSchemaSupplier.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_BackendAccessException_idl__
+#include <com/sun/star/configuration/backend/BackendAccessException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+//=============================================================================
+
+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 <atom>string</atom> 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
+ <atom>string</atom> 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
diff --git a/offapi/com/sun/star/configuration/backend/makefile.mk b/offapi/com/sun/star/configuration/backend/makefile.mk
new file mode 100644
index 000000000000..2e2042b0ec34
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/makefile.mk
@@ -0,0 +1,103 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ = ..$/..$/..$/..$/..
+PRJNAME=offapi
+
+TARGET = csscbackend
+PACKAGE = com$/sun$/star$/configuration$/backend
+
+.INCLUDE: $(PRJ)$/util$/makefile.pmk
+
+IDLFILES = \
+ Backend.idl \
+ SingleBackend.idl \
+ LocalSingleBackend.idl \
+ LdapSingleBackend.idl \
+ BackendAdapter.idl \
+ SingleBackendAdapter.idl \
+ OfflineBackend.idl \
+ OnlineBackend.idl \
+ HierarchyBrowser.idl \
+ LocalHierarchyBrowser.idl \
+ DataImporter.idl \
+ LocalDataImporter.idl \
+ LayerFilter.idl \
+ LayerUpdateMerger.idl \
+ Importer.idl \
+ MergeImporter.idl \
+ CopyImporter.idl \
+ Schema.idl \
+ Layer.idl \
+ UpdatableLayer.idl \
+ SingleLayerStratum.idl \
+ LocalSingleStratum.idl \
+ LdapSingleStratum.idl \
+ MultiStratumBackend.idl \
+ MultiLayerStratum.idl \
+ LdapMultiLayerStratum.idl \
+ SchemaSupplier.idl \
+ LocalSchemaSupplier.idl \
+ PlatformBackend.idl \
+ SystemIntegration.idl \
+ LayerDescriber.idl \
+ InteractionHandler.idl \
+ XBackend.idl \
+ XBackendEntities.idl \
+ XSchemaSupplier.idl \
+ XVersionedSchemaSupplier.idl \
+ XSingleLayerStratum.idl \
+ XMultiLayerStratum.idl \
+ XSchema.idl \
+ XLayer.idl \
+ XCompositeLayer.idl \
+ XUpdatableLayer.idl \
+ XSchemaHandler.idl \
+ XLayerHandler.idl \
+ XUpdateHandler.idl \
+ XLayerImporter.idl \
+ XBackendChangesNotifier.idl \
+ XBackendChangesListener.idl \
+ XLayerContentDescriber.idl \
+ ComponentChangeEvent.idl \
+ TemplateIdentifier.idl \
+ SchemaAttribute.idl \
+ NodeAttribute.idl \
+ PropertyInfo.idl \
+ MergeRecoveryRequest.idl \
+ MalformedDataException.idl \
+ BackendSetupException.idl \
+ StratumCreationException.idl \
+ AuthenticationFailedException.idl \
+ CannotConnectException.idl \
+ InvalidAuthenticationMechanismException.idl \
+ BackendAccessException.idl \
+ ConnectionLostException.idl \
+ InsufficientAccessRightsException.idl
+
+.INCLUDE: target.mk
+.INCLUDE: $(PRJ)$/util$/target.pmk
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 000000000000..864051bae236
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/xml/LayerParser.idl
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_xml_LayerParser_idl__
+#define __com_sun_star_configuration_backend_xml_LayerParser_idl__
+
+#ifndef __com_sun_star_configuration_backend_XLayer_idl__
+#include <com/sun/star/configuration/backend/XLayer.idl>
+#endif
+
+#ifndef __com_sun_star_io_XActiveDataSink_idl__
+#include <com/sun/star/io/XActiveDataSink.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type scope="com::sun::star::configuration::backend">XLayerHandler</type>.
+ </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
+ <type scope="com::sun::star::configuration::backend">XLayerHandler</type>.
+
+ @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 <type scope="com::sun::star::io">XInputStream</type> or
+ as a <type scope="com::sun::star::xml::sax">InputSource</type>.
+ </p>
+ */
+ interface com::sun::star::lang::XInitialization ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+} ;
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..1a32587ad13a
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_xml_LayerWriter_idl__
+#define __com_sun_star_configuration_backend_xml_LayerWriter_idl__
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+#ifndef __com_sun_star_io_XActiveDataSource_idl__
+#include <com/sun/star/io/XActiveDataSource.idl>
+#endif
+
+#ifndef __com_sun_star_configuration_backend_XLayerHandler_idl__
+#include <com/sun/star/configuration/backend/XLayerHandler.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type scope="com::sun::star::configuration::backend">XLayerHandler</type>
+ 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 <type scope="com::sun::star::io">XOutputStream</type>.
+ </p>
+ */
+ interface com::sun::star::lang::XInitialization ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+} ;
+} ; } ; } ; } ; } ;
+
+#endif
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 000000000000..6c60fa2a338a
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_backend_xml_SchemaParser_idl__
+#define __com_sun_star_configuration_backend_xml_SchemaParser_idl__
+
+#ifndef __com_sun_star_configuration_backend_XSchema_idl__
+#include <com/sun/star/configuration/backend/XSchema.idl>
+#endif
+
+#ifndef __com_sun_star_io_XActiveDataSink_idl__
+#include <com/sun/star/io/XActiveDataSink.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type scope="com::sun::star::configuration::backend">XSchemaHandler</type>.
+ </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 <type scope="com::sun::star::io">XInputStream</type> or
+ as a <type scope="com::sun::star::xml::sax">InputSource</type>.
+ </p>
+ */
+ interface com::sun::star::lang::XInitialization ;
+
+ //-------------------------------------------------------------------------
+} ;
+
+//=============================================================================
+} ;
+} ; } ; } ; } ; } ;
+
+#endif
diff --git a/offapi/com/sun/star/configuration/backend/xml/makefile.mk b/offapi/com/sun/star/configuration/backend/xml/makefile.mk
new file mode 100644
index 000000000000..b16dcb545738
--- /dev/null
+++ b/offapi/com/sun/star/configuration/backend/xml/makefile.mk
@@ -0,0 +1,43 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ = ..$/..$/..$/..$/..$/..
+PRJNAME=offapi
+
+TARGET = csscbxml
+PACKAGE = com$/sun$/star$/configuration$/backend$/xml
+
+.INCLUDE: $(PRJ)$/util$/makefile.pmk
+
+IDLFILES = \
+ SchemaParser.idl \
+ LayerParser.idl \
+ LayerWriter.idl \
+
+
+.INCLUDE: target.mk
+.INCLUDE: $(PRJ)$/util$/target.pmk
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 000000000000..3441b45e73a1
--- /dev/null
+++ b/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_configuration_bootstrap_BootstrapContext_idl__
+#define __com_sun_star_configuration_bootstrap_BootstrapContext_idl__
+
+#ifndef __com_sun_star_uno_XComponentContext_idl__
+#include <com/sun/star/uno/XComponentContext.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type scope="com::sun::star::configuration">DefaultProvider</type> and
+ <type scope="com::sun::star::configuration::backend">DefaultBackend</type> of the
+ component context.
+ </p>
+ <p> The implementation is usally available as singleton in the context
+ that it wraps..
+ </p>
+
+ @since OOo 1.1.2
+*/
+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
diff --git a/offapi/com/sun/star/configuration/bootstrap/makefile.mk b/offapi/com/sun/star/configuration/bootstrap/makefile.mk
new file mode 100644
index 000000000000..8c234ead56ae
--- /dev/null
+++ b/offapi/com/sun/star/configuration/bootstrap/makefile.mk
@@ -0,0 +1,41 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ = ..$/..$/..$/..$/..
+PRJNAME=offapi
+
+TARGET = csscbootstrap
+PACKAGE = com$/sun$/star$/configuration$/bootstrap
+
+.INCLUDE: $(PRJ)$/util$/makefile.pmk
+
+IDLFILES = \
+ BootstrapContext.idl \
+
+
+.INCLUDE: target.mk
+.INCLUDE: $(PRJ)$/util$/target.pmk
diff --git a/offapi/com/sun/star/configuration/makefile.mk b/offapi/com/sun/star/configuration/makefile.mk
new file mode 100644
index 000000000000..00525e9ba355
--- /dev/null
+++ b/offapi/com/sun/star/configuration/makefile.mk
@@ -0,0 +1,74 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..$/..
+
+PRJNAME=offapi
+
+TARGET=cssconfiguration
+PACKAGE=com$/sun$/star$/configuration
+
+# --- Settings -----------------------------------------------------
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# ------------------------------------------------------------------------
+
+IDLFILES=\
+ AdministrationProvider.idl \
+ DefaultProvider.idl \
+ CannotLoadConfigurationException.idl \
+ CorruptedConfigurationException.idl \
+ CorruptedUIConfigurationException.idl \
+ InvalidBootstrapFileException.idl \
+ MissingBootstrapFileException.idl \
+ InstallationIncompleteException.idl \
+ ConfigurationAccess.idl\
+ ConfigurationProvider.idl\
+ ConfigurationUpdateAccess.idl\
+ ConfigurationRegistry.idl\
+ HierarchyElement.idl\
+ AccessRootElement.idl\
+ UpdateRootElement.idl\
+ GroupElement.idl\
+ SetElement.idl\
+ HierarchyAccess.idl\
+ GroupAccess.idl\
+ GroupUpdate.idl\
+ SetAccess.idl\
+ SetUpdate.idl\
+ SimpleSetAccess.idl\
+ SimpleSetUpdate.idl\
+ PropertyHierarchy.idl\
+ XTemplateContainer.idl\
+ XTemplateInstance.idl\
+ Update.idl \
+ XUpdate.idl
+
+# ------------------------------------------------------------------
+
+.INCLUDE : target.mk
+.INCLUDE : $(PRJ)$/util$/target.pmk