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