cid#1640468 Dereference after null check
[LibreOffice.git] / offapi / com / sun / star / configuration / ConfigurationUpdateAccess.idl
blob731cae0a6b340f65b5676a44d87a68a1c7f87e32
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 module com { module sun { module star { module configuration {
23 /** provides modifying access to a fragment of the configuration hierarchy.
25 <p>Extends ConfigurationAccess to support modifying values
26 or inserting and removing elements.
27 </p>
29 <p>Descendants of this service also implement this service
30 unless they are marked <em>read-only</em> (which is indicated by attribute
31 com::sun::star::beans::PropertyAttribute::READONLY),
32 in which case they only need implement ConfigurationAccess.
33 </p>
35 <p>The classification of implementations that is described for
36 ConfigurationAccess applies to implementations of this service
37 as well. Therefore an implementation will support one of several alternate
38 services describing its <em>Container</em> role and one of several alternate
39 services describing its <em>Element</em> role. These services are
40 extensions of the respective services documented for ConfigurationAccess.
41 </p>
42 <ul>
43 <li><em>Container</em> role:
44 A <em>group</em> permits changing child values.
45 A <em>set</em> permits inserting and removing contained elements.
46 </li>
47 <li><em>Element</em> role:
48 The root element of a modifiable tree provides extended functionality
49 to control processing of changes for the entire tree (fragment) by
50 supporting com::sun::star::util::XChangesBatch.
51 For elements of a <em>set</em> or a <em>group</em> no additional
52 interfaces are supported.
53 </li>
54 </ul>
56 @see ConfigurationProvider
57 Root instances of this service can be requested from a
58 ConfigurationProvider
60 published service ConfigurationUpdateAccess
62 /** is the basic service providing read access to an element of the
63 configuration hierarchy and its child and descendent elements.
65 <p>The HierarchyAccess specialization implemented will be
66 further specialized to support modifying access.
67 Implementations shall therefore implement one of SetUpdate or
68 GroupUpdate depending on the <em>Container</em> role.
69 </p>
71 <p>If the HierarchyElement specialization that is implemented
72 is AccessRootElement, the implementation must support the
73 extended functionality of UpdateRootElement. Otherwise, there
74 are no new requirements mandated by the <em>Element</em> role.
75 </p>
78 service ConfigurationAccess;
80 /** specializes SetAccess to support modifying the element.
82 <p>Implemented, if this element is a <em>Set</em>.
83 Otherwise service GroupUpdate is provided.
84 </p>
86 [optional] service SetUpdate;
88 /** specializes GroupAccess to support modifying contained
89 data.
91 <p>Implemented, if this element is a <em>Group</em>.
92 Otherwise service SetUpdate is provided.
93 </p>
95 [optional] service GroupUpdate;
97 /** specializes AccessRootElement to support transaction-like
98 control over a batch of changes accumulated within the tree fragment.
100 <p>Implemented, if this element is the <em>Root</em> of the whole hierarchy.
101 Otherwise either SetElement or GroupElement is provided.
102 </p>
104 @see ConfigurationProvider
105 Instances obtained from a ConfigurationProvider will
106 implement this version of HierarchyElement.
108 [optional] service UpdateRootElement;
112 }; }; }; };
114 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */