merged tag ooo/OOO330_m14
[LibreOffice.git] / udkapi / com / sun / star / reflection / XIdlClass.idl
blobfd9048ce111cbe3f174ad857778ac3c552962c49
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>
32 #endif
34 #ifndef __com_sun_star_uno_TypeClass_idl__
35 #include <com/sun/star/uno/TypeClass.idl>
36 #endif
38 #ifndef __com_sun_star_uno_Uik_idl__
39 #include <com/sun/star/uno/Uik.idl>
40 #endif
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.
57 @deprecated
59 sequence<XIdlClass> getClasses();
60 /** Deprecated. Do not call.
61 @deprecated
63 XIdlClass getClass( [in] string aName );
65 /** Tests whether two reflecting objects reflect the same type.
67 @returns
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>).
75 @param xType
76 another reflected type
77 @return
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.
86 @returns
87 type class of the reflected type.
89 com::sun::star::uno::TypeClass getTypeClass();
91 /** Returns the fully-qualified name of the reflected type.
93 @returns
94 the fully-qualified name of the type
96 string getName();
98 /** Deprecated. Do not call.
100 @deprecated
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.
106 <br>
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.
110 @return
111 all base interfaces of an interface type or an empty sequence.
113 sequence<XIdlClass> getSuperclasses();
115 /** Deprecated. Do not call.
116 @deprecated
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
122 the element.
124 @return
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.
133 <br>
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.
138 @param aName
139 name of the demanded field reflection
140 @return
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.
149 <br>
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.
154 @return
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.
161 <br>
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.
166 @param aName
167 name of demanded method reflection
168 @return
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.
176 <br>
177 If the reflected type is not an interface or the interface
178 does not have any methods, then a null-reference is returned.
180 @return
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.
187 <br>
188 If the reflected type is not an array, then a null-reference is returned.
190 @return
191 inteface to modify array instances (or null-reference)
193 XIdlArray getArray();
195 /** This method creates instances of the reflected type.
197 @attention
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.
202 @param obj
203 pure out parameter to pass the created instance
205 void createObject( [out] any obj );
208 //=============================================================================
210 }; }; }; };
212 /*=============================================================================
214 =============================================================================*/
215 #endif