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_beans_XMultiHierarchicalPropertySet_idl__
24#define __com_sun_star_beans_XMultiHierarchicalPropertySet_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_beans_XHierarchicalPropertySetInfo_idl__
31#include <com/sun/star/beans/XHierarchicalPropertySetInfo.idl>
32#endif
33
34#ifndef __com_sun_star_beans_PropertyVetoException_idl__
35#include <com/sun/star/beans/PropertyVetoException.idl>
36#endif
37
38#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
39#include <com/sun/star/lang/IllegalArgumentException.idl>
40#endif
41
42#ifndef __com_sun_star_lang_WrappedTargetException_idl__
43#include <com/sun/star/lang/WrappedTargetException.idl>
44#endif
45
46//=============================================================================
47
48module com {  module sun {  module star {  module beans {
49
50//=============================================================================
51
52/** provides access to multiple properties which form a hierarchy.
53
54	@see XHierarchicalPropertySet
55 */
56published interface XMultiHierarchicalPropertySet: com::sun::star::uno::XInterface
57{
58	//-------------------------------------------------------------------------
59
60	/** retrieve information about the hierarchy of properties
61
62		@returns
63				the <type>XHierarchicalPropertySetInfo</type> interface,
64				which describes the property hierarchy of the object which
65				supplies this interface.
66
67		@returns
68				<NULL/> if the implementation cannot or will
69				not provide information about the properties; otherwise the
70				interface <type>XHierarchicalPropertySetInfo</type> is returned.
71
72		@see XHierarchicalPropertySet::getHierarchicalPropertySetInfo
73	 */
74	com::sun::star::beans::XHierarchicalPropertySetInfo getHierarchicalPropertySetInfo();
75
76	//-------------------------------------------------------------------------
77
78	/** sets the values of the properties with the specified nested names.
79
80		<p>	The values of the properties must change before bound
81			events are fired. The values of constrained properties
82			should change after the vetoable events are fired, if no
83			exception occurs.  </p>
84
85		<p> Unknown properties are ignored.  </p>
86
87		@param	aHierarchicalPropertyNames
88				This parameter specifies the names of the properties.
89
90		@param	aValues
91				This parameter specifies the new values for the properties.
92
93		@throws PropertyVetoException
94				if one of the properties is constrained and the change is
95				vetoed by a <type>XVetoableChangeListener</type>.
96
97		@throws com::sun::star::lang::IllegalArgumentException
98				if one of the values is not a legal value for the
99				corresponding property or if one of the names
100				is not a well-formed nested name for this hierarchy.
101				An implementation is not required to detect the latter
102				condition.
103
104		@throws com::sun::star::lang::WrappedTargetException
105				if the implementation has an internal reason for the exception.
106				In this case the original exception is wrapped into that
107				<type scope="com::sun::star::lang">WrappedTargetException</type>.
108
109		@see XHierarchicalPropertySet::setHierarchicalPropertyValue
110		@see XMultiPropertySet::setPropertyValues
111	 */
112
113
114	void setHierarchicalPropertyValues( [in] sequence<string> aHierarchicalPropertyNames,
115			 [in] sequence<any> Values )
116			raises( com::sun::star::beans::PropertyVetoException,
117					com::sun::star::lang::IllegalArgumentException,
118					com::sun::star::lang::WrappedTargetException );
119
120	//-------------------------------------------------------------------------
121
122	/** @returns
123			a sequence of all values of the properties which are specified
124			by their nested names.
125
126		<p>	The order of the values in the returned sequence will be the same
127			as the order of the names in the argument.  </p>
128
129		<p>	Unknown properties are ignored, in their place <NULL/> will be returned.  </p>
130
131		@throws com::sun::star::lang::IllegalArgumentException
132				if one of the names is not a well-formed
133				nested name for this hierarchy.
134				An implementation is not required to detect this
135				condition.
136
137		@throws com::sun::star::lang::WrappedTargetException
138				if the implementation has an internal reason for the exception.
139				In this case the original exception is wrapped into that
140				<type scope="com::sun::star::lang">WrappedTargetException</type>.
141
142		@see XHierarchicalPropertySet::getHierarchicalPropertyValue
143		@see XMultiPropertySet::setPropertyValues
144	 */
145	sequence<any> getHierarchicalPropertyValues( [in] sequence<string> aPropertyNames )
146			raises( com::sun::star::lang::IllegalArgumentException ,
147					com::sun::star::lang::WrappedTargetException );
148
149	//-------------------------------------------------------------------------
150
151};
152
153//=============================================================================
154
155}; }; }; };
156
157#endif
158