1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef __com_sun_star_reflection_XCompoundTypeDescription_idl__
24#define __com_sun_star_reflection_XCompoundTypeDescription_idl__
25
26#ifndef __com_sun_star_reflection_XTypeDescription_idl__
27#include <com/sun/star/reflection/XTypeDescription.idl>
28#endif
29
30
31//=============================================================================
32
33 module com {  module sun {  module star {  module reflection {
34
35//=============================================================================
36
37/** Reflects a compound type, i.e. a struct or exception.
38
39    <p>For struct types, this type is superseded by
40    <type>XStructTypeDescription</type>, which supports polymorphic struct
41    types.</p>
42*/
43published interface XCompoundTypeDescription: com::sun::star::reflection::XTypeDescription
44{
45	/** Returns the type of the base type of the compound type.
46        If the compound does not have a base type, the method returns a null interface.
47
48        @return
49                base interface or null
50    */
51	com::sun::star::reflection::XTypeDescription getBaseType();
52
53	/** Returns the member types of the struct/exception in IDL declaration order.
54
55        <p>For a polymorphic struct type template, a member of parameterized
56        type is represented by an instance of
57        <type scope="com::sun::star::reflection::">XTypeDescription</type> whose
58        type class is <code>UNKNOWN</code> and whose name is the name of the
59        type parameter.</p>
60
61        @return
62                members of struct/exception
63    */
64	sequence<com::sun::star::reflection::XTypeDescription> getMemberTypes();
65
66	/** Returns the member names of the struct/exception in IDL declaration order.
67
68        @return
69                members names of struct/exception
70    */
71	sequence<string> getMemberNames();
72};
73
74//=============================================================================
75
76}; }; }; };
77
78/*=============================================================================
79
80=============================================================================*/
81#endif
82