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