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
28#ifndef __com_sun_star_reflection_XPublished_idl__
29#define __com_sun_star_reflection_XPublished_idl__
30
31#include "com/sun/star/uno/XInterface.idl"
32
33module com {  module sun {  module star {  module reflection {
34
35/**
36   Reflects the &ldquo;published&rdquo; status of a UNOIDL entity.
37
38   <p>This interface is intended to be supported by objects that also support
39   <type scope="com::sun::star::reflection">XTypeDescription</type>.
40   (This interface could have been made an optional sub-interface of
41   <type scope="com::sun::star::reflection">XTypeDescription</type>, but is
42   instead kept independent for reasons of backwards compatibility.)</p>
43
44   <p>For the various kinds of UNOIDL entities that are represented by objects
45   supporting <type scope="com::sun::star::reflection">XTypeDescription</type>
46   and its subtypes, this optional interface should be supported as follows:</p>
47   <ul>
48       <li>Enum types
49       (<type scope="com::sun::star::reflection">XEnumTypeDescription</type>),
50       plain struct types
51       (<type scope="com::sun::star::reflection">XStructTypeDescription</type>),
52       polymorphic struct type templates
53       (<type scope="com::sun::star::reflection">XStructTypeDescription</type>),
54       exception types (<type
55       scope="com::sun::star::reflection">XCompoundTypeDescription</type>),
56       interface types (<type
57       scope="com::sun::star::reflection">XInterfaceTypeDescription2</type>),
58       typedefs (<type
59       scope="com::sun::star::reflection">XIndirectTypeDescription</type>),
60       individual constants (<type
61       scope="com::sun::star::reflection">XConstantTypeDescription</type>),
62       constant groups (<type
63       scope="com::sun::star::reflection">XConstantsTypeDescription</type>),
64       single-interface&ndash;based services (<type
65       scope="com::sun::star::reflection">XServiceTypeDescription2</type>),
66       accumulation-based services (<type
67       scope="com::sun::star::reflection">XServiceTypeDescription2</type>),
68       interface-based singletons (<type
69       scope="com::sun::star::reflection">XSingletonTypeDescription2</type>),
70       and service-based singletons (<type
71       scope="com::sun::star::reflection">XSingletonTypeDescription2</type>)
72       support the notion of being published.  Therefore, for an object that
73       represents any such entity,
74       <type scope="com::sun::star::reflection">XPublished</type> should be
75       supported.</li>
76
77       <li>Sequence types (<type
78       scope="com::sun::star::reflection">XIndirectTypeDescription</type>),
79       type parameters of polymorphic struct type templates
80       (<type scope="com::sun::star::reflection">XTypeDescription</type>),
81       instantiated polymorphic struct types
82       (<type scope="com::sun::star::reflection">XStructTypeDescription</type>),
83       attributes of interface types (<type scope="com::sun::star::reflection">
84       XInterfaceAttributeTypeDescription2</type>), methods of interface types
85       (<type scope="com::sun::star::reflection">
86       XInterfaceMethodTypeDescription</type>), properties of
87       accumulation-based services (<type
88       scope="com::sun::star::reflection">XPropertyTypeDescription</type>),
89       deprecated
90       <type scope="com::sun::star::reflection">XArrayTypeDescription</type>s,
91       and deprecated
92       <type scope="com::sun::star::reflection">XUnionTypeDescription</type>s do
93       not support the notion of being published.  Therefore, for an object that
94       represents any such entity,
95       <type scope="com::sun::star::reflection">XPublished</type> should not be
96       supported.</li>
97   </ul>
98
99   @since OOo 2.0
100*/
101interface XPublished {
102    /**
103       Returns the &ldquo;published&rdquo; status of a UNOIDL entity.
104
105       @return <TRUE/> if the UNOIDL entity represented by this object is
106       published
107     */
108    boolean isPublished();
109};
110
111}; }; }; };
112
113#endif
114