summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/configuration/GroupAccess.idl
blob: 46c0312eb6175d9c66846af26404064257a63cd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/
#ifndef __com_sun_star_configuration_GroupAccess_idl__
#define __com_sun_star_configuration_GroupAccess_idl__

#ifndef __com_sun_star_configuration_HierarchyAccess_idl__
#include <com/sun/star/configuration/HierarchyAccess.idl>
#endif

#ifndef __com_sun_star_configuration_PropertyHierarchy_idl__
#include <com/sun/star/configuration/PropertyHierarchy.idl>
#endif

#ifndef __com_sun_star_beans_XPropertyState_idl__
#include <com/sun/star/beans/XPropertyState.idl>
#endif

#ifndef __com_sun_star_beans_XMultiPropertyState_idl__
#include <com/sun/star/beans/XMultiPropertyStates.idl>
#endif

//=============================================================================

module com { module sun { module star { module configuration {

//=============================================================================
/** provides access to a predefined heterogeneous group of values and nested
 trees as part of a hierarchy.

 <p>Provides access to, and information about, its children and descendants
 viewed either as properties or as contained elements.
 </p>

 <p><em>Groups</em> are static collections within the hierarchy.</p>

 <p>The number and names of contained elements are fixed in advance
 and each child may have a different type.
 </p>

 <p>This service subsumes two alternate ways of accessing child and descendent
 elements. These strongly overlap, supporting the basic identity
 <code>xGroup.getPropertyValue( aName ) == xGroup.getByName( aName )</code>.
 </p>

 @see com::sun::star::configuration::GroupElement
    Child objects of this service generally implement service GroupElement.

 @see com::sun::star::configuration::SetAccess
    A complementary service providing for dynamic homogeneous sets of elements.

*/
published service GroupAccess
{
/** is the basic service for accessing child and descendent nodes using
 a view of the tree as a container of values and structuring elements.
*/
    service HierarchyAccess;

/** is the basic service for accessing child and descendent nodes using
 a view of the tree as a hierarchy of properties and subproperties.

 <p>This view is meaningful only for a static fragment of the hierarchy
 Objects' properties may change, but not which properties they have.
 Therefore, dynamic elements of the hierarchy (see <type>SetAccess</type>)
 do not implement service <type>PropertyHierarchy</type>.
 </p>

 <p>If such elements occur as properties or subproperties of an implementation,
 it is not specified whether direct subproperty access using
 <type scope="com::sun::star::beans">XHierarchicalPropertySet</type> or
 <type scope="com::sun::star::beans">XMultiHierarchicalPropertySet</type> can
 be used to access descendants of such elements.
 </p>

 <p>Similarly, information about such descendants may not be available from
 the <type scope="com::sun::star::beans">XHierarchicalPropertySetInfo</type>
 the implementation provides.
 </p>

 <p>If an implementation is part of a <em>read-only</em> view of the hierarchy,
 all properties and subproperties will be reported as having attribute
 <const scope="com::sun::star::beans">PropertyAttribute::READONLY</const> set,
 and attempts to change property values will fail.
 </p>
*/
    service PropertyHierarchy;

/** provides access to the state of child elements of an implementation. [optional]

 <p>This interface should be present, if the hierarchy supports default values
 for simple (non-object) properties and the group contains such properties.
 </p>

 <p>For properties that are objects themselves, the semantic documented for
 service <type>HierarchyAccess</type> applies.
 </p>
 */
    [optional] interface com::sun::star::beans::XPropertyState;

/** provides access to the states of multiple child elements of
 an implementation. [optional]

 <p>This interface should be present, if the hierarchy supports default values
 for simple (non-object) properties and the group contains such properties.
 </p>

 <p>For properties that are objects themselves, the semantic documented for
 service <type>HierarchyAccess</type> applies.
 </p>
*/
    [optional] interface com::sun::star::beans::XMultiPropertyStates;
};

//=============================================================================

}; }; }; };

#endif