/* -*- 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 #include #include module com { module sun { module star { module reflection { published interface XIdlField; published interface XIdlMethod; published interface XIdlArray; /** Provides information reflecting an UNO type. */ published interface XIdlClass: com::sun::star::uno::XInterface { /** Deprecated. Do not call. @deprecated */ sequence 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 (xType). @param xType another reflected type @return true, if values of this reflected type are assignable from values of xType. */ 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.
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 getSuperclasses(); /** Deprecated. Do not call. @deprecated */ sequence 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.
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.
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 getFields(); /** If the reflected type is an interface, then you get a XIdlMethod interface reflecting the demanded method by name.
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.
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 getMethods(); /** If the reflected type is an array, then you get a XIdlArray interface to modify instances of the array type.
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 any can not be passed using an any, because anys cannot be nested. So if the reflected type is an any, 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: */