summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/configuration/backend
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/configuration/backend')
-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
70 files changed, 7778 insertions, 0 deletions
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