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
24#ifndef __com_sun_star_reflection_XServiceTypeDescription2_idl__
25#define __com_sun_star_reflection_XServiceTypeDescription2_idl__
26
27#include "com/sun/star/reflection/XServiceTypeDescription.idl"
28
29module com {  module sun {  module star {  module reflection {
30
31interface XServiceConstructorDescription;
32interface XTypeDescription;
33
34/**
35   Reflects a service, supporting single-interface–based services.
36
37   <p>This type supersedes <type>XServiceTypeDescription</type>, which only
38   supports obsolete, accumulation-based services.</p>
39
40   @since OpenOffice 2.0
41 */
42interface XServiceTypeDescription2: XServiceTypeDescription {
43    /**
44       Returns whether this object reflects a single-interface&ndash;based
45       service.
46
47       @return <TRUE/> if this object reflects a single-interface&ndash;based
48           service, and <FALSE/> if this object reflects an obsolete,
49           accumulation-based service
50     */
51    boolean isSingleInterfaceBased();
52
53    /**
54       Returns the interface type associated with the service.
55
56       @return the reflection of the interface type associated with the service
57           (of type <type
58           scope="com::sun::star::reflection">XInterfaceTypeDescription</type>
59           or, in case of a typedef, <type
60           scope="com::sun::star::reflection">XIndirectTypeDescription</type>),
61           for a single-interface&ndash;based service; for an obsolete,
62           accumulation-based service, <NULL/> is returned
63     */
64    XTypeDescription getInterface();
65
66    /**
67       Returns the constructors of the service.
68
69       @return the reflections of all constructors of the service, in no
70           particular order
71     */
72    sequence<XServiceConstructorDescription> getConstructors();
73};
74
75}; }; }; };
76
77#endif
78