1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef __com_sun_star_reflection_XIdlClass_idl__
#define __com_sun_star_reflection_XIdlClass_idl__
#include <com/sun/star/uno/XInterface.idl>
#include <com/sun/star/uno/TypeClass.idl>
#include <com/sun/star/uno/Uik.idl>
module com { module sun { module star { module reflection {
published interface XIdlField;
published interface XIdlMethod;
published interface XIdlArray;
/** Provides information reflecting a UNO type.
*/
published interface XIdlClass: com::sun::star::uno::XInterface
{
/** Deprecated. Do not call.
@deprecated
*/
sequence<XIdlClass> getClasses();
/** Deprecated. Do not call.
@deprecated
*/
XIdlClass getClass( [in] string aName );
/** Tests whether two reflecting objects reflect the same type.
@returns
true, if the objects reflect the same type, false otherwise.
*/
boolean equals( [in] XIdlClass Type );
/** Tests whether values of this reflected type are assignable from values
of a second one (<code>xType</code>).
@param xType
another reflected type
@return
true, if values of this reflected type are assignable
from values of <code>xType</code>.
*/
boolean isAssignableFrom( [in] XIdlClass xType );
/** Returns the com::sun::star::uno::TypeClass
of the reflected type.
@returns
type class of the reflected type.
*/
com::sun::star::uno::TypeClass getTypeClass();
/** Returns the fully-qualified name of the reflected type.
@returns
the fully-qualified name of the type
*/
string getName();
/** Deprecated. Do not call.
@deprecated
*/
com::sun::star::uno::Uik getUik();
/** If the reflected type is an interface, then the returned
sequence of XIdlClass reflect the base interfaces.
<br>
If the reflected type is not an interface or an interface that is
not derived from another, then an empty sequence is returned.
@return
all base interfaces of an interface type or an empty sequence.
*/
sequence<XIdlClass> getSuperclasses();
/** Deprecated. Do not call.
@deprecated
*/
sequence<XIdlClass> getInterfaces();
/** If the reflected type is an array or sequence, then this method
returns a XIdlClass interface reflecting
the element.
@return
reflection interface of the element type of an array or
sequence type (null-reference otherwise).
*/
XIdlClass getComponentType();
/** If the reflected type is an interface, struct or union, then you
get a XIdlField interface reflecting the demanded
field (/interface attribute) by name.
<br>
If the reflected type is not an interface, struct or union or the
interface, struct or union does not have a field (/interface attribute)
with the demanded name, then a null-reference is returned.
@param aName
name of the demanded field reflection
@return
demanded field (/interface attribute) reflection (or null-reference)
*/
XIdlField getField( [in] string aName );
/** If the reflected type is an interface, struct or union, then you
get a sequence of XIdlField interfaces reflecting all fields
(/interface attributes). This also includes all inherited
fields (/interface attributes) of the interface, struct of union.
<br>
If the reflected type is not an interface, struct or union or the
interface, struct or union does not have any field (/interface attribute),
then an empty sequence is returned.
@return
all field (/interface attribute) reflections (or empty sequence)
*/
sequence<XIdlField> getFields();
/** If the reflected type is an interface, then you get
a XIdlMethod interface reflecting the demanded method by name.
<br>
If the reflected type is not an interface or the interface does not have
a method with the demanded name (including inherited methods),
then a null-reference is returned.
@param aName
name of demanded method reflection
@return
demanded method reflection (or null-reference)
*/
XIdlMethod getMethod( [in] string aName );
/** If the reflected type is an interface, then you get
a sequence of XIdlMethod interfaces reflecting all methods
of the interface. This also includes the inherited methods of the interface.
<br>
If the reflected type is not an interface or the interface
does not have any methods, then a null-reference is returned.
@return
all method reflections (or empty sequence)
*/
sequence<XIdlMethod> getMethods();
/** If the reflected type is an array, then you get
a XIdlArray interface to modify instances of the array type.
<br>
If the reflected type is not an array, then a null-reference is returned.
@return
interface to modify array instances (or null-reference)
*/
XIdlArray getArray();
/** This method creates instances of the reflected type.
@attention
Instances of type <code>any</code> can not be passed using an <code>any</code>, because
anys cannot be nested. So if the reflected type is an <code>any</code>, then the
returned value is empty.
@param obj
pure out parameter to pass the created instance
*/
void createObject( [out] any obj );
};
}; }; }; };
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|