1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 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. 14 * 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). 20 * 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. 25 * 26 ************************************************************************/ 27#ifndef __com_sun_star_reflection_TypeDescriptionManager_idl__ 28#define __com_sun_star_reflection_TypeDescriptionManager_idl__ 29 30#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__ 31#include <com/sun/star/container/XHierarchicalNameAccess.idl> 32#endif 33 34#ifndef __com_sun_star_container_XSet_idl__ 35#include <com/sun/star/container/XSet.idl> 36#endif 37 38#ifndef __com_sun_star_lang_XInitialization_idl__ 39#include <com/sun/star/lang/XInitialization.idl> 40#endif 41 42#ifndef __com_sun_star_lang_XComponent_idl__ 43#include <com/sun/star/lang/XComponent.idl> 44#endif 45 46#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__ 47#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl> 48#endif 49 50//============================================================================= 51 52 module com { module sun { module star { module reflection { 53 54//============================================================================= 55 56/** This service manages type descriptions and acts as a central access point 57 to every type description. It delegates calls for demanded types to 58 subsequent 59 <type scope="com::sun::star::reflection">TypeDescriptionProvider</type>s 60 and may cache type descriptions.<br> 61 Using cppuhelper's bootstrapping routines bootstrapping an initial 62 component context, there is a singleton accessable via key 63 "/singletons/com.sun.star.reflection.theTypeDescriptionManager". 64 This singleton object is hooked into the C UNO runtime typelib and 65 lives until the context is shut down.<br> 66 67 @see com::sun::star::reflection::TypeDescriptionProvider 68 @see com::sun::star::reflection::XTypeDescription 69*/ 70published service TypeDescriptionManager 71{ 72 /** Interface to retrieve type descriptions. 73 74 <ul> 75 <li>Names are given in dotted notation, for example 76 <code>"com.sun.star.uno.XInterface"</code>.</li> 77 78 <li>Sequence types are accessible via 79 <code>"[]<var>ComponentType</var>"</code></li> 80 81 <li>Instantiated polymorphic struct types are accessible via 82 <code>"<var>StructType</var><<!-- 83 --><var>Parameter</var><sub>1</sub>,…,<!-- 84 --><var>Parameter</var><sub><var>n</var></sub>>"</code>.</li> 85 86 <li>Members of interface types are accessible via 87 <code>"<var>InterfaceType</var>::<var>Member</var>"</code>.</li> 88 </ul> 89 90 <p>The returned values are of interface type 91 <type>XTypeDescription</type>.</p> 92 93 <p>Even though the name of this interface suggests that the used type 94 names are hierarchic, this need not be the case. (For example, consider 95 the names of instantiated polymorphic struct types, like 96 <code>"Struct<long>"</code>.)</p> 97 */ 98 interface com::sun::star::container::XHierarchicalNameAccess; 99 100 /** You can manually add or remove a providers via this interface. 101 */ 102 interface com::sun::star::container::XSet; 103 104 /** Interface to signal shutdown to the manager.<br> 105 This signals all providers to shut down, because usually each provider 106 references its manager, listening for disposing events. 107 */ 108 [optional] interface com::sun::star::lang::XComponent; 109 110 /** Interface for creating enumerations for type descriptions supported 111 by this <type>TypeDescriptionManager</type> 112 113 @since OOo 1.1.2 114 */ 115 [optional] interface XTypeDescriptionEnumerationAccess; 116}; 117 118//============================================================================= 119 120}; }; }; }; 121 122/*============================================================================= 123 124=============================================================================*/ 125#endif 126