1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23#ifndef __com_sun_star_configuration_ConfigurationUpdateAccess_idl__ 24#define __com_sun_star_configuration_ConfigurationUpdateAccess_idl__ 25 26#ifndef __com_sun_star_configuration_ConfigurationAccess_idl__ 27#include <com/sun/star/configuration/ConfigurationAccess.idl> 28#endif 29 30#ifndef __com_sun_star_configuration_SetUpdate_idl__ 31#include <com/sun/star/configuration/SetUpdate.idl> 32#endif 33 34#ifndef __com_sun_star_configuration_GroupUpdate_idl__ 35#include <com/sun/star/configuration/GroupUpdate.idl> 36#endif 37 38#ifndef __com_sun_star_configuration_UpdateRootElement_idl__ 39#include <com/sun/star/configuration/UpdateRootElement.idl> 40#endif 41 42//============================================================================= 43 44module com { module sun { module star { module configuration { 45 46//============================================================================= 47/** provides modifying access to a fragment of the configuration hierarchy. 48 49 <p>Extends <type>ConfigurationAccess</type> to support modifying values 50 or inserting and removing elements. 51 </p> 52 53 <p>Descendants of this service also implement this service 54 unless they are marked <em>read-only</em> (which is indicated by attribute 55 <const scope="com::sun::star::beans">PropertyAttribute::READONLY</const>), 56 in which case they only need implement <type>ConfigurationAccess</type>. 57 </p> 58 59 <p>The classification of implementations that is described for 60 <type>ConfigurationAccess</type> applies to implementations of this service 61 as well. Therefore an implementation will support one of several alternate 62 services describing its <em>Container</em> role and one of several alternate 63 services describing its <em>Element</em> role. These services are 64 extensions of the respective services documented for <type>ConfigurationAccess</type>. 65 </p> 66 <ul> 67 <li><em>Container</em> role: 68 A <em>group</em> permits changing child values. 69 A <em>set</em> permits inserting and removing contained elements. 70 </li> 71 <li><em>Element</em> role: 72 The root element of a modifiable tree provides extended functionality 73 to control processing of changes for the entire tree (fragment) by 74 supporting <type scope="com::sun::star::util">XChangesBatch</type>. 75 For elements of a <em>set</em> or a <em>group</em> no additinal 76 interfaces are supported. 77 </li> 78 </ul> 79 80 @see ConfigurationProvider 81 Root instances of this service can be requested from a 82 <type>ConfigurationProvider</type> 83*/ 84published service ConfigurationUpdateAccess 85{ 86 /** is the basic service providing read access to an element of the 87 configuration hierarchy and its child and descendent elements. 88 89 <p>The <type>HierarchyAccess</type> specialization implemented will be 90 further specialized to support modifying access. 91 Implementations shall therefore implement one of <type>SetUpdate</type> or 92 <type>GroupUpdate</type> depending on the <em>Container</em> role. 93 </p> 94 95 <p>If the <type>HierarchyElement</type> specialization that is implemented 96 is <type>AccessRootElement</type>, the implementation must support the 97 extended functionality of <type>UpdateRootElement</type>. Otherwise, there 98 are no new requirements mandated by the <em>Element</em> role. 99 </p> 100 101 */ 102 service ConfigurationAccess; 103 104 /** specializes <type>SetAccess</type> to support modifying the element. 105 106 <p>Implemented, if this element is a <em>Set</em>. 107 Otherwise service <type>GroupUpdate</type> is provided. 108 </p> 109 */ 110 [optional] service SetUpdate; 111 112 /** specializes <type>GroupAccess</type> to support modifying contained 113 data. 114 115 <p>Implemented, if this element is a <em>Group</em>. 116 Otherwise service <type>SetUpdate</type> is provided. 117 </p> 118 */ 119 [optional] service GroupUpdate; 120 121 /** specializes <type>AccessRootElement</type> to support transaction-like 122 control over a batch of changes accumulated within the tree fragment. 123 124 <p>Implemented, if this element is the <em>Root</em> of the whole hierarchy. 125 Otherwise either <type>SetElement</type> or <type>GroupElement</type> is provided. 126 </p> 127 128 @see ConfigurationProvider 129 Instances obtained from a <type>ConfigurationProvider</type> will 130 implement this version of <type>HierarchyElement</type>. 131 */ 132 [optional] service UpdateRootElement; 133}; 134 135//============================================================================= 136 137}; }; }; }; 138 139#endif 140 141