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_XTolerantMultiPropertySet_idl__
28#define __com_sun_star_beans_XTolerantMultiPropertySet_idl__
29
30
31#ifndef __com_sun_star_uno_XInterface_idl__
32#include <com/sun/star/uno/XInterface.idl>
33#endif
34
35#ifndef __com_sun_star_beans_GetDirectPropertyTolerantResult_idl__
36#include <com/sun/star/beans/GetDirectPropertyTolerantResult.idl>
37#endif
38
39#ifndef __com_sun_star_beans_GetPropertyTolerantResult_idl__
40#include <com/sun/star/beans/GetPropertyTolerantResult.idl>
41#endif
42
43#ifndef __com_sun_star_beans_SetPropertyTolerantFailed_idl__
44#include <com/sun/star/beans/SetPropertyTolerantFailed.idl>
45#endif
46
47#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
48#include <com/sun/star/lang/IllegalArgumentException.idl>
49#endif
50
51
52//=============================================================================
53
54module com {  module sun {  module star {  module beans {
55
56//=============================================================================
57
58/** provides access to multiple iformation of
59    a set of properties with a single call.
60
61    <p>The speciality of this interface is that none of the functions
62    will throw the usual exceptions associated with setting and retrieving
63    of property values. Instead the data for the failures is collected and
64    returned.</p>
65
66    <p>Note: There is no support for property change listeners in this
67    interface.</p>
68
69    @see com::sun::star::beans::XPropertySet
70    @see com::sun::star::beans::XMultiPropertySet
71 */
72published interface XTolerantMultiPropertySet : com::sun::star::uno::XInterface
73{
74	//-------------------------------------------------------------------------
75
76	/** sets the values to the properties with the specified names.
77
78		@param aPropertyNames
79            specifies the names of the properties.
80            The property names must be sorted ascending.
81
82            <p>If the names are not sorted the behaviour of the method
83            is undefined!</p>
84
85        @param aPropertyValues
86            specifies the values of the properties.
87            The order of the values has to be the same as in the
88            <var>aPropertyNames</var> parameter int order to match
89            the property name with its value.
90
91        @returns
92            An empty sequence if all properties are successfull set.
93
94            Otherwise for every property value that could not successfully
95            be set an entry of the
96            <type scope="com::sun::star::beans">SetPropertyTolerantFailed</type>
97            will be present in this sequence.
98            The order of the properties is also alphabetically ascending.
99
100        @throws IllegalArgumentException
101            if the number of property names and values do not match.
102
103	 */
104    sequence< com::sun::star::beans::SetPropertyTolerantFailed > setPropertyValuesTolerant(
105                [in] sequence< string > aPropertyNames,
106                [in] sequence< any >    aValues )
107        raises( com::sun::star::lang::IllegalArgumentException );
108
109	//-------------------------------------------------------------------------
110
111    /** retrieve the values of the specified properties
112
113        <p>The count and order of the values in the returned sequence
114            will be the same as the order of the names in the argument.</p>
115
116		@param aPropertyNames
117			specifies the names of the properties.
118            The property names must be sorted ascending.
119
120            <p>If the names are not sorted the behaviour of the method
121            is undefined!</p>
122
123        @returns
124            a sequence of type
125            <type scope="com::sun::star::beans">GetPropertyTolerantResult</type>
126            for each of the properties listed in <var>aPropertyNames</var>.
127	 */
128    sequence< com::sun::star::beans::GetPropertyTolerantResult > getPropertyValuesTolerant(
129                [in] sequence< string > aPropertyNames );
130
131
132    //-------------------------------------------------------------------------
133
134    /** retrieve only those values of the specified properties which
135        are direct values.
136
137        <p>Since the count of returned elements may be different from
138        the number of supplied property names the returned elements
139        will also state the name of the property.</p>
140
141        @param aPropertyNames
142            specifies the names of the properties.
143            The property names must be sorted ascending.
144
145            <p>If the names are not sorted the behaviour of the method
146            is undefined!</p>
147
148        @returns
149            a sequence of type
150            <type scope="com::sun::star::beans">GetDirectPropertyTolerantResult</type>
151            but only for those properties supplied whoms state is
152            <member scope="com::sun::star::beans::PropertyState">DIRECT_VALUE</member>.
153     */
154    sequence< com::sun::star::beans::GetDirectPropertyTolerantResult > getDirectPropertyValuesTolerant(
155                [in] sequence< string > aPropertyNames );
156
157};
158
159//=============================================================================
160
161}; }; }; };
162
163#endif
164
165