/************************************************************************* * * 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 * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef __com_sun_star_configuration_ConfigurationUpdateAccess_idl__ #define __com_sun_star_configuration_ConfigurationUpdateAccess_idl__ #ifndef __com_sun_star_configuration_ConfigurationAccess_idl__ #include #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