|  | /************************************************************** | 
|  | * | 
|  | * 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 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, | 
|  | * software distributed under the License is distributed on an | 
|  | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | * KIND, either express or implied.  See the License for the | 
|  | * specific language governing permissions and limitations | 
|  | * under the License. | 
|  | * | 
|  | *************************************************************/ | 
|  |  | 
|  |  | 
|  | #ifndef __com_sun_star_configuration_ConfigurationProvider_idl__ | 
|  | #define __com_sun_star_configuration_ConfigurationProvider_idl__ | 
|  |  | 
|  | #ifndef __com_sun_star_lang_XMultiServiceFactory_idl__ | 
|  | #include <com/sun/star/lang/XMultiServiceFactory.idl> | 
|  | #endif | 
|  |  | 
|  | #ifndef __com_sun_star_lang_XComponent_idl__ | 
|  | #include <com/sun/star/lang/XComponent.idl> | 
|  | #endif | 
|  |  | 
|  | //============================================================================= | 
|  |  | 
|  | module com { module sun { module star { module configuration { | 
|  |  | 
|  | //============================================================================= | 
|  | /** manages one, or more, complete sets of configuration data for | 
|  | administrative puposes and serves as a factory for objects that | 
|  | provide access to subsets of these shared configurations. | 
|  |  | 
|  | <p>Shared sets of configuration data usually serve to provide defaults, | 
|  | which are used if no individual settings are present. Depending on the data | 
|  | store multiple layers of defaults may be combined with a user-specific layer | 
|  | to make up the final configuration. | 
|  | </p> | 
|  | <p>Many aspects of the supported behavior depend strongly on the underlying | 
|  | data store and on the administrative structures it defines. With some data | 
|  | stores this service also enables access to individual users' configuration | 
|  | data by an administrator. | 
|  | </p> | 
|  | <p>On the other hand, in the simplest model there is only a single layer of | 
|  | default data which is accessible through this service. | 
|  | </p> | 
|  | <p>An implementation is usually obtained from a | 
|  | <type scope="com::sun::star::lang">ServiceManager</type>. The arguments passed to | 
|  | <member scope="com::sun::star::lang">XMultiComponentFactory::createInstanceWithContextAndArguments()</member> | 
|  | select the configuration data source. They may also define the scope of | 
|  | administrable data or contain credentials to be used to authorize the | 
|  | administrative access. Missing parameters may be filled in | 
|  | from the context or the environment. | 
|  | </p> | 
|  |  | 
|  | @see com::sun::star::configuration::ConfigurationProvider | 
|  | Offers the same services and creates the same accessor objects as this | 
|  | service, but accesses the personal configuration. | 
|  |  | 
|  | <p>A <type> ConfigurationProvider</type> provides access to the personal | 
|  | layer of configuration data of the current user context. It should in | 
|  | most cases be used when <em>using</em> the configuration data, although | 
|  | for most contexts a <type>AdministrationProvider</type> can be used as | 
|  | a drop-in replacement. | 
|  | </p> | 
|  | */ | 
|  | published service AdministrationProvider | 
|  | { | 
|  | /** allows creating access objects for specific views such as subsets and fragments | 
|  | of the configuration. | 
|  |  | 
|  | <p>The parameter <var>aServiceSpecifier</var> passed to | 
|  | <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member> | 
|  | supports at least the service specifiers | 
|  | <code>"com.sun.star.configuration.ConfigurationAccess"</code> and | 
|  | <code>"com.sun.star.configuration.ConfigurationUpdateAccess"</code>. | 
|  | </p> | 
|  |  | 
|  | <p>Using the first of these service specifiers requests a read-only view of | 
|  | the configuration. | 
|  | The object that is created implements service <type>ConfigurationAccess</type>. | 
|  | To reflect its <em>element role</em> as root of the view, it implements | 
|  | service <type>AccessRootElement</type>. | 
|  | </p> | 
|  |  | 
|  | <p>Using the second form requests an updatable view of the configuration. | 
|  | The object that is created should implement service | 
|  | <type>ConfigurationUpdateAccess</type>. To reflect its <em>element role</em> | 
|  | which includes controlling updates for the whole view, it implements | 
|  | service <type>UpdateRootElement</type>. | 
|  | <BR />If the root element of the view is marked read-only (as indicated | 
|  | by <const scope="com::sun::star::beans">PropertyAttributes::READONLY</const>), | 
|  | the implementation may either raise an exception or return a (read-only) | 
|  | <type>ConfigurationAccess</type>/<type>AccessRootElement</type> instead. | 
|  | </p> | 
|  |  | 
|  | <p>The arguments passed to | 
|  | <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member> | 
|  | in parameter <var>aArguments</var> specify the administrative entity for which | 
|  | data should be administered. In other words they determine the layer to which | 
|  | changes will apply. They also specify the view of that configuration that | 
|  | should be created. That is, they determine the subset of elements that can be | 
|  | accessed starting from the returned object. Each element of the argument | 
|  | sequence should be a <type scope="com::sun::star::beans">PropertyValue</type> | 
|  | or a <type scope="com::sun::star::beans">NamedValue</type>, | 
|  | so that the parameters can be identified by name rather than by position. | 
|  | </p> | 
|  |  | 
|  | <p>What combinations of arguments are supported depends on the service name | 
|  | and on the data store being administered. | 
|  | </p> | 
|  |  | 
|  | <p>With both of the standard service-specifiers above, an implementation must | 
|  | accept a single argument named <code>nodepath</code> of type <atom>string</atom>. | 
|  | This argument must contain the absolute path to an element of the | 
|  | configuration. The view that is selected consists of the named element and | 
|  | all its decendants. The administrative entity is the default for the | 
|  | <type>AdministrationProvider</type>. Usually this is the largest entity | 
|  | encompassing all entities accessible from this instance. In other words this | 
|  | can be used to influence as global a scope as possible. | 
|  | </p> | 
|  |  | 
|  | <p>Other arguments can be used to select a more specific entity and to control | 
|  | the behavior of the view. These are different for different implementations | 
|  | and data stores. Whether and how they are used may also depend on properties | 
|  | that were selected when the provider was created. | 
|  | </p> | 
|  |  | 
|  | <p>An implementation may ignore unknown arguments.</p> | 
|  |  | 
|  | <p>Some parameters that are commonly supported are described for service | 
|  | <type>ConfigurationProvider</type>. | 
|  | </p> | 
|  | <p>One notable difference exists for parameter <code>"Locale"</code>. For a | 
|  | <type>ConfigurationProvider</type> the default behavior usually is to select | 
|  | the locale set up for the user. But this service by default gets data for all | 
|  | locales for which data is present. Locale-dependent values in this case are | 
|  | replaced by a <type>SetAccess</type> using the language names as accessors. | 
|  | This also allows targetted setting of values for selected locales. | 
|  | This behavior can be requested explicitly by specifing a special argument | 
|  | value <code>locale = "*"</code>. | 
|  | </p> | 
|  |  | 
|  | <p><member scope="com::sun::star::lang">XMultiServiceFactory::createInstance()</member> | 
|  | may be unusable. Only an implementation that supports service names that can be | 
|  | used with no further arguments support this method. It should return the | 
|  | same result as if | 
|  | <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member> | 
|  | had been called using an empty sequence of arguments. | 
|  | </p> | 
|  | */ | 
|  | interface com::sun::star::lang::XMultiServiceFactory; | 
|  |  | 
|  |  | 
|  | /** allows controlling or observing the lifetime of the configuration. | 
|  |  | 
|  | <p>The owner of the provider may dispose of this object | 
|  | using <member scope="com::sun::star::lang">XComponent::dispose()</member>. | 
|  | </p> | 
|  |  | 
|  | <p>Views created by the provider generally refer to data that is managed by | 
|  | the provider. Therefore, disposing of the provider will cause all objects | 
|  | belonging to these views to be disposed of as well. This does not apply to | 
|  | <em>snapshot</em> views that have their own copy of the data, if available. | 
|  | </p> | 
|  |  | 
|  | */ | 
|  | interface com::sun::star::lang::XComponent; | 
|  |  | 
|  | }; | 
|  |  | 
|  | //============================================================================= | 
|  |  | 
|  | }; }; }; }; | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  |