/************************************************************** * * 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_ConfigurationUpdateAccess_idl__ #define __com_sun_star_configuration_ConfigurationUpdateAccess_idl__ #ifndef __com_sun_star_configuration_ConfigurationAccess_idl__ #include #endif #ifndef __com_sun_star_configuration_SetUpdate_idl__ #include #endif #ifndef __com_sun_star_configuration_GroupUpdate_idl__ #include #endif #ifndef __com_sun_star_configuration_UpdateRootElement_idl__ #include #endif //============================================================================= module com { module sun { module star { module configuration { //============================================================================= /** provides modifying access to a fragment of the configuration hierarchy.

Extends ConfigurationAccess to support modifying values or inserting and removing elements.

Descendants of this service also implement this service unless they are marked read-only (which is indicated by attribute PropertyAttribute::READONLY), in which case they only need implement ConfigurationAccess.

The classification of implementations that is described for ConfigurationAccess applies to implementations of this service as well. Therefore an implementation will support one of several alternate services describing its Container role and one of several alternate services describing its Element role. These services are extensions of the respective services documented for ConfigurationAccess.

  • Container role: A group permits changing child values. A set permits inserting and removing contained elements.
  • Element role: The root element of a modifiable tree provides extended functionality to control processing of changes for the entire tree (fragment) by supporting XChangesBatch. For elements of a set or a group no additinal interfaces are supported.
@see ConfigurationProvider Root instances of this service can be requested from a ConfigurationProvider */ published service ConfigurationUpdateAccess { /** is the basic service providing read access to an element of the configuration hierarchy and its child and descendent elements.

The HierarchyAccess specialization implemented will be further specialized to support modifying access. Implementations shall therefore implement one of SetUpdate or GroupUpdate depending on the Container role.

If the HierarchyElement specialization that is implemented is AccessRootElement, the implementation must support the extended functionality of UpdateRootElement. Otherwise, there are no new requirements mandated by the Element role.

*/ service ConfigurationAccess; /** specializes SetAccess to support modifying the element.

Implemented, if this element is a Set. Otherwise service GroupUpdate is provided.

*/ [optional] service SetUpdate; /** specializes GroupAccess to support modifying contained data.

Implemented, if this element is a Group. Otherwise service SetUpdate is provided.

*/ [optional] service GroupUpdate; /** specializes AccessRootElement to support transaction-like control over a batch of changes accumulated within the tree fragment.

Implemented, if this element is the Root of the whole hierarchy. Otherwise either SetElement or GroupElement is provided.

@see ConfigurationProvider Instances obtained from a ConfigurationProvider will implement this version of HierarchyElement. */ [optional] service UpdateRootElement; }; //============================================================================= }; }; }; }; #endif