/************************************************************** * * 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 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef __com_sun_star_reflection_XIdlClass_idl__ #define __com_sun_star_reflection_XIdlClass_idl__ #ifndef __com_sun_star_uno_XInterface_idl__ #include #endif #ifndef __com_sun_star_uno_TypeClass_idl__ #include #endif #ifndef __com_sun_star_uno_Uik_idl__ #include #endif //============================================================================= 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 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 interace, 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 inteface 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