1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_beans_XMultiHierarchicalPropertySet_idl__
28#define __com_sun_star_beans_XMultiHierarchicalPropertySet_idl__
29
30#ifndef __com_sun_star_uno_XInterface_idl__
31#include <com/sun/star/uno/XInterface.idl>
32#endif
33
34#ifndef __com_sun_star_beans_XHierarchicalPropertySetInfo_idl__
35#include <com/sun/star/beans/XHierarchicalPropertySetInfo.idl>
36#endif
37
38#ifndef __com_sun_star_beans_PropertyVetoException_idl__
39#include <com/sun/star/beans/PropertyVetoException.idl>
40#endif
41
42#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
43#include <com/sun/star/lang/IllegalArgumentException.idl>
44#endif
45
46#ifndef __com_sun_star_lang_WrappedTargetException_idl__
47#include <com/sun/star/lang/WrappedTargetException.idl>
48#endif
49
50//=============================================================================
51
52module com {  module sun {  module star {  module beans {
53
54//=============================================================================
55
56/** provides access to multiple properties which form a hierarchy.
57
58	@see XHierarchicalPropertySet
59 */
60published interface XMultiHierarchicalPropertySet: com::sun::star::uno::XInterface
61{
62	//-------------------------------------------------------------------------
63
64	/** retrieve information about the hierarchy of properties
65
66		@returns
67				the <type>XHierarchicalPropertySetInfo</type> interface,
68				which describes the property hierarchy of the object which
69				supplies this interface.
70
71		@returns
72				<NULL/> if the implementation cannot or will
73				not provide information about the properties; otherwise the
74				interface <type>XHierarchicalPropertySetInfo</type> is returned.
75
76		@see XHierarchicalPropertySet::getHierarchicalPropertySetInfo
77	 */
78	com::sun::star::beans::XHierarchicalPropertySetInfo getHierarchicalPropertySetInfo();
79
80	//-------------------------------------------------------------------------
81
82	/** sets the values of the properties with the specified nested names.
83
84		<p>	The values of the properties must change before bound
85			events are fired. The values of constrained properties
86			should change after the vetoable events are fired, if no
87			exception occurs.  </p>
88
89		<p> Unknown properties are ignored.  </p>
90
91		@param	aHierarchicalPropertyNames
92				This parameter specifies the names of the properties.
93
94		@param	aValues
95				This parameter specifies the new values for the properties.
96
97		@throws PropertyVetoException
98				if one of the properties is constrained and the change is
99				vetoed by a <type>XVetoableChangeListener</type>.
100
101		@throws com::sun::star::lang::IllegalArgumentException
102				if one of the values is not a legal value for the
103				corresponding property or if one of the names
104				is not a well-formed nested name for this hierarchy.
105				An implementation is not required to detect the latter
106				condition.
107
108		@throws com::sun::star::lang::WrappedTargetException
109				if the implementation has an internal reason for the exception.
110				In this case the original exception is wrapped into that
111				<type scope="com::sun::star::lang">WrappedTargetException</type>.
112
113		@see XHierarchicalPropertySet::setHierarchicalPropertyValue
114		@see XMultiPropertySet::setPropertyValues
115	 */
116
117
118	void setHierarchicalPropertyValues( [in] sequence<string> aHierarchicalPropertyNames,
119			 [in] sequence<any> Values )
120			raises( com::sun::star::beans::PropertyVetoException,
121					com::sun::star::lang::IllegalArgumentException,
122					com::sun::star::lang::WrappedTargetException );
123
124	//-------------------------------------------------------------------------
125
126	/** @returns
127			a sequence of all values of the properties which are specified
128			by their nested names.
129
130		<p>	The order of the values in the returned sequence will be the same
131			as the order of the names in the argument.  </p>
132
133		<p>	Unknown properties are ignored, in their place <NULL/> will be returned.  </p>
134
135		@throws com::sun::star::lang::IllegalArgumentException
136				if one of the names is not a well-formed
137				nested name for this hierarchy.
138				An implementation is not required to detect this
139				condition.
140
141		@throws com::sun::star::lang::WrappedTargetException
142				if the implementation has an internal reason for the exception.
143				In this case the original exception is wrapped into that
144				<type scope="com::sun::star::lang">WrappedTargetException</type>.
145
146		@see XHierarchicalPropertySet::getHierarchicalPropertyValue
147		@see XMultiPropertySet::setPropertyValues
148	 */
149	sequence<any> getHierarchicalPropertyValues( [in] sequence<string> aPropertyNames )
150			raises( com::sun::star::lang::IllegalArgumentException ,
151					com::sun::star::lang::WrappedTargetException );
152
153	//-------------------------------------------------------------------------
154
155};
156
157//=============================================================================
158
159}; }; }; };
160
161#endif
162