/************************************************************** * * 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_XPublished_idl__ #define __com_sun_star_reflection_XPublished_idl__ #include "com/sun/star/uno/XInterface.idl" module com { module sun { module star { module reflection { /** Reflects the “published” status of a UNOIDL entity. <p>This interface is intended to be supported by objects that also support <type scope="com::sun::star::reflection">XTypeDescription</type>. (This interface could have been made an optional sub-interface of <type scope="com::sun::star::reflection">XTypeDescription</type>, but is instead kept independent for reasons of backwards compatibility.)</p> <p>For the various kinds of UNOIDL entities that are represented by objects supporting <type scope="com::sun::star::reflection">XTypeDescription</type> and its subtypes, this optional interface should be supported as follows:</p> <ul> <li>Enum types (<type scope="com::sun::star::reflection">XEnumTypeDescription</type>), plain struct types (<type scope="com::sun::star::reflection">XStructTypeDescription</type>), polymorphic struct type templates (<type scope="com::sun::star::reflection">XStructTypeDescription</type>), exception types (<type scope="com::sun::star::reflection">XCompoundTypeDescription</type>), interface types (<type scope="com::sun::star::reflection">XInterfaceTypeDescription2</type>), typedefs (<type scope="com::sun::star::reflection">XIndirectTypeDescription</type>), individual constants (<type scope="com::sun::star::reflection">XConstantTypeDescription</type>), constant groups (<type scope="com::sun::star::reflection">XConstantsTypeDescription</type>), single-interface–based services (<type scope="com::sun::star::reflection">XServiceTypeDescription2</type>), accumulation-based services (<type scope="com::sun::star::reflection">XServiceTypeDescription2</type>), interface-based singletons (<type scope="com::sun::star::reflection">XSingletonTypeDescription2</type>), and service-based singletons (<type scope="com::sun::star::reflection">XSingletonTypeDescription2</type>) support the notion of being published. Therefore, for an object that represents any such entity, <type scope="com::sun::star::reflection">XPublished</type> should be supported.</li> <li>Sequence types (<type scope="com::sun::star::reflection">XIndirectTypeDescription</type>), type parameters of polymorphic struct type templates (<type scope="com::sun::star::reflection">XTypeDescription</type>), instantiated polymorphic struct types (<type scope="com::sun::star::reflection">XStructTypeDescription</type>), attributes of interface types (<type scope="com::sun::star::reflection"> XInterfaceAttributeTypeDescription2</type>), methods of interface types (<type scope="com::sun::star::reflection"> XInterfaceMethodTypeDescription</type>), properties of accumulation-based services (<type scope="com::sun::star::reflection">XPropertyTypeDescription</type>), deprecated <type scope="com::sun::star::reflection">XArrayTypeDescription</type>s, and deprecated <type scope="com::sun::star::reflection">XUnionTypeDescription</type>s do not support the notion of being published. Therefore, for an object that represents any such entity, <type scope="com::sun::star::reflection">XPublished</type> should not be supported.</li> </ul> @since OpenOffice 2.0 */ interface XPublished { /** Returns the “published” status of a UNOIDL entity. @return <TRUE/> if the UNOIDL entity represented by this object is published */ boolean isPublished(); }; }; }; }; }; #endif