1*cdf0e10cSrcweir/************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir#ifndef __com_sun_star_configuration_ConfigurationUpdateAccess_idl__ 28*cdf0e10cSrcweir#define __com_sun_star_configuration_ConfigurationUpdateAccess_idl__ 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir#ifndef __com_sun_star_configuration_ConfigurationAccess_idl__ 31*cdf0e10cSrcweir#include <com/sun/star/configuration/ConfigurationAccess.idl> 32*cdf0e10cSrcweir#endif 33*cdf0e10cSrcweir 34*cdf0e10cSrcweir#ifndef __com_sun_star_configuration_SetUpdate_idl__ 35*cdf0e10cSrcweir#include <com/sun/star/configuration/SetUpdate.idl> 36*cdf0e10cSrcweir#endif 37*cdf0e10cSrcweir 38*cdf0e10cSrcweir#ifndef __com_sun_star_configuration_GroupUpdate_idl__ 39*cdf0e10cSrcweir#include <com/sun/star/configuration/GroupUpdate.idl> 40*cdf0e10cSrcweir#endif 41*cdf0e10cSrcweir 42*cdf0e10cSrcweir#ifndef __com_sun_star_configuration_UpdateRootElement_idl__ 43*cdf0e10cSrcweir#include <com/sun/star/configuration/UpdateRootElement.idl> 44*cdf0e10cSrcweir#endif 45*cdf0e10cSrcweir 46*cdf0e10cSrcweir//============================================================================= 47*cdf0e10cSrcweir 48*cdf0e10cSrcweirmodule com { module sun { module star { module configuration { 49*cdf0e10cSrcweir 50*cdf0e10cSrcweir//============================================================================= 51*cdf0e10cSrcweir/** provides modifying access to a fragment of the configuration hierarchy. 52*cdf0e10cSrcweir 53*cdf0e10cSrcweir <p>Extends <type>ConfigurationAccess</type> to support modifying values 54*cdf0e10cSrcweir or inserting and removing elements. 55*cdf0e10cSrcweir </p> 56*cdf0e10cSrcweir 57*cdf0e10cSrcweir <p>Descendants of this service also implement this service 58*cdf0e10cSrcweir unless they are marked <em>read-only</em> (which is indicated by attribute 59*cdf0e10cSrcweir <const scope="com::sun::star::beans">PropertyAttribute::READONLY</const>), 60*cdf0e10cSrcweir in which case they only need implement <type>ConfigurationAccess</type>. 61*cdf0e10cSrcweir </p> 62*cdf0e10cSrcweir 63*cdf0e10cSrcweir <p>The classification of implementations that is described for 64*cdf0e10cSrcweir <type>ConfigurationAccess</type> applies to implementations of this service 65*cdf0e10cSrcweir as well. Therefore an implementation will support one of several alternate 66*cdf0e10cSrcweir services describing its <em>Container</em> role and one of several alternate 67*cdf0e10cSrcweir services describing its <em>Element</em> role. These services are 68*cdf0e10cSrcweir extensions of the respective services documented for <type>ConfigurationAccess</type>. 69*cdf0e10cSrcweir </p> 70*cdf0e10cSrcweir <ul> 71*cdf0e10cSrcweir <li><em>Container</em> role: 72*cdf0e10cSrcweir A <em>group</em> permits changing child values. 73*cdf0e10cSrcweir A <em>set</em> permits inserting and removing contained elements. 74*cdf0e10cSrcweir </li> 75*cdf0e10cSrcweir <li><em>Element</em> role: 76*cdf0e10cSrcweir The root element of a modifiable tree provides extended functionality 77*cdf0e10cSrcweir to control processing of changes for the entire tree (fragment) by 78*cdf0e10cSrcweir supporting <type scope="com::sun::star::util">XChangesBatch</type>. 79*cdf0e10cSrcweir For elements of a <em>set</em> or a <em>group</em> no additinal 80*cdf0e10cSrcweir interfaces are supported. 81*cdf0e10cSrcweir </li> 82*cdf0e10cSrcweir </ul> 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir @see ConfigurationProvider 85*cdf0e10cSrcweir Root instances of this service can be requested from a 86*cdf0e10cSrcweir <type>ConfigurationProvider</type> 87*cdf0e10cSrcweir*/ 88*cdf0e10cSrcweirpublished service ConfigurationUpdateAccess 89*cdf0e10cSrcweir{ 90*cdf0e10cSrcweir /** is the basic service providing read access to an element of the 91*cdf0e10cSrcweir configuration hierarchy and its child and descendent elements. 92*cdf0e10cSrcweir 93*cdf0e10cSrcweir <p>The <type>HierarchyAccess</type> specialization implemented will be 94*cdf0e10cSrcweir further specialized to support modifying access. 95*cdf0e10cSrcweir Implementations shall therefore implement one of <type>SetUpdate</type> or 96*cdf0e10cSrcweir <type>GroupUpdate</type> depending on the <em>Container</em> role. 97*cdf0e10cSrcweir </p> 98*cdf0e10cSrcweir 99*cdf0e10cSrcweir <p>If the <type>HierarchyElement</type> specialization that is implemented 100*cdf0e10cSrcweir is <type>AccessRootElement</type>, the implementation must support the 101*cdf0e10cSrcweir extended functionality of <type>UpdateRootElement</type>. Otherwise, there 102*cdf0e10cSrcweir are no new requirements mandated by the <em>Element</em> role. 103*cdf0e10cSrcweir </p> 104*cdf0e10cSrcweir 105*cdf0e10cSrcweir */ 106*cdf0e10cSrcweir service ConfigurationAccess; 107*cdf0e10cSrcweir 108*cdf0e10cSrcweir /** specializes <type>SetAccess</type> to support modifying the element. 109*cdf0e10cSrcweir 110*cdf0e10cSrcweir <p>Implemented, if this element is a <em>Set</em>. 111*cdf0e10cSrcweir Otherwise service <type>GroupUpdate</type> is provided. 112*cdf0e10cSrcweir </p> 113*cdf0e10cSrcweir */ 114*cdf0e10cSrcweir [optional] service SetUpdate; 115*cdf0e10cSrcweir 116*cdf0e10cSrcweir /** specializes <type>GroupAccess</type> to support modifying contained 117*cdf0e10cSrcweir data. 118*cdf0e10cSrcweir 119*cdf0e10cSrcweir <p>Implemented, if this element is a <em>Group</em>. 120*cdf0e10cSrcweir Otherwise service <type>SetUpdate</type> is provided. 121*cdf0e10cSrcweir </p> 122*cdf0e10cSrcweir */ 123*cdf0e10cSrcweir [optional] service GroupUpdate; 124*cdf0e10cSrcweir 125*cdf0e10cSrcweir /** specializes <type>AccessRootElement</type> to support transaction-like 126*cdf0e10cSrcweir control over a batch of changes accumulated within the tree fragment. 127*cdf0e10cSrcweir 128*cdf0e10cSrcweir <p>Implemented, if this element is the <em>Root</em> of the whole hierarchy. 129*cdf0e10cSrcweir Otherwise either <type>SetElement</type> or <type>GroupElement</type> is provided. 130*cdf0e10cSrcweir </p> 131*cdf0e10cSrcweir 132*cdf0e10cSrcweir @see ConfigurationProvider 133*cdf0e10cSrcweir Instances obtained from a <type>ConfigurationProvider</type> will 134*cdf0e10cSrcweir implement this version of <type>HierarchyElement</type>. 135*cdf0e10cSrcweir */ 136*cdf0e10cSrcweir [optional] service UpdateRootElement; 137*cdf0e10cSrcweir}; 138*cdf0e10cSrcweir 139*cdf0e10cSrcweir//============================================================================= 140*cdf0e10cSrcweir 141*cdf0e10cSrcweir}; }; }; }; 142*cdf0e10cSrcweir 143*cdf0e10cSrcweir#endif 144*cdf0e10cSrcweir 145