fix baseline build (old cairo) - 'cairo_rectangle_int_t' does not name a type
[LibreOffice.git] / udkapi / com / sun / star / beans / XIntrospectionAccess.idl
blobbe325005f11797321b1642fb470e5021479c76d0
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef __com_sun_star_beans_XIntrospectionAccess_idl__
20 #define __com_sun_star_beans_XIntrospectionAccess_idl__
22 #include <com/sun/star/uno/XInterface.idl>
24 #include <com/sun/star/beans/Property.idl>
26 #include <com/sun/star/container/NoSuchElementException.idl>
28 #include <com/sun/star/reflection/XIdlMethod.idl>
30 #include <com/sun/star/lang/NoSuchMethodException.idl>
32 #include <com/sun/star/reflection/XIdlClass.idl>
34 #include <com/sun/star/beans/IllegalTypeException.idl>
37 module com { module sun { module star { module beans {
40 /** represents the result of an introspection operation done by
41 the inspect method of XIntrospection.
43 <p>This interface gives information about an object's
44 properties and methods as detected in the introspection
45 process. It's not possible to access properties or call
46 methods directly using this interface but it provides
47 access to other interfaces to do so.
48 See com::sun::star::beans::XIntrospectionAccess::queryAdapter()</p>
50 <p>The XExactName interface has to be supported
51 in order to implement inaccurate name access for all objects
52 which implement the com::sun::star::container::XNameAccess interface
53 or XPropertySet.</p>
55 <p>The XMaterialHolder interface has to be
56 supported to give access to the inspected object.</p>
58 @see XPropertySet
59 @see com::sun::star::beans::XExactName
61 published interface XIntrospectionAccess: com::sun::star::uno::XInterface
63 /** returns information about which method concepts described in
64 the MethodConcept constants group are supported
65 by this XIntrospectionAccess implementation.
67 <p>The minimum supported concepts should be:</p>
69 <ul>
70 <li> MethodConcept::PROPERTY, </li>
71 <li> MethodConcept::LISTENER, </li>
72 <li> MethodConcept::ENUMERATION, </li>
73 <li> MethodConcept::NAMECONTAINER</li>
74 <li> MethodConcept::INDEXCONTAINER; </li>
75 </ul>
77 @returns
78 zero or more constants of the MethodConcept
79 constants group combined by an arithmetical or-operation.
81 long getSuppliedMethodConcepts();
83 /** returns information about which property concepts described in
84 the PropertyConcept constants group are supported
85 by this XIntrospectionAccess implementation.
87 <p>The minimum supported concepts should be:</p>
89 <ul>
90 <li> PropertyConcept::PROPERTYSET, </li>
91 <li> PropertyConcept::ATTRIBUTES and </li>
92 <li> PropertyConcept::METHODS. </li>
93 </ul>
95 @returns
96 zero or more constants of the PropertyConcept
97 constants group.combined by an arithmetical or-operation.
99 long getSuppliedPropertyConcepts();
101 /** returns information about a property if a property with
102 the demanded name exists and if it accords to one of the
103 demanded PropertyConcepts. The information
104 is provided as Property struct.
106 @returns
107 A Property struct providing
108 information about the demanded property,
109 if a corresponding property exists.
111 @param aName
112 the name of the property.
114 @param nPropertyConcepts
115 zero or more constants of the PropertyConcept
116 constants group combined by an arithmetical
117 or-operation.
119 @throws NoSuchElementException
120 when a property with the demanded name doesn't exist
121 or if it accords to a wrong PropertyConcept.
123 com::sun::star::beans::Property getProperty( [in] string aName,
124 [in] long nPropertyConcepts )
125 raises( com::sun::star::container::NoSuchElementException );
127 /** allows to ask if a property with the demanded name exists
128 and if it accords to one of the demanded PropertyConcept.
130 @returns
131 `TRUE` if the property exists and accords to one of
132 the demanded PropertyConcepts, otherwise
133 `FALSE` is returned.
135 @param aName
136 the name of the property.
138 @param nPropertyConcepts
139 zero or more constants of the PropertyConcept
140 constants group combined by an arithmetical
141 or-operation.
143 boolean hasProperty( [in] string aName,
144 [in] long nPropertyConcepts );
146 /** returns a sequence of properties of the introspected object
148 @returns
149 all properties of the introspected object which accord
150 to the demanded PropertyConcepts.
152 @param nPropertyConcepts
153 zero or more constants of the PropertyConcept
154 constants group combined by an arithmetical
155 or-operation.
157 sequence<com::sun::star::beans::Property> getProperties(
158 [in] long nPropertyConcepts );
160 /** returns information about a method if a method with
161 the demanded name exists and if it accords to one of
162 the demanded MethodConcepts. The information is
163 provided as com::sun::star::reflection::XIdlMethod.
165 @returns
166 A com::sun::star::reflection::XIdlMethod providing
167 information about and
168 access to the demanded method if a corresponding
169 method exists.
171 @param aName
172 the name of the method.
174 @param nMethodConcepts
175 zero or more constants of the MethodConcept
176 constants group combined by an arithmetical
177 or-operation.
179 @throws NoSuchElementException
180 when a method with the demanded name doesn't exist
181 or if it accords to a wrong MethodConcept.
183 com::sun::star::reflection::XIdlMethod getMethod( [in] string aName,
184 [in] long nMethodConcepts )
185 raises( com::sun::star::lang::NoSuchMethodException );
187 /** allows to ask if a method with the demanded name exists
188 and if it accords to one of the demanded MethodConcept.
190 @returns
191 `TRUE` if the method exists and accords to one of
192 the demanded MethodConcepts, otherwise
193 `FALSE` is returned.
195 @param aName
196 the name of the method.
198 @param nMethodConcepts
199 zero or more constants of the MethodConcept
200 constants group combined by an arithmetical
201 or-operation.
203 boolean hasMethod( [in] string aName,
204 [in] long nMethodConcepts );
206 /** returns a sequence of methods of the introspected object.
208 @returns
209 all methods of the introspected object which accord
210 to the demanded MethodConcepts.
212 @param nMethodConcepts
213 zero or more constants of the MethodConcept
214 constants group combined by an arithmetical
215 or-operation.
217 sequence<com::sun::star::reflection::XIdlMethod> getMethods(
218 [in] long nMethodConcepts );
220 /** returns the listener types supported by the introspected
221 object.
223 <p>If the introspected object has the methods
224 <code>addFooListener( XFooListener xFoo )</code> and
225 <code>removeFooListener( XFooListener xFoo )</code>
226 the type of XFooListener will be one of the elements
227 in the returned sequence.
229 @returns
230 a sequence of the types of listener interfaces
231 which are supported by the introspected object.
233 sequence<type> getSupportedListeners();
235 /** creates an adapter that implements an interface with the
236 specified type.
238 <p>To access properties, query for the XPropertySet
239 interface. If the XPropertySet can
240 be queried, the XFastPropertySet interface
241 must be supported too. </p>
243 <p>If the introspected object implements a name container,
244 the introspection should return the
245 com::sun::star::container::XNameAccess and
246 com::sun::star::container::XNameContainer interfaces.</p>
248 <p>If the introspected object implements an index container,
249 the introspection should return the
250 com::sun::star::container::XIndexAccess and
251 com::sun::star::container::XIndexContainer interfaces.</p>
253 <p>If the introspected object implements an enumeration
254 container, the introspection should return the
255 com::sun::star::container::XEnumerationAccess interface.</p>
257 <p>If the introspected object implements the
258 com::sun::star::reflection::XIdlArray interface,
259 the introspection should return this.</p>
261 <p>To implement inaccurate name access, at all objects,
262 which implement the com::sun::star::container::XNameAccess or
263 XPropertySet interface, the XExactName interface has to be supported.
264 </p>
266 @see com::sun::star::beans::XExactName
268 com::sun::star::uno::XInterface queryAdapter( [in] type aInterfaceType )
269 raises( com::sun::star::beans::IllegalTypeException );
274 }; }; }; };
276 #endif
278 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */