diff options
Diffstat (limited to 'udkapi/com/sun/star/reflection/XIdlClass.idl')
-rw-r--r-- | udkapi/com/sun/star/reflection/XIdlClass.idl | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/reflection/XIdlClass.idl b/udkapi/com/sun/star/reflection/XIdlClass.idl new file mode 100644 index 000000000..d6c43861e --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlClass.idl @@ -0,0 +1,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: */ |