1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: XIdlClass.idl,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
30 #ifndef __com_sun_star_reflection_XIdlClass_idl__
31 #define __com_sun_star_reflection_XIdlClass_idl__
33 #ifndef __com_sun_star_uno_XInterface_idl__
34 #include
<com
/sun
/star
/uno
/XInterface.idl
>
37 #ifndef __com_sun_star_uno_TypeClass_idl__
38 #include
<com
/sun
/star
/uno
/TypeClass.idl
>
41 #ifndef __com_sun_star_uno_Uik_idl__
42 #include
<com
/sun
/star
/uno
/Uik.idl
>
45 //=============================================================================
47 module com
{ module sun
{ module star
{ module reflection
{
49 published
interface XIdlField
;
50 published
interface XIdlMethod
;
51 published
interface XIdlArray
;
53 //=============================================================================
55 /** Provides information reflecting an UNO type.
57 published
interface XIdlClass
: com
::sun
::star
::uno
::XInterface
59 /** Deprecated. Do not call.
62 sequence
<XIdlClass
> getClasses
();
63 /** Deprecated. Do not call.
66 XIdlClass getClass
( [in] string aName
);
68 /** Tests whether two reflecting objects reflect the same type.
71 true, if the objects reflect the same type, false otherwise.
73 boolean equals
( [in] XIdlClass Type
);
75 /** Tests whether values of this reflected type are assignable from values
76 of a second one (<code>xType</code>).
79 another reflected type
81 true, if values of this reflected type are assignable
82 from values of <code>xType</code>.
84 boolean isAssignableFrom
( [in] XIdlClass xType
);
86 /** Returns the <type scope="com::sun::star::uno">TypeClass</type>
87 of the reflected type.
90 type class of the reflected type.
92 com
::sun
::star
::uno
::TypeClass getTypeClass
();
94 /** Returns the fully-qualified name of the reflected type.
97 the fully-qualified name of the type
101 /** Deprecated. Do not call.
105 com
::sun
::star
::uno
::Uik getUik
();
107 /** If the reflected type is an interface, then the returned
108 sequence of <type>XIdlClass</type> reflect the base interfaces.
110 If the reflected type is not an interface or an interface that is
111 not derived from another, then an empty sequence is returned.
114 all base interfaces of an interface type or an empty sequence.
116 sequence
<XIdlClass
> getSuperclasses
();
118 /** Deprecated. Do not call.
121 sequence
<XIdlClass
> getInterfaces
();
123 /** If the reflected type is an array or sequence, then this method
124 returns a <type>XIdlClass</type> interface reflecting
128 reflection interface of the element type of an array or
129 sequence type (null-reference otherwise).
131 XIdlClass getComponentType
();
133 /** If the reflected type is an interface, struct or union, then you
134 get a <type>XIdlField</type> interface reflecting the demanded
135 field (/interface attribute) by name.
137 If the reflected type is not an interface, struct or union or the
138 interace, struct or union does not have a field (/interface attribute)
139 with the demanded name, then a null-reference is returned.
142 name of the demanded field reflection
144 demanded field (/interface attribute) reflection (or null-reference)
146 XIdlField getField
( [in] string aName
);
148 /** If the reflected type is an interface, struct or union, then you
149 get a sequence of <type>XIdlField</type> interfaces reflecting all fields
150 (/interface attributes). This also includes all inherited
151 fields (/interface attributes) of the interface, struct of union.
153 If the reflected type is not an interface, struct or union or the
154 interface, struct or union does not have any field (/interface attribute),
155 then an empty sequence is returned.
158 all field (/interface attribute) reflections (or empty sequence)
160 sequence
<XIdlField
> getFields
();
162 /** If the reflected type is an interface, then you get
163 a <type>XIdlMethod</type> interface reflecting the demanded method by name.
165 If the reflected type is not an interface or the interface does not have
166 a method with the demanded name (including inherited methods),
167 then a null-reference is returned.
170 name of demanded method reflection
172 demanded method reflection (or null-reference)
174 XIdlMethod getMethod
( [in] string aName
);
176 /** If the reflected type is an interface, then you get
177 a sequence of <type>XIdlMethod</type> interfaces reflecting all methods
178 of the interface. This also includes the inherited methods of the interface.
180 If the reflected type is not an interface or the interface
181 does not have any methods, then a null-reference is returned.
184 all method reflections (or empty sequence)
186 sequence
<XIdlMethod
> getMethods
();
188 /** If the reflected type is an array, then you get
189 a <type>XIdlArray</type> interface to modify instances of the array type.
191 If the reflected type is not an array, then a null-reference is returned.
194 inteface to modify array instances (or null-reference)
196 XIdlArray getArray
();
198 /** This method creates instances of the reflected type.
201 Instances of type <code>any</code> can not be passed using an <code>any</code>, because
202 anys cannot be nested. So if the reflected type is an <code>any</code>, then the
203 returned value is empty.
206 pure out parameter to pass the created instance
208 void createObject
( [out] any obj
);
211 //=============================================================================
215 /*=============================================================================
217 =============================================================================*/