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