1*b1cdbd2cSJim Jagielski/************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_configuration_backend_XUpdateHandler_idl__ 24*b1cdbd2cSJim Jagielski#define __com_sun_star_configuration_backend_XUpdateHandler_idl__ 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_uno_XInterface_idl__ 27*b1cdbd2cSJim Jagielski#include <com/sun/star/uno/XInterface.idl> 28*b1cdbd2cSJim Jagielski#endif 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_configuration_backend_TemplateIdentifier_idl__ 31*b1cdbd2cSJim Jagielski#include <com/sun/star/configuration/backend/TemplateIdentifier.idl> 32*b1cdbd2cSJim Jagielski#endif 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__ 35*b1cdbd2cSJim Jagielski#include <com/sun/star/configuration/backend/MalformedDataException.idl> 36*b1cdbd2cSJim Jagielski#endif 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_WrappedTargetException_idl__ 39*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/WrappedTargetException.idl> 40*b1cdbd2cSJim Jagielski#endif 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_IllegalAccessException_idl__ 43*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/IllegalAccessException.idl> 44*b1cdbd2cSJim Jagielski#endif 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski//============================================================================= 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module configuration { module backend { 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielski//============================================================================= 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski/** receives a description of a configuration update or layer 53*b1cdbd2cSJim Jagielski as a sequence of events. 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski @since OpenOffice 1.1.2 56*b1cdbd2cSJim Jagielski */ 57*b1cdbd2cSJim Jagielskipublished interface XUpdateHandler: ::com::sun::star::uno::XInterface 58*b1cdbd2cSJim Jagielski{ 59*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski /** receives notification that a update or description is started. 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 64*b1cdbd2cSJim Jagielski if the update already was started 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::IllegalAccessException 67*b1cdbd2cSJim Jagielski if the target layer is read-only 68*b1cdbd2cSJim Jagielski <p><em>Some implementations can only detect this when executing 69*b1cdbd2cSJim Jagielski <member>XUpdateHandler::endUpdate()</member></em> 70*b1cdbd2cSJim Jagielski </p> 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 73*b1cdbd2cSJim Jagielski if an error occurs processing the event. 74*b1cdbd2cSJim Jagielski */ 75*b1cdbd2cSJim Jagielski void startUpdate( ) 76*b1cdbd2cSJim Jagielski raises( MalformedDataException, 77*b1cdbd2cSJim Jagielski com::sun::star::lang::IllegalAccessException, 78*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 79*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski /** receives notification that the current update description is complete. 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski <p> Must match a previous call to <member>XUpdateHandler::startUpdate()</member>. 84*b1cdbd2cSJim Jagielski </p> 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 87*b1cdbd2cSJim Jagielski <ul> 88*b1cdbd2cSJim Jagielski <li>if no update is started at all</li> 89*b1cdbd2cSJim Jagielski <li>if invalid data is detected in the update</li> 90*b1cdbd2cSJim Jagielski <li>if there is an unfinished subnode in progress</li> 91*b1cdbd2cSJim Jagielski <li>if the update tries to change read-only data</li> 92*b1cdbd2cSJim Jagielski </ul> 93*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::IllegalAccessException 96*b1cdbd2cSJim Jagielski if the target layer is read-only 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 99*b1cdbd2cSJim Jagielski if an error occurs processing the event. 100*b1cdbd2cSJim Jagielski */ 101*b1cdbd2cSJim Jagielski void endUpdate( ) 102*b1cdbd2cSJim Jagielski raises( MalformedDataException, 103*b1cdbd2cSJim Jagielski com::sun::star::lang::IllegalAccessException, 104*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 105*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski /** receives notification that a modification of a node is started. 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski <p> Subsequent calls describe changes to properties and items or 110*b1cdbd2cSJim Jagielski members of the node until a matching call to 111*b1cdbd2cSJim Jagielski <member>XUpdateHandler::endNode()</member> is encountered. 112*b1cdbd2cSJim Jagielski </p> 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski @param aName 115*b1cdbd2cSJim Jagielski specifies the name of the node. 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski @param aAttributes 118*b1cdbd2cSJim Jagielski specifies attribute values to be applied to the node in the 119*b1cdbd2cSJim Jagielski current layer. 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski <p> The value is a combination of 122*b1cdbd2cSJim Jagielski <type>NodeAttribute</type> flags. 123*b1cdbd2cSJim Jagielski </p> 124*b1cdbd2cSJim Jagielski <p> Only attributes which are selected in aAttributeMask 125*b1cdbd2cSJim Jagielski are changed. 126*b1cdbd2cSJim Jagielski </p> 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski @param aAttributeMask 129*b1cdbd2cSJim Jagielski specifies which attributes should be changed for the node. 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielski <p> The value is a combination of 132*b1cdbd2cSJim Jagielski <type>NodeAttribute</type> flags. 133*b1cdbd2cSJim Jagielski </p> 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski @param bReset 136*b1cdbd2cSJim Jagielski if <TRUE/>, specifies that the node should be reset to its default 137*b1cdbd2cSJim Jagielski state as given by lower layers and the schema or template prior 138*b1cdbd2cSJim Jagielski to applying the changes. 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 141*b1cdbd2cSJim Jagielski <ul> 142*b1cdbd2cSJim Jagielski <li>if there isn't an update in progress at all</li> 143*b1cdbd2cSJim Jagielski <li>if a node is not valid in this place</li> 144*b1cdbd2cSJim Jagielski <li>if there already was a change to that node</li> 145*b1cdbd2cSJim Jagielski <li>if there is no node with that name</li> 146*b1cdbd2cSJim Jagielski <li>if the node is read-only</li> 147*b1cdbd2cSJim Jagielski <li>if the name is not a valid node name</li> 148*b1cdbd2cSJim Jagielski <li>if the attributes or mask are not valid for the node</li> 149*b1cdbd2cSJim Jagielski </ul> 150*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 153*b1cdbd2cSJim Jagielski if an error occurs processing the event. 154*b1cdbd2cSJim Jagielski 155*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::NodeAttribute 156*b1cdbd2cSJim Jagielski */ 157*b1cdbd2cSJim Jagielski void modifyNode ( [in] string aName, 158*b1cdbd2cSJim Jagielski [in] short aAttributes, 159*b1cdbd2cSJim Jagielski [in] short aAttributeMask, 160*b1cdbd2cSJim Jagielski [in] boolean bReset ) 161*b1cdbd2cSJim Jagielski raises( MalformedDataException, 162*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 163*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski /** receives notification that a node is started as a new item. 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski <p> The current node must be a set and 168*b1cdbd2cSJim Jagielski a preexisting item (if any) must be removeable. 169*b1cdbd2cSJim Jagielski </p> 170*b1cdbd2cSJim Jagielski <p> The new item will be created from the default template 171*b1cdbd2cSJim Jagielski of the set. 172*b1cdbd2cSJim Jagielski </p> 173*b1cdbd2cSJim Jagielski <p> Subsequent calls describe the difference from the template 174*b1cdbd2cSJim Jagielski of properties, items or members of the node until a matching call 175*b1cdbd2cSJim Jagielski to <member>XUpdateHandler::endNode()</member> is encountered. 176*b1cdbd2cSJim Jagielski </p> 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski @param aName 179*b1cdbd2cSJim Jagielski specifies the name of the new item. 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielski @param aAttributes 182*b1cdbd2cSJim Jagielski specifies attribute values to be applied to the new node. 183*b1cdbd2cSJim Jagielski 184*b1cdbd2cSJim Jagielski <p> The value is a combination of 185*b1cdbd2cSJim Jagielski <type>NodeAttribute</type> flags. Note that 186*b1cdbd2cSJim Jagielski <member>NodeAttribute::FUSE</member> has an impact on the 187*b1cdbd2cSJim Jagielski semantics of this method. 188*b1cdbd2cSJim Jagielski </p> 189*b1cdbd2cSJim Jagielski 190*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 191*b1cdbd2cSJim Jagielski <ul> 192*b1cdbd2cSJim Jagielski <li>if there isn't a set node in progress currently</li> 193*b1cdbd2cSJim Jagielski <li>if there already was a change to an item of that name</li> 194*b1cdbd2cSJim Jagielski <li>if the template for the new node is not found</li> 195*b1cdbd2cSJim Jagielski <li>if an item of that name exists and is not removeable</li> 196*b1cdbd2cSJim Jagielski <li>if the name is not a valid item name</li> 197*b1cdbd2cSJim Jagielski <li>if the attributes are not valid for the node</li> 198*b1cdbd2cSJim Jagielski </ul> 199*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 202*b1cdbd2cSJim Jagielski if an error occurs processing the event. 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::NodeAttribute 205*b1cdbd2cSJim Jagielski */ 206*b1cdbd2cSJim Jagielski void addOrReplaceNode ( [in] string aName, 207*b1cdbd2cSJim Jagielski [in] short aAttributes ) 208*b1cdbd2cSJim Jagielski raises( MalformedDataException, 209*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 210*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielski /** receives notification that a node is started as a new item 213*b1cdbd2cSJim Jagielski based on a particular template. 214*b1cdbd2cSJim Jagielski 215*b1cdbd2cSJim Jagielski <p> The current node must be a set and 216*b1cdbd2cSJim Jagielski a preexisting item (if any) must be removeable. 217*b1cdbd2cSJim Jagielski </p> 218*b1cdbd2cSJim Jagielski <p> Subsequent calls describe the difference from the template 219*b1cdbd2cSJim Jagielski of properties or members of the node until a matching call 220*b1cdbd2cSJim Jagielski to <member>XUpdateHandler::endNode()</member> is encountered. 221*b1cdbd2cSJim Jagielski </p> 222*b1cdbd2cSJim Jagielski 223*b1cdbd2cSJim Jagielski @param aName 224*b1cdbd2cSJim Jagielski specifies the name of the item. 225*b1cdbd2cSJim Jagielski 226*b1cdbd2cSJim Jagielski @param aTemplate 227*b1cdbd2cSJim Jagielski specifies the template to use for the new node 228*b1cdbd2cSJim Jagielski 229*b1cdbd2cSJim Jagielski @param aAttributes 230*b1cdbd2cSJim Jagielski specifies attribute values to be applied to the new node. 231*b1cdbd2cSJim Jagielski 232*b1cdbd2cSJim Jagielski <p> The value is a combination of 233*b1cdbd2cSJim Jagielski <type>NodeAttribute</type> flags. Note that 234*b1cdbd2cSJim Jagielski <member>NodeAttribute::FUSE</member> has an impact on the 235*b1cdbd2cSJim Jagielski semantics of this method. 236*b1cdbd2cSJim Jagielski </p> 237*b1cdbd2cSJim Jagielski 238*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 239*b1cdbd2cSJim Jagielski <ul> 240*b1cdbd2cSJim Jagielski <li>if there isn't a set node in progress currently</li> 241*b1cdbd2cSJim Jagielski <li>if there already was a change to an item of that name</li> 242*b1cdbd2cSJim Jagielski <li>if the template for the new node is not found</li> 243*b1cdbd2cSJim Jagielski <li>if an item of that name exists and is not removeable</li> 244*b1cdbd2cSJim Jagielski <li>if the name is not a valid item name</li> 245*b1cdbd2cSJim Jagielski <li>if the template is not a valid item type for the containing set</li> 246*b1cdbd2cSJim Jagielski <li>if the attributes are not valid for the node</li> 247*b1cdbd2cSJim Jagielski </ul> 248*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 249*b1cdbd2cSJim Jagielski 250*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 251*b1cdbd2cSJim Jagielski if an error occurs processing the event. 252*b1cdbd2cSJim Jagielski 253*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::NodeAttribute 254*b1cdbd2cSJim Jagielski */ 255*b1cdbd2cSJim Jagielski void addOrReplaceNodeFromTemplate( [in] string aName, 256*b1cdbd2cSJim Jagielski [in] short aAttributes, 257*b1cdbd2cSJim Jagielski [in] TemplateIdentifier aTemplate ) 258*b1cdbd2cSJim Jagielski raises( MalformedDataException, 259*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 260*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 261*b1cdbd2cSJim Jagielski 262*b1cdbd2cSJim Jagielski /** receives notification that a node modification is complete. 263*b1cdbd2cSJim Jagielski 264*b1cdbd2cSJim Jagielski <p> Must match the last open call to 265*b1cdbd2cSJim Jagielski <member>XUpdateHandler::modifyNode()</member>, 266*b1cdbd2cSJim Jagielski <member>XUpdateHandler::addOrReplaceNode()</member> or 267*b1cdbd2cSJim Jagielski <member>XUpdateHandler::addOrReplaceNodeFromTemplate()</member>. 268*b1cdbd2cSJim Jagielski </p> 269*b1cdbd2cSJim Jagielski 270*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 271*b1cdbd2cSJim Jagielski <ul> 272*b1cdbd2cSJim Jagielski <li>if invalid data is detected in the node</li> 273*b1cdbd2cSJim Jagielski <li>if no node is started at all</li> 274*b1cdbd2cSJim Jagielski </ul> 275*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 276*b1cdbd2cSJim Jagielski 277*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 278*b1cdbd2cSJim Jagielski if an error occurs processing the event. 279*b1cdbd2cSJim Jagielski */ 280*b1cdbd2cSJim Jagielski void endNode( ) 281*b1cdbd2cSJim Jagielski raises( MalformedDataException, 282*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 283*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 284*b1cdbd2cSJim Jagielski 285*b1cdbd2cSJim Jagielski /** receives notification that an item is to be dropped from a set. 286*b1cdbd2cSJim Jagielski 287*b1cdbd2cSJim Jagielski <p> The current node must be a set and 288*b1cdbd2cSJim Jagielski the item must be removeable. 289*b1cdbd2cSJim Jagielski </p> 290*b1cdbd2cSJim Jagielski 291*b1cdbd2cSJim Jagielski @param aName 292*b1cdbd2cSJim Jagielski specifies the name of the node. 293*b1cdbd2cSJim Jagielski 294*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 295*b1cdbd2cSJim Jagielski <ul> 296*b1cdbd2cSJim Jagielski <li>if there isn't a set node in progress currently</li> 297*b1cdbd2cSJim Jagielski <li>if there already was a change to a node of that name</li> 298*b1cdbd2cSJim Jagielski <li>if there is no item with that name</li> 299*b1cdbd2cSJim Jagielski <li>if the item is not removeable</li> 300*b1cdbd2cSJim Jagielski <li>if the name is not a valid node name</li> 301*b1cdbd2cSJim Jagielski </ul> 302*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 303*b1cdbd2cSJim Jagielski 304*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 305*b1cdbd2cSJim Jagielski if an error occurs processing the event. 306*b1cdbd2cSJim Jagielski */ 307*b1cdbd2cSJim Jagielski void removeNode( [in] string aName ) 308*b1cdbd2cSJim Jagielski raises( MalformedDataException, 309*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 310*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 311*b1cdbd2cSJim Jagielski 312*b1cdbd2cSJim Jagielski /** receives notification that modification of an existing property is started. . 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielski <p> Subsequent calls describe changes to the value(s) 315*b1cdbd2cSJim Jagielski of the property until a matching call to 316*b1cdbd2cSJim Jagielski <member>XUpdateHandler::endProperty()</member> is encountered. 317*b1cdbd2cSJim Jagielski </p> 318*b1cdbd2cSJim Jagielski 319*b1cdbd2cSJim Jagielski @param aName 320*b1cdbd2cSJim Jagielski specifies the name of the property. 321*b1cdbd2cSJim Jagielski 322*b1cdbd2cSJim Jagielski @param aAttributes 323*b1cdbd2cSJim Jagielski specifies new attributes of the property. 324*b1cdbd2cSJim Jagielski 325*b1cdbd2cSJim Jagielski <p> The value is a combination of 326*b1cdbd2cSJim Jagielski <type>NodeAttribute</type> flags. 327*b1cdbd2cSJim Jagielski </p> 328*b1cdbd2cSJim Jagielski <p> Only attributes which are selected in aAttributeMask are changed. 329*b1cdbd2cSJim Jagielski </p> 330*b1cdbd2cSJim Jagielski <p> <const>NodeAttribute::MANDATORY</const> need not be set 331*b1cdbd2cSJim Jagielski and can't be removed, as dynamic properties always are mandatory 332*b1cdbd2cSJim Jagielski in subsequent layers. 333*b1cdbd2cSJim Jagielski </p> 334*b1cdbd2cSJim Jagielski 335*b1cdbd2cSJim Jagielski @param aAttributeMask 336*b1cdbd2cSJim Jagielski specifies which attributes should be changed for the property. 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski <p> The value is a combination of 339*b1cdbd2cSJim Jagielski <type>NodeAttribute</type> flags. 340*b1cdbd2cSJim Jagielski </p> 341*b1cdbd2cSJim Jagielski 342*b1cdbd2cSJim Jagielski @param aType 343*b1cdbd2cSJim Jagielski specifies the type of the property. 344*b1cdbd2cSJim Jagielski 345*b1cdbd2cSJim Jagielski <p> A <void/> type can be used to signify that 346*b1cdbd2cSJim Jagielski the type is unknown and should not be recorded. 347*b1cdbd2cSJim Jagielski </p> 348*b1cdbd2cSJim Jagielski 349*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 350*b1cdbd2cSJim Jagielski <ul> 351*b1cdbd2cSJim Jagielski <li>if there isn't a group or extensible node in progress currently</li> 352*b1cdbd2cSJim Jagielski <li>if there already was a change to a property of that name</li> 353*b1cdbd2cSJim Jagielski <li>if there is no property with that name</li> 354*b1cdbd2cSJim Jagielski <li>if the property is read-only</li> 355*b1cdbd2cSJim Jagielski <li>if the name is not a valid property name</li> 356*b1cdbd2cSJim Jagielski <li>if the attributes are not valid for the property</li> 357*b1cdbd2cSJim Jagielski </ul> 358*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 359*b1cdbd2cSJim Jagielski 360*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 361*b1cdbd2cSJim Jagielski if an error occurs processing the event. 362*b1cdbd2cSJim Jagielski 363*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::NodeAttribute 364*b1cdbd2cSJim Jagielski */ 365*b1cdbd2cSJim Jagielski void modifyProperty( [in] string aName, 366*b1cdbd2cSJim Jagielski [in] short aAttributes, 367*b1cdbd2cSJim Jagielski [in] short aAttributeMask, 368*b1cdbd2cSJim Jagielski [in] type aType ) 369*b1cdbd2cSJim Jagielski raises( MalformedDataException, 370*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 371*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 372*b1cdbd2cSJim Jagielski 373*b1cdbd2cSJim Jagielski /** receives notification about a change to the value of 374*b1cdbd2cSJim Jagielski the current property. 375*b1cdbd2cSJim Jagielski 376*b1cdbd2cSJim Jagielski @param aValue 377*b1cdbd2cSJim Jagielski specifies the new value of the property. 378*b1cdbd2cSJim Jagielski 379*b1cdbd2cSJim Jagielski <p> The value must match the type of the existing property. 380*b1cdbd2cSJim Jagielski If the property does not have the 381*b1cdbd2cSJim Jagielski <const>SchemaAttribute::REQUIRED</const> flag set, 382*b1cdbd2cSJim Jagielski the value can be <void/>. 383*b1cdbd2cSJim Jagielski </p> 384*b1cdbd2cSJim Jagielski 385*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 386*b1cdbd2cSJim Jagielski <ul> 387*b1cdbd2cSJim Jagielski <li>if there isn't a property modification in progress currently</li> 388*b1cdbd2cSJim Jagielski <li>if there already was a change to this value</li> 389*b1cdbd2cSJim Jagielski <li>if the type of the value is not an allowed type</li> 390*b1cdbd2cSJim Jagielski <li>if the value is not valid for the property</li> 391*b1cdbd2cSJim Jagielski </ul> 392*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 393*b1cdbd2cSJim Jagielski 394*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 395*b1cdbd2cSJim Jagielski if an error occurs processing the event. 396*b1cdbd2cSJim Jagielski 397*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::NodeAttribute 398*b1cdbd2cSJim Jagielski */ 399*b1cdbd2cSJim Jagielski void setPropertyValue( [in] any aValue ) 400*b1cdbd2cSJim Jagielski raises( MalformedDataException, 401*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 402*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 403*b1cdbd2cSJim Jagielski 404*b1cdbd2cSJim Jagielski /** receives notification about a change to the value of 405*b1cdbd2cSJim Jagielski the current property for a specific locale. 406*b1cdbd2cSJim Jagielski 407*b1cdbd2cSJim Jagielski @param aValue 408*b1cdbd2cSJim Jagielski specifies the new value of the property for the given locale. 409*b1cdbd2cSJim Jagielski 410*b1cdbd2cSJim Jagielski <p> The value must match the type of the existing property. 411*b1cdbd2cSJim Jagielski If the property does not have the 412*b1cdbd2cSJim Jagielski <const>SchemaAttribute::REQUIRED</const> flag set, 413*b1cdbd2cSJim Jagielski the value can be <void/>. 414*b1cdbd2cSJim Jagielski </p> 415*b1cdbd2cSJim Jagielski 416*b1cdbd2cSJim Jagielski @param aLocale 417*b1cdbd2cSJim Jagielski specifies the locale that the new value applies to. 418*b1cdbd2cSJim Jagielski 419*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 420*b1cdbd2cSJim Jagielski <ul> 421*b1cdbd2cSJim Jagielski <li>if there isn't a property modification in progress currently</li> 422*b1cdbd2cSJim Jagielski <li>if the property is not localizable</li> 423*b1cdbd2cSJim Jagielski <li>if there already was a change to this value</li> 424*b1cdbd2cSJim Jagielski <li>if the type of the value is not an allowed type</li> 425*b1cdbd2cSJim Jagielski <li>if the value is not valid for the property</li> 426*b1cdbd2cSJim Jagielski <li>if the locale is not a valid locale name</li> 427*b1cdbd2cSJim Jagielski </ul> 428*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 429*b1cdbd2cSJim Jagielski 430*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 431*b1cdbd2cSJim Jagielski if an error occurs processing the event. 432*b1cdbd2cSJim Jagielski 433*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::NodeAttribute 434*b1cdbd2cSJim Jagielski */ 435*b1cdbd2cSJim Jagielski void setPropertyValueForLocale( [in] any aValue, [in] string aLocale ) 436*b1cdbd2cSJim Jagielski raises( MalformedDataException, 437*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 438*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 439*b1cdbd2cSJim Jagielski 440*b1cdbd2cSJim Jagielski /** receives notification that the value of the current property 441*b1cdbd2cSJim Jagielski should be reset to its default. 442*b1cdbd2cSJim Jagielski 443*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 444*b1cdbd2cSJim Jagielski <ul> 445*b1cdbd2cSJim Jagielski <li>if there isn't a property modification in progress currently</li> 446*b1cdbd2cSJim Jagielski <li>if there already was a change to this value</li> 447*b1cdbd2cSJim Jagielski </ul> 448*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 449*b1cdbd2cSJim Jagielski 450*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 451*b1cdbd2cSJim Jagielski if an error occurs processing the event. 452*b1cdbd2cSJim Jagielski 453*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::NodeAttribute 454*b1cdbd2cSJim Jagielski */ 455*b1cdbd2cSJim Jagielski void resetPropertyValue( ) 456*b1cdbd2cSJim Jagielski raises( MalformedDataException, 457*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 458*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 459*b1cdbd2cSJim Jagielski 460*b1cdbd2cSJim Jagielski /** receives notification that the value of the current property 461*b1cdbd2cSJim Jagielski for a specific locale should be reset to its default. 462*b1cdbd2cSJim Jagielski 463*b1cdbd2cSJim Jagielski @param aLocale 464*b1cdbd2cSJim Jagielski specifies the locale the change applies to. 465*b1cdbd2cSJim Jagielski 466*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 467*b1cdbd2cSJim Jagielski <ul> 468*b1cdbd2cSJim Jagielski <li>if there isn't a property modification in progress currently</li> 469*b1cdbd2cSJim Jagielski <li>if the property is not localizable</li> 470*b1cdbd2cSJim Jagielski <li>if there already was a change to this value</li> 471*b1cdbd2cSJim Jagielski <li>if the locale is not a valid locale name</li> 472*b1cdbd2cSJim Jagielski </ul> 473*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 474*b1cdbd2cSJim Jagielski 475*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 476*b1cdbd2cSJim Jagielski if an error occurs processing the event. 477*b1cdbd2cSJim Jagielski 478*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::NodeAttribute 479*b1cdbd2cSJim Jagielski */ 480*b1cdbd2cSJim Jagielski void resetPropertyValueForLocale( [in] string aLocale ) 481*b1cdbd2cSJim Jagielski raises( MalformedDataException, 482*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 483*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 484*b1cdbd2cSJim Jagielski 485*b1cdbd2cSJim Jagielski /** receives notification that a property modification is complete. 486*b1cdbd2cSJim Jagielski 487*b1cdbd2cSJim Jagielski <p> Must match the last open call to 488*b1cdbd2cSJim Jagielski <member>XUpdateHandler::modifyProperty()</member>. 489*b1cdbd2cSJim Jagielski </p> 490*b1cdbd2cSJim Jagielski 491*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 492*b1cdbd2cSJim Jagielski <ul> 493*b1cdbd2cSJim Jagielski <li>if invalid data is detected in the property</li> 494*b1cdbd2cSJim Jagielski <li>if no property is started at all</li> 495*b1cdbd2cSJim Jagielski </ul> 496*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 497*b1cdbd2cSJim Jagielski 498*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 499*b1cdbd2cSJim Jagielski if an error occurs processing the event. 500*b1cdbd2cSJim Jagielski */ 501*b1cdbd2cSJim Jagielski void endProperty( ) 502*b1cdbd2cSJim Jagielski raises( MalformedDataException, 503*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 504*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 505*b1cdbd2cSJim Jagielski 506*b1cdbd2cSJim Jagielski /** receives notification that a property is reset to its default state. 507*b1cdbd2cSJim Jagielski 508*b1cdbd2cSJim Jagielski @param aName 509*b1cdbd2cSJim Jagielski specifies the name of the property. 510*b1cdbd2cSJim Jagielski 511*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 512*b1cdbd2cSJim Jagielski <ul> 513*b1cdbd2cSJim Jagielski <li>if there isn't a group or extensible node in progress currently</li> 514*b1cdbd2cSJim Jagielski <li>if there already was a change to a property of that name</li> 515*b1cdbd2cSJim Jagielski <li>if there is no property with that name, or if the property 516*b1cdbd2cSJim Jagielski has no default</li> 517*b1cdbd2cSJim Jagielski <li>if the property is read-only</li> 518*b1cdbd2cSJim Jagielski <li>if the name is not a valid property name</li> 519*b1cdbd2cSJim Jagielski </ul> 520*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 521*b1cdbd2cSJim Jagielski 522*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 523*b1cdbd2cSJim Jagielski if an error occurs processing the event. 524*b1cdbd2cSJim Jagielski 525*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::NodeAttribute 526*b1cdbd2cSJim Jagielski */ 527*b1cdbd2cSJim Jagielski void resetProperty( [in] string aName ) 528*b1cdbd2cSJim Jagielski raises( MalformedDataException, 529*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 530*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 531*b1cdbd2cSJim Jagielski 532*b1cdbd2cSJim Jagielski /** receives notification that a property having a value of <void/> 533*b1cdbd2cSJim Jagielski is added to the current node. 534*b1cdbd2cSJim Jagielski 535*b1cdbd2cSJim Jagielski <p> The current node must be extensible and 536*b1cdbd2cSJim Jagielski a preexisting property (if any) must be 537*b1cdbd2cSJim Jagielski removeable in this layer. 538*b1cdbd2cSJim Jagielski </p> 539*b1cdbd2cSJim Jagielski 540*b1cdbd2cSJim Jagielski @param aName 541*b1cdbd2cSJim Jagielski specifies the name of the new property. 542*b1cdbd2cSJim Jagielski 543*b1cdbd2cSJim Jagielski @param aAttributes 544*b1cdbd2cSJim Jagielski specifies the attributes of the new property. 545*b1cdbd2cSJim Jagielski 546*b1cdbd2cSJim Jagielski <p> The value is a combination of 547*b1cdbd2cSJim Jagielski <type>NodeAttribute</type> flags and may also contain the 548*b1cdbd2cSJim Jagielski <const>SchemaAttribute::REQUIRED</const> flag. 549*b1cdbd2cSJim Jagielski </p> 550*b1cdbd2cSJim Jagielski </p> 551*b1cdbd2cSJim Jagielski <p> <const>NodeAttribute::MANDATORY</const> need not be set, 552*b1cdbd2cSJim Jagielski as dynamic properties always are mandatory 553*b1cdbd2cSJim Jagielski in subsequent layers. 554*b1cdbd2cSJim Jagielski </p> 555*b1cdbd2cSJim Jagielski 556*b1cdbd2cSJim Jagielski @param aType 557*b1cdbd2cSJim Jagielski specifies the type of the new property. 558*b1cdbd2cSJim Jagielski 559*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 560*b1cdbd2cSJim Jagielski <ul> 561*b1cdbd2cSJim Jagielski <li>if there isn't a group or extensible node in progress currently</li> 562*b1cdbd2cSJim Jagielski <li>if there already was a change to a property of that name</li> 563*b1cdbd2cSJim Jagielski <li>if a property of that name exists and is not removeable</li> 564*b1cdbd2cSJim Jagielski <li>if the specified type is not allowed</li> 565*b1cdbd2cSJim Jagielski <li>if the name is not a valid property name</li> 566*b1cdbd2cSJim Jagielski <li>if the attributes are not valid for the property</li> 567*b1cdbd2cSJim Jagielski </ul> 568*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 569*b1cdbd2cSJim Jagielski 570*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 571*b1cdbd2cSJim Jagielski if an error occurs processing the event. 572*b1cdbd2cSJim Jagielski 573*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::SchemaAttribute 574*b1cdbd2cSJim Jagielski */ 575*b1cdbd2cSJim Jagielski void addOrReplaceProperty( [in] string aName, 576*b1cdbd2cSJim Jagielski [in] short aAttributes, 577*b1cdbd2cSJim Jagielski [in] type aType ) 578*b1cdbd2cSJim Jagielski raises( MalformedDataException, 579*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 580*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 581*b1cdbd2cSJim Jagielski 582*b1cdbd2cSJim Jagielski /** receives notification that a property having a non-<NULL/> value 583*b1cdbd2cSJim Jagielski is added to the current node. 584*b1cdbd2cSJim Jagielski 585*b1cdbd2cSJim Jagielski <p> The current node must be extensible and 586*b1cdbd2cSJim Jagielski a preexisting property (if any) must be 587*b1cdbd2cSJim Jagielski removeable in this layer. 588*b1cdbd2cSJim Jagielski </p> 589*b1cdbd2cSJim Jagielski 590*b1cdbd2cSJim Jagielski @param aName 591*b1cdbd2cSJim Jagielski specifies the name of the new property. 592*b1cdbd2cSJim Jagielski 593*b1cdbd2cSJim Jagielski @param aAttributes 594*b1cdbd2cSJim Jagielski specifies the attributes of the new property. 595*b1cdbd2cSJim Jagielski 596*b1cdbd2cSJim Jagielski <p> The value is a combination of 597*b1cdbd2cSJim Jagielski <type>NodeAttribute</type> flags and may also contain the 598*b1cdbd2cSJim Jagielski <const>SchemaAttribute::REQUIRED</const> flag. 599*b1cdbd2cSJim Jagielski </p> 600*b1cdbd2cSJim Jagielski </p> 601*b1cdbd2cSJim Jagielski <p> <const>NodeAttribute::MANDATORY</const> need not be set, 602*b1cdbd2cSJim Jagielski as dynamic properties always are mandatory 603*b1cdbd2cSJim Jagielski in subsequent layers. 604*b1cdbd2cSJim Jagielski </p> 605*b1cdbd2cSJim Jagielski 606*b1cdbd2cSJim Jagielski @param aValue 607*b1cdbd2cSJim Jagielski specifies the value of the new property. 608*b1cdbd2cSJim Jagielski 609*b1cdbd2cSJim Jagielski <p> The value also determines the type. 610*b1cdbd2cSJim Jagielski Therefore the value must not be <void/>. 611*b1cdbd2cSJim Jagielski </p> 612*b1cdbd2cSJim Jagielski 613*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 614*b1cdbd2cSJim Jagielski <ul> 615*b1cdbd2cSJim Jagielski <li>if there isn't a group or extensible node in progress currently</li> 616*b1cdbd2cSJim Jagielski <li>if there already was a change to a property of that name</li> 617*b1cdbd2cSJim Jagielski <li>if a property of that name exists and is not removeable</li> 618*b1cdbd2cSJim Jagielski <li>if the type of the value is not an allowed type, 619*b1cdbd2cSJim Jagielski or if the value is <void/></li> 620*b1cdbd2cSJim Jagielski <li>if the name is not a valid property name</li> 621*b1cdbd2cSJim Jagielski <li>if the attributes are not valid for the property</li> 622*b1cdbd2cSJim Jagielski </ul> 623*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 624*b1cdbd2cSJim Jagielski 625*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 626*b1cdbd2cSJim Jagielski if an error occurs processing the event. 627*b1cdbd2cSJim Jagielski 628*b1cdbd2cSJim Jagielski @see com::sun::star::configuration::backend::SchemaAttribute 629*b1cdbd2cSJim Jagielski */ 630*b1cdbd2cSJim Jagielski void addOrReplacePropertyWithValue( [in] string aName, 631*b1cdbd2cSJim Jagielski [in] short aAttributes, 632*b1cdbd2cSJim Jagielski [in] any aValue ) 633*b1cdbd2cSJim Jagielski raises( MalformedDataException, 634*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 635*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 636*b1cdbd2cSJim Jagielski 637*b1cdbd2cSJim Jagielski /** receives notification that a property is dropped from the current node. 638*b1cdbd2cSJim Jagielski 639*b1cdbd2cSJim Jagielski <p>The current node must be extensible and the property removeable.</p> 640*b1cdbd2cSJim Jagielski 641*b1cdbd2cSJim Jagielski @param aName 642*b1cdbd2cSJim Jagielski specifies the name of the property. 643*b1cdbd2cSJim Jagielski 644*b1cdbd2cSJim Jagielski @throws com::sun::star::configuration::backend::MalformedDataException 645*b1cdbd2cSJim Jagielski <ul> 646*b1cdbd2cSJim Jagielski <li>if there isn't a group or extensible node in progress currently</li> 647*b1cdbd2cSJim Jagielski <li>if there is no property with that name</li> 648*b1cdbd2cSJim Jagielski <li>if the property is not removeable</li> 649*b1cdbd2cSJim Jagielski <li>if the name is not a valid node name</li> 650*b1cdbd2cSJim Jagielski </ul> 651*b1cdbd2cSJim Jagielski <p><em>Not every implementation can detect each condition</em></p> 652*b1cdbd2cSJim Jagielski 653*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::WrappedTargetException 654*b1cdbd2cSJim Jagielski if an error occurs processing the event. 655*b1cdbd2cSJim Jagielski */ 656*b1cdbd2cSJim Jagielski void removeProperty( [in] string aName ) 657*b1cdbd2cSJim Jagielski raises( MalformedDataException, 658*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException ); 659*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 660*b1cdbd2cSJim Jagielski 661*b1cdbd2cSJim Jagielski}; 662*b1cdbd2cSJim Jagielski 663*b1cdbd2cSJim Jagielski//============================================================================= 664*b1cdbd2cSJim Jagielski 665*b1cdbd2cSJim Jagielski}; }; }; }; }; 666*b1cdbd2cSJim Jagielski 667*b1cdbd2cSJim Jagielski//============================================================================= 668*b1cdbd2cSJim Jagielski 669*b1cdbd2cSJim Jagielski#endif 670