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_XLayerHandler_idl__
24cdf0e10cSrcweir#define __com_sun_star_configuration_backend_XLayerHandler_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//=============================================================================
43cdf0e10cSrcweir
44cdf0e10cSrcweirmodule com { module sun { module star { module configuration { module backend {
45cdf0e10cSrcweir
46cdf0e10cSrcweir//=============================================================================
47cdf0e10cSrcweir
48cdf0e10cSrcweir/** receives a description of a configuration layer
49cdf0e10cSrcweir	as a sequence of events.
50cdf0e10cSrcweir
51*0d3a54ffSJürgen Schmidt    @since OpenOffice 1.1.2
52cdf0e10cSrcweir */
53cdf0e10cSrcweirpublished interface XLayerHandler: ::com::sun::star::uno::XInterface
54cdf0e10cSrcweir{
55cdf0e10cSrcweir	//-------------------------------------------------------------------------
56cdf0e10cSrcweir
57cdf0e10cSrcweir	/** receives notification that a layer description is started
58cdf0e10cSrcweir		for a component.
59cdf0e10cSrcweir
60cdf0e10cSrcweir		<p> Subsequent calls describe the contents of the layer
61cdf0e10cSrcweir			until a matching call to <member>XLayerHandler::endLayer()</member>
62cdf0e10cSrcweir			is encountered.
63cdf0e10cSrcweir		</p>
64cdf0e10cSrcweir
65cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
66cdf0e10cSrcweir			if there is an unfinished layer in progress
67cdf0e10cSrcweir
68cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
69cdf0e10cSrcweir			if an error occurs processing the event.
70cdf0e10cSrcweir	 */
71cdf0e10cSrcweir	void startLayer(  )
72cdf0e10cSrcweir			raises( MalformedDataException,
73cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
74cdf0e10cSrcweir	//-------------------------------------------------------------------------
75cdf0e10cSrcweir
76cdf0e10cSrcweir	/** receives notification that a layer description is complete.
77cdf0e10cSrcweir
78cdf0e10cSrcweir		<p> Must match a previous call to <member>XLayerHandler::startLayer()</member>.
79cdf0e10cSrcweir		</p>
80cdf0e10cSrcweir
81cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
82cdf0e10cSrcweir            <ul>
83cdf0e10cSrcweir			<li>if invalid data is detected in the layer</li>
84cdf0e10cSrcweir			<li>if there is a unfinished subnode in progress</li>
85cdf0e10cSrcweir			<li>if no layer is started at all</li>
86cdf0e10cSrcweir			<li>if the layer tries to override read-only or final data</li>
87cdf0e10cSrcweir            </ul>
88cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
89cdf0e10cSrcweir
90cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
91cdf0e10cSrcweir			if an error occurs processing the event.
92cdf0e10cSrcweir	 */
93cdf0e10cSrcweir	void endLayer(  )
94cdf0e10cSrcweir			raises( MalformedDataException,
95cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
96cdf0e10cSrcweir	//-------------------------------------------------------------------------
97cdf0e10cSrcweir
98cdf0e10cSrcweir	/** receives notification that a description of a node override is started.
99cdf0e10cSrcweir
100cdf0e10cSrcweir		<p> Subsequent calls describe overrides to properties and members
101cdf0e10cSrcweir			or items of the node until a matching call to
102cdf0e10cSrcweir			<member>XLayerHandler::endNode()</member>is encountered.
103cdf0e10cSrcweir		</p>
104cdf0e10cSrcweir
105cdf0e10cSrcweir		@param aName
106cdf0e10cSrcweir			specifies the name of the node.
107cdf0e10cSrcweir
108cdf0e10cSrcweir		@param aAttributes
109cdf0e10cSrcweir			specifies attribute values to be applied to the node.
110cdf0e10cSrcweir
111cdf0e10cSrcweir			<p> The value is a combination of
112cdf0e10cSrcweir				<type>NodeAttribute</type> flags.
113cdf0e10cSrcweir			</p>
114cdf0e10cSrcweir			<p>	The attributes are combined cumulatively with those
115cdf0e10cSrcweir                set on lower layers.
116cdf0e10cSrcweir			</p>
117cdf0e10cSrcweir
118cdf0e10cSrcweir		@param bClear
119cdf0e10cSrcweir			if <TRUE/>, specifies that the node should be cleared to an empty
120cdf0e10cSrcweir            state by removing all non-mandatory children from lower layers prior
121cdf0e10cSrcweir            to applying the overrides.
122cdf0e10cSrcweir
123cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
124cdf0e10cSrcweir            <ul>
125cdf0e10cSrcweir			<li>if there isn't a layer in progress</li>
126cdf0e10cSrcweir			<li>if there already was a change to that node</li>
127cdf0e10cSrcweir			<li>if there is no node with that name</li>
128cdf0e10cSrcweir			<li>if the node is marked read-only in a lower layer</li>
129cdf0e10cSrcweir			<li>if the name is not a valid node name</li>
130cdf0e10cSrcweir			<li>if the attributes are not valid for the node</li>
131cdf0e10cSrcweir            </ul>
132cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
133cdf0e10cSrcweir
134cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
135cdf0e10cSrcweir			if an error occurs processing the event.
136cdf0e10cSrcweir
137cdf0e10cSrcweir		@see com::sun::star::configuration::backend::NodeAttribute
138cdf0e10cSrcweir	 */
139cdf0e10cSrcweir	void overrideNode( [in] string aName,
140cdf0e10cSrcweir					   [in] short  aAttributes,
141cdf0e10cSrcweir                       [in] boolean bClear )
142cdf0e10cSrcweir			raises( MalformedDataException,
143cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
144cdf0e10cSrcweir	//-------------------------------------------------------------------------
145cdf0e10cSrcweir
146cdf0e10cSrcweir	/** receives notification that a new item is started.
147cdf0e10cSrcweir
148cdf0e10cSrcweir		<p> The current node must be a set and
149cdf0e10cSrcweir			a preexisting item (if any) must be removeable.
150cdf0e10cSrcweir		</p>
151cdf0e10cSrcweir		<p> The new item will be created from the default template
152cdf0e10cSrcweir			of the set.
153cdf0e10cSrcweir		</p>
154cdf0e10cSrcweir		<p> Subsequent calls describe the difference from the template
155cdf0e10cSrcweir			of properties and members or items of the node until
156cdf0e10cSrcweir			a matching call to <member>XLayerHandler::endNode()</member>
157cdf0e10cSrcweir            is encountered.
158cdf0e10cSrcweir		</p>
159cdf0e10cSrcweir
160cdf0e10cSrcweir		@param aName
161cdf0e10cSrcweir			specifies the name of the item.
162cdf0e10cSrcweir
163cdf0e10cSrcweir		@param aAttributes
164cdf0e10cSrcweir			specifies attribute values to be applied to the new node.
165cdf0e10cSrcweir
166cdf0e10cSrcweir			<p> The value is a combination of
167cdf0e10cSrcweir				<type>NodeAttribute</type> flags.  Note that
168cdf0e10cSrcweir                <member>NodeAttribute::FUSE</member> has an impact on the
169cdf0e10cSrcweir                semantics of this method.
170cdf0e10cSrcweir			</p>
171cdf0e10cSrcweir
172cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
173cdf0e10cSrcweir            <ul>
174cdf0e10cSrcweir			<li>if there isn't a set node in progress currently</li>
175cdf0e10cSrcweir			<li>if there already was a change to a node of that name</li>
176cdf0e10cSrcweir			<li>if the template for the new node is not found</li>
177cdf0e10cSrcweir			<li>if an item of that name on a lower layer is not removeable</li>
178cdf0e10cSrcweir			<li>if the name is not a valid item name</li>
179cdf0e10cSrcweir			<li>if the attributes are not valid for the node</li>
180cdf0e10cSrcweir            </ul>
181cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
182cdf0e10cSrcweir
183cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
184cdf0e10cSrcweir			if an error occurs processing the event.
185cdf0e10cSrcweir
186cdf0e10cSrcweir		@see com::sun::star::configuration::backend::NodeAttribute
187cdf0e10cSrcweir	 */
188cdf0e10cSrcweir	void addOrReplaceNode(	[in] string aName,
189cdf0e10cSrcweir							[in] short  aAttributes )
190cdf0e10cSrcweir			raises( MalformedDataException,
191cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
192cdf0e10cSrcweir	//-------------------------------------------------------------------------
193cdf0e10cSrcweir
194cdf0e10cSrcweir	/** receives notification that a new item based on a particular template
195cdf0e10cSrcweir		is started.
196cdf0e10cSrcweir
197cdf0e10cSrcweir		<p> The current node must be a set and
198cdf0e10cSrcweir			a preexisting item (if any) must be removeable.
199cdf0e10cSrcweir		</p>
200cdf0e10cSrcweir		<p> Subsequent calls describe the difference from the template
201cdf0e10cSrcweir			of properties and members or items of the node until
202cdf0e10cSrcweir			a matching call to <member>XLayerHandler::endNode()</member>
203cdf0e10cSrcweir            is encountered.
204cdf0e10cSrcweir		</p>
205cdf0e10cSrcweir
206cdf0e10cSrcweir		@param aName
207cdf0e10cSrcweir			specifies the name of the item.
208cdf0e10cSrcweir
209cdf0e10cSrcweir		@param aTemplate
210cdf0e10cSrcweir			specifies the template to use for the new node
211cdf0e10cSrcweir
212cdf0e10cSrcweir		@param aAttributes
213cdf0e10cSrcweir			specifies attribute values to be applied to the new node.
214cdf0e10cSrcweir
215cdf0e10cSrcweir			<p> The value is a combination of
216cdf0e10cSrcweir				<type>NodeAttribute</type> flags.  Note that
217cdf0e10cSrcweir                <member>NodeAttribute::FUSE</member> has an impact on the
218cdf0e10cSrcweir                semantics of this method.
219cdf0e10cSrcweir			</p>
220cdf0e10cSrcweir
221cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
222cdf0e10cSrcweir            <ul>
223cdf0e10cSrcweir			<li>if there isn't a set node in progress currently</li>
224cdf0e10cSrcweir			<li>if there already was a change to a node of that name</li>
225cdf0e10cSrcweir			<li>if the template for the new node is not found</li>
226cdf0e10cSrcweir			<li>if the template is not a valid item type for the containing set</li>
227cdf0e10cSrcweir			<li>if an item of that name on a lower layer is not removeable</li>
228cdf0e10cSrcweir			<li>if the name is not a valid item name</li>
229cdf0e10cSrcweir			<li>if the attributes are not valid for the node</li>
230cdf0e10cSrcweir            </ul>
231cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
232cdf0e10cSrcweir
233cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
234cdf0e10cSrcweir			if an error occurs processing the event.
235cdf0e10cSrcweir
236cdf0e10cSrcweir		@see com::sun::star::configuration::backend::NodeAttribute
237cdf0e10cSrcweir	 */
238cdf0e10cSrcweir	void addOrReplaceNodeFromTemplate(	[in] string aName,
239cdf0e10cSrcweir										[in] TemplateIdentifier aTemplate,
240cdf0e10cSrcweir										[in] short  aAttributes )
241cdf0e10cSrcweir			raises( MalformedDataException,
242cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
243cdf0e10cSrcweir	//-------------------------------------------------------------------------
244cdf0e10cSrcweir
245cdf0e10cSrcweir	/** receives notification that a node description is complete.
246cdf0e10cSrcweir
247cdf0e10cSrcweir		<p> Must match the last open call to
248cdf0e10cSrcweir			<member>XLayerHandler::overrideNode()</member>,
249cdf0e10cSrcweir			<member>XLayerHandler::addOrReplaceNode()</member> or
250cdf0e10cSrcweir			<member>XLayerHandler::addOrReplaceNodeFromTemplate()</member>.
251cdf0e10cSrcweir		</p>
252cdf0e10cSrcweir
253cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
254cdf0e10cSrcweir            <ul>
255cdf0e10cSrcweir			<li>if invalid data is detected in the node</li>
256cdf0e10cSrcweir			<li>if no node is started at all</li>
257cdf0e10cSrcweir            </ul>
258cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
259cdf0e10cSrcweir
260cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
261cdf0e10cSrcweir			if an error occurs processing the event.
262cdf0e10cSrcweir	 */
263cdf0e10cSrcweir	void endNode(  )
264cdf0e10cSrcweir			raises( MalformedDataException,
265cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
266cdf0e10cSrcweir	//-------------------------------------------------------------------------
267cdf0e10cSrcweir
268cdf0e10cSrcweir	/** receives notification that a node is dropped from a set.
269cdf0e10cSrcweir
270cdf0e10cSrcweir		<p> The current node must be a set and
271cdf0e10cSrcweir			the item must be removeable.
272cdf0e10cSrcweir		</p>
273cdf0e10cSrcweir
274cdf0e10cSrcweir		@param aName
275cdf0e10cSrcweir			specifies the name of the node.
276cdf0e10cSrcweir
277cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
278cdf0e10cSrcweir            <ul>
279cdf0e10cSrcweir			<li>if there isn't a set node in progress currently</li>
280cdf0e10cSrcweir			<li>if there already was a change to a node of that name</li>
281cdf0e10cSrcweir			<li>if there is no item with that name</li>
282cdf0e10cSrcweir			<li>if the item is not removeable</li>
283cdf0e10cSrcweir			<li>if the name is not a valid node name</li>
284cdf0e10cSrcweir            </ul>
285cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
286cdf0e10cSrcweir
287cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
288cdf0e10cSrcweir			if an error occurs processing the event.
289cdf0e10cSrcweir	 */
290cdf0e10cSrcweir	void dropNode( [in] string aName )
291cdf0e10cSrcweir			raises( MalformedDataException,
292cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
293cdf0e10cSrcweir	//-------------------------------------------------------------------------
294cdf0e10cSrcweir
295cdf0e10cSrcweir	/** receives notification that an existing property is modified.
296cdf0e10cSrcweir
297cdf0e10cSrcweir		<p> Subsequent calls describe new value(s) for the property until a
298cdf0e10cSrcweir            matching call to <member>XLayerHandler::endProperty()</member>
299cdf0e10cSrcweir            is encountered.
300cdf0e10cSrcweir		</p>
301cdf0e10cSrcweir
302cdf0e10cSrcweir		@param aName
303cdf0e10cSrcweir			specifies the name of the property.
304cdf0e10cSrcweir
305cdf0e10cSrcweir		@param aAttributes
306cdf0e10cSrcweir			specifies the new attributes of the property.
307cdf0e10cSrcweir
308cdf0e10cSrcweir			<p> The value is a combination of
309cdf0e10cSrcweir				<type>NodeAttribute</type> flags.
310cdf0e10cSrcweir			</p>
311cdf0e10cSrcweir			<p>	The attributes are combined cumulatively with those
312cdf0e10cSrcweir                set on lower layers.
313cdf0e10cSrcweir			</p>
314cdf0e10cSrcweir
315cdf0e10cSrcweir		@param aType
316cdf0e10cSrcweir			specifies the type of the property.
317cdf0e10cSrcweir
318cdf0e10cSrcweir			<p> This must be the same type as is already defined in the schema
319cdf0e10cSrcweir                or lower layers, unless the previous type was unspecified
320cdf0e10cSrcweir                (as indicated by
321cdf0e10cSrcweir                <const scope="com::sun::star::uno">TypeClass::ANY</const>.)
322cdf0e10cSrcweir			</p>
323cdf0e10cSrcweir			<p> A <void/> type indicates that the type is unspecified
324cdf0e10cSrcweir                in this layer.
325cdf0e10cSrcweir                In this case any subsequent value may be of a generic type
326cdf0e10cSrcweir                (e.g. <atom>string</atom> or - for list values -
327cdf0e10cSrcweir                <atom dim="[]">string</atom>.) Such values may be
328cdf0e10cSrcweir                converted to the type defined in the schema by
329cdf0e10cSrcweir                the implementation.
330cdf0e10cSrcweir			</p>
331cdf0e10cSrcweir
332cdf0e10cSrcweir		@param bClear
333cdf0e10cSrcweir			if <TRUE/>, specifies that the property should be cleared to an empty
334cdf0e10cSrcweir            state by discarding all values from lower layers prior
335cdf0e10cSrcweir            to applying the overrides.
336cdf0e10cSrcweir
337cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
338cdf0e10cSrcweir            <ul>
339cdf0e10cSrcweir			<li>if there isn't a group or extensible node in progress currently</li>
340cdf0e10cSrcweir			<li>if there already was a change to a property of that name</li>
341cdf0e10cSrcweir			<li>if there is no property with that name</li>
342cdf0e10cSrcweir			<li>if the property is read-only</li>
343cdf0e10cSrcweir			<li>if the type does not match the type of the property</li>
344cdf0e10cSrcweir            <li>if a type is missing and cannot be determined otherwise</li>
345cdf0e10cSrcweir			<li>if the name is not a valid property name</li>
346cdf0e10cSrcweir			<li>if the attributes are not valid for the property</li>
347cdf0e10cSrcweir            </ul>
348cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
349cdf0e10cSrcweir
350cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
351cdf0e10cSrcweir			if an error occurs processing the event.
352cdf0e10cSrcweir
353cdf0e10cSrcweir		@see com::sun::star::configuration::backend::NodeAttribute
354cdf0e10cSrcweir	 */
355cdf0e10cSrcweir	void overrideProperty(  [in] string aName,
356cdf0e10cSrcweir			 			    [in] short aAttributes,
357cdf0e10cSrcweir					        [in] type aType,
358cdf0e10cSrcweir                            [in] boolean bClear )
359cdf0e10cSrcweir			raises( MalformedDataException,
360cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
361cdf0e10cSrcweir
362cdf0e10cSrcweir	//-------------------------------------------------------------------------
363cdf0e10cSrcweir
364cdf0e10cSrcweir	/** receives notification that the value of the current property
365cdf0e10cSrcweir        is overridden. .
366cdf0e10cSrcweir
367cdf0e10cSrcweir		@param aValue
368cdf0e10cSrcweir			specifies the new value of the property.
369cdf0e10cSrcweir
370cdf0e10cSrcweir			<p> The value must match the type of the current property.
371cdf0e10cSrcweir				If the property does not have the
372cdf0e10cSrcweir				<const>SchemaAttribute::REQUIRED</const> flag set,
373cdf0e10cSrcweir				the value can be <void/>.
374cdf0e10cSrcweir			</p>
375cdf0e10cSrcweir			<p> If the current property is localized, this value applies
376cdf0e10cSrcweir                to the default locale.
377cdf0e10cSrcweir			</p>
378cdf0e10cSrcweir
379cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
380cdf0e10cSrcweir            <ul>
381cdf0e10cSrcweir			<li>if there isn't a property in progress currently</li>
382cdf0e10cSrcweir			<li>if there already was a change to the value of that property</li>
383cdf0e10cSrcweir			<li>if the value does not have the proper type</li>
384cdf0e10cSrcweir			<li>if the value is not valid for the property</li>
385cdf0e10cSrcweir            </ul>
386cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
387cdf0e10cSrcweir
388cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
389cdf0e10cSrcweir			if an error occurs processing the event.
390cdf0e10cSrcweir
391cdf0e10cSrcweir		@see com::sun::star::configuration::backend::NodeAttribute
392cdf0e10cSrcweir	 */
393cdf0e10cSrcweir	void setPropertyValue(	[in] any aValue )
394cdf0e10cSrcweir			raises( MalformedDataException,
395cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
396cdf0e10cSrcweir
397cdf0e10cSrcweir	//-------------------------------------------------------------------------
398cdf0e10cSrcweir
399cdf0e10cSrcweir	/** receives notification that the value of the current localized property
400cdf0e10cSrcweir        is overridden for a specific locale .
401cdf0e10cSrcweir
402cdf0e10cSrcweir		@param aValue
403cdf0e10cSrcweir			specifies the new value of the property.
404cdf0e10cSrcweir
405cdf0e10cSrcweir			<p> The value must match the type of the current property.
406cdf0e10cSrcweir				If the property does not have the
407cdf0e10cSrcweir				<const>SchemaAttribute::REQUIRED</const> flag set,
408cdf0e10cSrcweir				the value can be <void/>.
409cdf0e10cSrcweir			</p>
410cdf0e10cSrcweir
411cdf0e10cSrcweir		@param aLocale
412cdf0e10cSrcweir			specifies the locale this value should apply to.
413cdf0e10cSrcweir
414cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
415cdf0e10cSrcweir            <ul>
416cdf0e10cSrcweir			<li>if there isn't a property in progress currently</li>
417cdf0e10cSrcweir			<li>if the current property isn't localized</li>
418cdf0e10cSrcweir			<li>if there already was a change to the property for that locale</li>
419cdf0e10cSrcweir			<li>if the value does not have the proper type</li>
420cdf0e10cSrcweir			<li>if the value is not valid for the property</li>
421cdf0e10cSrcweir			<li>if the locale is not a valid locale</li>
422cdf0e10cSrcweir            </ul>
423cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
424cdf0e10cSrcweir
425cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
426cdf0e10cSrcweir			if an error occurs processing the event.
427cdf0e10cSrcweir
428cdf0e10cSrcweir		@see com::sun::star::configuration::backend::NodeAttribute
429cdf0e10cSrcweir	 */
430cdf0e10cSrcweir	void setPropertyValueForLocale([in] any aValue,
431cdf0e10cSrcweir			 					        [in] string aLocale )
432cdf0e10cSrcweir			raises( MalformedDataException,
433cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
434cdf0e10cSrcweir
435cdf0e10cSrcweir	//-------------------------------------------------------------------------
436cdf0e10cSrcweir
437cdf0e10cSrcweir	/** receives notification that a property description is complete.
438cdf0e10cSrcweir
439cdf0e10cSrcweir		<p> Must match an open call to
440cdf0e10cSrcweir			<member>XLayerHandler::overrideProperty()</member>,
441cdf0e10cSrcweir		</p>
442cdf0e10cSrcweir
443cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
444cdf0e10cSrcweir            <ul>
445cdf0e10cSrcweir			<li>if invalid data is detected in the property</li>
446cdf0e10cSrcweir			<li>if no property is started at all</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	void endProperty(  )
454cdf0e10cSrcweir			raises( MalformedDataException,
455cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
456cdf0e10cSrcweir	//-------------------------------------------------------------------------
457cdf0e10cSrcweir
458cdf0e10cSrcweir	/** receives notification that a property having a <void/> value is added
459cdf0e10cSrcweir        to the current node.
460cdf0e10cSrcweir
461cdf0e10cSrcweir		<p> The current node must be extensible.
462cdf0e10cSrcweir		</p>
463cdf0e10cSrcweir
464cdf0e10cSrcweir		@param aName
465cdf0e10cSrcweir			specifies the name of the new property.
466cdf0e10cSrcweir
467cdf0e10cSrcweir		@param aAttributes
468cdf0e10cSrcweir			specifies the attributes of the new property.
469cdf0e10cSrcweir
470cdf0e10cSrcweir			<p> The value is a combination of
471cdf0e10cSrcweir				<type>NodeAttribute</type> flags and may also contain the
472cdf0e10cSrcweir				<const>SchemaAttribute::REQUIRED</const> flag.
473cdf0e10cSrcweir			</p>
474cdf0e10cSrcweir			<p>	<const>NodeAttribute::MANDATORY</const> need not be set,
475cdf0e10cSrcweir				as dynamically added properties always are mandatory
476cdf0e10cSrcweir				in subsequent layers.
477cdf0e10cSrcweir			</p>
478cdf0e10cSrcweir
479cdf0e10cSrcweir		@param aType
480cdf0e10cSrcweir			specifies the type of the new property.
481cdf0e10cSrcweir
482cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
483cdf0e10cSrcweir            <ul>
484cdf0e10cSrcweir			<li>if there isn't an extensible node in progress currently</li>
485cdf0e10cSrcweir			<li>if a property with that name already exists</li>
486cdf0e10cSrcweir			<li>if the specified type is not allowed for a property</li>
487cdf0e10cSrcweir			<li>if the name is not a valid property name</li>
488cdf0e10cSrcweir			<li><li>if the attributes are not valid for the property</li>
489cdf0e10cSrcweir            </ul>
490cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
491cdf0e10cSrcweir
492cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
493cdf0e10cSrcweir			if an error occurs processing the event.
494cdf0e10cSrcweir
495cdf0e10cSrcweir		@see com::sun::star::configuration::backend::SchemaAttribute
496cdf0e10cSrcweir	 */
497cdf0e10cSrcweir	void addProperty(   [in] string aName,
498cdf0e10cSrcweir			 		    [in] short aAttributes,
499cdf0e10cSrcweir					    [in] type aType )
500cdf0e10cSrcweir			raises( MalformedDataException,
501cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
502cdf0e10cSrcweir
503cdf0e10cSrcweir	//-------------------------------------------------------------------------
504cdf0e10cSrcweir
505cdf0e10cSrcweir	/** receives notification that a property having a non-<void/> value
506cdf0e10cSrcweir		is added to the current node.
507cdf0e10cSrcweir
508cdf0e10cSrcweir		<p> The current node must be extensible.
509cdf0e10cSrcweir		</p>
510cdf0e10cSrcweir
511cdf0e10cSrcweir		@param aName
512cdf0e10cSrcweir			specifies the name of the new property.
513cdf0e10cSrcweir
514cdf0e10cSrcweir		@param aAttributes
515cdf0e10cSrcweir			specifies the attributes of the new property.
516cdf0e10cSrcweir
517cdf0e10cSrcweir			<p> The value is a combination of
518cdf0e10cSrcweir				<type>NodeAttribute</type> flags and may also contain the
519cdf0e10cSrcweir				<const>SchemaAttribute::REQUIRED</const> flag.
520cdf0e10cSrcweir			</p>
521cdf0e10cSrcweir			</p>
522cdf0e10cSrcweir			<p>	<const>NodeAttribute::MANDATORY</const> need not be set,
523cdf0e10cSrcweir				as dynamic properties always are mandatory
524cdf0e10cSrcweir				in subsequent layers.
525cdf0e10cSrcweir			</p>
526cdf0e10cSrcweir
527cdf0e10cSrcweir		@param aValue
528cdf0e10cSrcweir			specifies the value of the new property.
529cdf0e10cSrcweir
530cdf0e10cSrcweir			<p> The value also determines the type.
531cdf0e10cSrcweir				Therefore the value must not be <void/>.
532cdf0e10cSrcweir			</p>
533cdf0e10cSrcweir
534cdf0e10cSrcweir		@throws com::sun::star::configuration::backend::MalformedDataException
535cdf0e10cSrcweir            <ul>
536cdf0e10cSrcweir			<li>if there isn't an extensible node in progress currently</li>
537cdf0e10cSrcweir			<li>if a property with that name already exists</li>
538cdf0e10cSrcweir			<li>if the type of the value is not an allowed type
539cdf0e10cSrcweir			    or if the value is <void/></li>
540cdf0e10cSrcweir			<li>if the name is not a valid property name</li>
541cdf0e10cSrcweir			<li>if the value is not valid for the property</li>
542cdf0e10cSrcweir			<li>if the attributes are not valid for the property</li>
543cdf0e10cSrcweir            </ul>
544cdf0e10cSrcweir            <p><em>Not every implementation can detect each condition</em></p>
545cdf0e10cSrcweir
546cdf0e10cSrcweir		@throws com::sun::star::lang::WrappedTargetException
547cdf0e10cSrcweir			if an error occurs processing the event.
548cdf0e10cSrcweir
549cdf0e10cSrcweir		@see com::sun::star::configuration::backend::SchemaAttribute
550cdf0e10cSrcweir	 */
551cdf0e10cSrcweir	void addPropertyWithValue(  [in] string aName,
552cdf0e10cSrcweir			 					[in] short aAttributes,
553cdf0e10cSrcweir								[in] any aValue )
554cdf0e10cSrcweir			raises( MalformedDataException,
555cdf0e10cSrcweir                    com::sun::star::lang::WrappedTargetException );
556cdf0e10cSrcweir
557cdf0e10cSrcweir	//-------------------------------------------------------------------------
558cdf0e10cSrcweir};
559cdf0e10cSrcweir
560cdf0e10cSrcweir//=============================================================================
561cdf0e10cSrcweir
562cdf0e10cSrcweir}; }; }; }; };
563cdf0e10cSrcweir
564cdf0e10cSrcweir//=============================================================================
565cdf0e10cSrcweir
566cdf0e10cSrcweir#endif
567