1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
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.
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).
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.
26 ************************************************************************/
27 #ifndef __com_sun_star_reflection_XIdlClass_idl__
28 #define __com_sun_star_reflection_XIdlClass_idl__
30 #ifndef __com_sun_star_uno_XInterface_idl__
31 #include
<com
/sun
/star
/uno
/XInterface.idl
>
34 #ifndef __com_sun_star_uno_TypeClass_idl__
35 #include
<com
/sun
/star
/uno
/TypeClass.idl
>
38 #ifndef __com_sun_star_uno_Uik_idl__
39 #include
<com
/sun
/star
/uno
/Uik.idl
>
42 //=============================================================================
44 module com
{ module sun
{ module star
{ module reflection
{
46 published
interface XIdlField
;
47 published
interface XIdlMethod
;
48 published
interface XIdlArray
;
50 //=============================================================================
52 /** Provides information reflecting an UNO type.
54 published
interface XIdlClass
: com
::sun
::star
::uno
::XInterface
56 /** Deprecated. Do not call.
59 sequence
<XIdlClass
> getClasses
();
60 /** Deprecated. Do not call.
63 XIdlClass getClass
( [in] string aName
);
65 /** Tests whether two reflecting objects reflect the same type.
68 true, if the objects reflect the same type, false otherwise.
70 boolean equals
( [in] XIdlClass Type
);
72 /** Tests whether values of this reflected type are assignable from values
73 of a second one (<code>xType</code>).
76 another reflected type
78 true, if values of this reflected type are assignable
79 from values of <code>xType</code>.
81 boolean isAssignableFrom
( [in] XIdlClass xType
);
83 /** Returns the <type scope="com::sun::star::uno">TypeClass</type>
84 of the reflected type.
87 type class of the reflected type.
89 com
::sun
::star
::uno
::TypeClass getTypeClass
();
91 /** Returns the fully-qualified name of the reflected type.
94 the fully-qualified name of the type
98 /** Deprecated. Do not call.
102 com
::sun
::star
::uno
::Uik getUik
();
104 /** If the reflected type is an interface, then the returned
105 sequence of <type>XIdlClass</type> reflect the base interfaces.
107 If the reflected type is not an interface or an interface that is
108 not derived from another, then an empty sequence is returned.
111 all base interfaces of an interface type or an empty sequence.
113 sequence
<XIdlClass
> getSuperclasses
();
115 /** Deprecated. Do not call.
118 sequence
<XIdlClass
> getInterfaces
();
120 /** If the reflected type is an array or sequence, then this method
121 returns a <type>XIdlClass</type> interface reflecting
125 reflection interface of the element type of an array or
126 sequence type (null-reference otherwise).
128 XIdlClass getComponentType
();
130 /** If the reflected type is an interface, struct or union, then you
131 get a <type>XIdlField</type> interface reflecting the demanded
132 field (/interface attribute) by name.
134 If the reflected type is not an interface, struct or union or the
135 interace, struct or union does not have a field (/interface attribute)
136 with the demanded name, then a null-reference is returned.
139 name of the demanded field reflection
141 demanded field (/interface attribute) reflection (or null-reference)
143 XIdlField getField
( [in] string aName
);
145 /** If the reflected type is an interface, struct or union, then you
146 get a sequence of <type>XIdlField</type> interfaces reflecting all fields
147 (/interface attributes). This also includes all inherited
148 fields (/interface attributes) of the interface, struct of union.
150 If the reflected type is not an interface, struct or union or the
151 interface, struct or union does not have any field (/interface attribute),
152 then an empty sequence is returned.
155 all field (/interface attribute) reflections (or empty sequence)
157 sequence
<XIdlField
> getFields
();
159 /** If the reflected type is an interface, then you get
160 a <type>XIdlMethod</type> interface reflecting the demanded method by name.
162 If the reflected type is not an interface or the interface does not have
163 a method with the demanded name (including inherited methods),
164 then a null-reference is returned.
167 name of demanded method reflection
169 demanded method reflection (or null-reference)
171 XIdlMethod getMethod
( [in] string aName
);
173 /** If the reflected type is an interface, then you get
174 a sequence of <type>XIdlMethod</type> interfaces reflecting all methods
175 of the interface. This also includes the inherited methods of the interface.
177 If the reflected type is not an interface or the interface
178 does not have any methods, then a null-reference is returned.
181 all method reflections (or empty sequence)
183 sequence
<XIdlMethod
> getMethods
();
185 /** If the reflected type is an array, then you get
186 a <type>XIdlArray</type> interface to modify instances of the array type.
188 If the reflected type is not an array, then a null-reference is returned.
191 inteface to modify array instances (or null-reference)
193 XIdlArray getArray
();
195 /** This method creates instances of the reflected type.
198 Instances of type <code>any</code> can not be passed using an <code>any</code>, because
199 anys cannot be nested. So if the reflected type is an <code>any</code>, then the
200 returned value is empty.
203 pure out parameter to pass the created instance
205 void createObject
( [out] any obj
);
208 //=============================================================================
212 /*=============================================================================
214 =============================================================================*/