xref: /aoo42x/main/udkapi/com/sun/star/beans/Optional.idl (revision 408a4873)
1*408a4873SAndrew Rist/**************************************************************
2*408a4873SAndrew Rist *
3*408a4873SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*408a4873SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5*408a4873SAndrew Rist * distributed with this work for additional information
6*408a4873SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7*408a4873SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*408a4873SAndrew Rist * "License"); you may not use this file except in compliance
9*408a4873SAndrew Rist * with the License.  You may obtain a copy of the License at
10*408a4873SAndrew Rist *
11*408a4873SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*408a4873SAndrew Rist *
13*408a4873SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*408a4873SAndrew Rist * software distributed under the License is distributed on an
15*408a4873SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*408a4873SAndrew Rist * KIND, either express or implied.  See the License for the
17*408a4873SAndrew Rist * specific language governing permissions and limitations
18*408a4873SAndrew Rist * under the License.
19*408a4873SAndrew Rist *
20*408a4873SAndrew Rist *************************************************************/
21*408a4873SAndrew Rist
22*408a4873SAndrew Rist
23cdf0e10cSrcweir#ifndef __com_sun_star_beans_Optional_idl__
24cdf0e10cSrcweir#define __com_sun_star_beans_Optional_idl__
25cdf0e10cSrcweir
26cdf0e10cSrcweirmodule com {  module sun {  module star {  module beans {
27cdf0e10cSrcweir
28cdf0e10cSrcweir/**
29cdf0e10cSrcweir   An optional value of a given type.
30cdf0e10cSrcweir
31cdf0e10cSrcweir   <p>This structure is used as the type of interface attributes corresponding
32cdf0e10cSrcweir   to instances of <type scopye="com::sun::star::beans">Property</type> that
33cdf0e10cSrcweir   have the <const
34cdf0e10cSrcweir   scope="com::sun::star::beans">PropertyAttribute::MAYBEVOID</const>.  It might
35cdf0e10cSrcweir   also be useful in other situations, for example as the return type of an
36cdf0e10cSrcweir   interface method.</p>
37cdf0e10cSrcweir */
38cdf0e10cSrcweirpublished struct Optional<T> {
39cdf0e10cSrcweir    /**
40cdf0e10cSrcweir       Marks this structure instance as having an actual value.
41cdf0e10cSrcweir     */
42cdf0e10cSrcweir    boolean IsPresent;
43cdf0e10cSrcweir
44cdf0e10cSrcweir    /**
45cdf0e10cSrcweir       The actual value of this structure instance.
46cdf0e10cSrcweir
47cdf0e10cSrcweir       <p>If no actual value is present, a producer of such a structure instance
48cdf0e10cSrcweir       should leave this member defaulted, and a consumer of such a structure
49cdf0e10cSrcweir       instance should ignore the specific value stored in this member.</p>
50cdf0e10cSrcweir     */
51cdf0e10cSrcweir    T Value;
52cdf0e10cSrcweir};
53cdf0e10cSrcweir
54cdf0e10cSrcweir}; }; }; };
55cdf0e10cSrcweir
56cdf0e10cSrcweir#endif
57