diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/configuration/AdministrationProvider.idl | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/configuration/AdministrationProvider.idl')
-rw-r--r-- | offapi/com/sun/star/configuration/AdministrationProvider.idl | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/offapi/com/sun/star/configuration/AdministrationProvider.idl b/offapi/com/sun/star/configuration/AdministrationProvider.idl new file mode 100644 index 000000000..74944d30c --- /dev/null +++ b/offapi/com/sun/star/configuration/AdministrationProvider.idl @@ -0,0 +1,176 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_configuration_AdministrationProvider_idl__ +#define __com_sun_star_configuration_AdministrationProvider_idl__ + +#include <com/sun/star/lang/XMultiServiceFactory.idl> +#include <com/sun/star/lang/XComponent.idl> + + +module com { module sun { module star { module configuration { + +/** manages one, or more, complete sets of configuration data for + administrative purposes and serves as a factory for objects that + provide access to subsets of these shared configurations. + + <p>Shared sets of configuration data usually serve to provide defaults, + which are used if no individual settings are present. Depending on the data + store multiple layers of defaults may be combined with a user-specific layer + to make up the final configuration. + </p> + <p>Many aspects of the supported behavior depend strongly on the underlying + data store and on the administrative structures it defines. With some data + stores this service also enables access to individual user's configuration + data by an administrator. + </p> + <p>On the other hand, in the simplest model there is only a single layer of + default data which is accessible through this service. + </p> + <p>An implementation is usually obtained from a + com::sun::star::lang::ServiceManager. The arguments passed to + com::sun::star::lang::XMultiComponentFactory::createInstanceWithArgumentsAndContext() + select the configuration data source. They may also define the scope of + administrable data or contain credentials to be used to authorize the + administrative access. Missing parameters may be filled in + from the context or the environment. + </p> + + @see com::sun::star::configuration::ConfigurationProvider + Offers the same services and creates the same accessor objects as this + service, but accesses the personal configuration. + + <p>A ConfigurationProvider provides access to the personal + layer of configuration data of the current user context. It should in + most cases be used when <em>using</em> the configuration data, although + for most contexts an AdministrationProvider can be used as + a drop-in replacement. + </p> + */ +published service AdministrationProvider +{ +/** allows creating access objects for specific views such as subsets and fragments + of the configuration. + + <p>The parameter <var>aServiceSpecifier</var> passed to + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + supports at least the service specifiers + <code>"com.sun.star.configuration.ConfigurationAccess"</code> and + <code>"com.sun.star.configuration.ConfigurationUpdateAccess"</code>. + </p> + + <p>Using the first of these service specifiers requests a read-only view of + the configuration. + The object that is created implements service ConfigurationAccess. + To reflect its <em>element role</em> as root of the view, it implements + service AccessRootElement. + </p> + + <p>Using the second form requests an updatable view of the configuration. + The object that is created should implement service + ConfigurationUpdateAccess. To reflect its <em>element role</em> + which includes controlling updates for the whole view, it implements + service UpdateRootElement. + <BR />If the root element of the view is marked read-only (as indicated + by com::sun::star::beans::PropertyAttributes::READONLY), + the implementation may either raise an exception or return a (read-only) + ConfigurationAccess/AccessRootElement instead. + </p> + + <p>The arguments passed to + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + in parameter <var>aArguments</var> specify the administrative entity for which + data should be administered. In other words they determine the layer to which + changes will apply. They also specify the view of that configuration that + should be created. That is, they determine the subset of elements that can be + accessed starting from the returned object. Each element of the argument + sequence should be a com::sun::star::beans::PropertyValue + or a com::sun::star::beans::NamedValue, + so that the parameters can be identified by name rather than by position. + </p> + + <p>What combinations of arguments are supported depends on the service name + and on the data store being administered. + </p> + + <p>With both of the standard service-specifiers above, an implementation must + accept a single argument named <code>nodepath</code> of type `string`. + This argument must contain the absolute path to an element of the + configuration. The view that is selected consists of the named element and + all its descendants. The administrative entity is the default for the + AdministrationProvider. Usually this is the largest entity + encompassing all entities accessible from this instance. In other words this + can be used to influence as global a scope as possible. + </p> + + <p>Other arguments can be used to select a more specific entity and to control + the behavior of the view. These are different for different implementations + and data stores. Whether and how they are used may also depend on properties + that were selected when the provider was created. + </p> + + <p>An implementation may ignore unknown arguments.</p> + + <p>Some parameters that are commonly supported are described for service + ConfigurationProvider. + </p> + <p>One notable difference exists for parameter <code>"Locale"</code>. For a + ConfigurationProvider the default behavior usually is to select + the locale set up for the user. But this service by default gets data for all + locales for which data is present. Locale-dependent values in this case are + replaced by a SetAccess using the language names as accessors. + This also allows targeted setting of values for selected locales. + This behavior can be requested explicitly by specifying a special argument + value <code>locale = "*"</code>. + </p> + + <p>com::sun::star::lang::XMultiServiceFactory::createInstance() + may be unusable. Only an implementation that supports service names that can be + used with no further arguments support this method. It should return the + same result as if + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + had been called using an empty sequence of arguments. + </p> +*/ + interface com::sun::star::lang::XMultiServiceFactory; + + +/** allows controlling or observing the lifetime of the configuration. + + <p>The owner of the provider may dispose of this object + using com::sun::star::lang::XComponent::dispose(). + </p> + + <p>Views created by the provider generally refer to data that is managed by + the provider. Therefore, disposing of the provider will cause all objects + belonging to these views to be disposed of as well. This does not apply to + <em>snapshot</em> views that have their own copy of the data, if available. + </p> + +*/ + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; + +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |