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_XMultiPropertyState_idl__
28#define __com_sun_star_beans_XMultiPropertyState_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_PropertyState_idl__
35#include <com/sun/star/beans/PropertyState.idl>
36#endif
37
38#ifndef __com_sun_star_beans_UnknownPropertyException_idl__
39#include <com/sun/star/beans/UnknownPropertyException.idl>
40#endif
41
42#ifndef __com_sun_star_lang_WrappedTargetException_idl__
43#include <com/sun/star/lang/WrappedTargetException.idl>
44#endif
45
46#ifndef __com_sun_star_beans_XPropertyStateChangeListener_idl__
47#include <com/sun/star/beans/XPropertyStateChangeListener.idl>
48#endif
49
50
51//=============================================================================
52
53module com { module sun { module star { module beans {
54
55//=============================================================================
56/** makes it possible to query information about the state of
57	one or more properties.
58
59	<p>The state of a property contains information about the source of
60	the value, e.g. the object itself, a default or a stylesheet.
61	For more information see <type>PropertyState</type>.
62*/
63published interface XMultiPropertyStates: com::sun::star::uno::XInterface
64{
65	//-------------------------------------------------------------------------
66	/** @returns
67			a sequence of the states of the properties which are specified
68			by their names.
69
70		<p>The order of the states is correlating to the order of the
71		given property names.
72
73		@param aPropertyName
74			specifies the names of the properties. All names must be unique.
75			This sequence must be alphabetically sorted.
76	*/
77	sequence<com::sun::star::beans::PropertyState> getPropertyStates(
78			[in] sequence<string> aPropertyName )
79		raises( com::sun::star::beans::UnknownPropertyException );
80
81	//-------------------------------------------------------------------------
82	/** sets all properties to their default values.
83
84		<p>Each value depends on the implementation of this interface.
85		If it is a bound property, you must change the value before
86		the change events are fired.  If it is a constrained property, you
87		must fire the vetoable event before you change the property value.
88		</p>
89	*/
90	void setAllPropertiesToDefault();
91
92	//-------------------------------------------------------------------------
93	/** sets the specified properties to their default values.
94
95		<p>Each value depends on the implementation of this interface.
96		If it is a bound property, you must change the value before
97		the change events are fired.  If it is a constrained property, you
98		must fire the vetoable event before you change the property value. </p>
99
100		@param aPropertyName
101			specifies the names of the properties. All names must be unique.
102			This sequence must be alphabetically sorted.
103
104		@throws UnknownPropertyException
105			if one of the properties does not exist.
106	*/
107	void setPropertiesToDefault( [in] sequence<string> aPropertyNames )
108			raises( com::sun::star::beans::UnknownPropertyException );
109
110	//-------------------------------------------------------------------------
111	/** @returns
112			the default values of the propertes with the specified names.
113
114		<p>If no default exists, is not known, or is void,
115		then the return type at the corresponding position in the
116		sequence returned is <atom>void</atom>. </p>
117
118		@param aPropertyName
119			specifies the names of the properties. All names must be unique.
120			This sequence must be alphabetically sorted.
121
122		@throws UnknownPropertyException
123			if one of the propertes does not exist.
124
125		@throws  com::sun::star::lang::WrappedTargetException
126			if the implementation has an internal reason for the exception.
127			In this case the original exception is wrapped into that
128			<type scope="com::sun::star::lang">WrappedTargetException</type>.
129	*/
130	sequence<any> getPropertyDefaults(
131				[in] sequence<string> aPropertyNames )
132			raises( com::sun::star::beans::UnknownPropertyException,
133					com::sun::star::lang::WrappedTargetException );
134};
135
136//=============================================================================
137
138}; }; }; };
139
140#endif
141