1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_reflection_XIdlField2_idl__
24*b1cdbd2cSJim Jagielski#define __com_sun_star_reflection_XIdlField2_idl__
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_reflection_XIdlMember_idl__
27*b1cdbd2cSJim Jagielski#include <com/sun/star/reflection/XIdlMember.idl>
28*b1cdbd2cSJim Jagielski#endif
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_reflection_XIdlClass_idl__
31*b1cdbd2cSJim Jagielski#include <com/sun/star/reflection/XIdlClass.idl>
32*b1cdbd2cSJim Jagielski#endif
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_reflection_FieldAccessMode_idl__
35*b1cdbd2cSJim Jagielski#include <com/sun/star/reflection/FieldAccessMode.idl>
36*b1cdbd2cSJim Jagielski#endif
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
39*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/IllegalArgumentException.idl>
40*b1cdbd2cSJim Jagielski#endif
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_IllegalAccessException_idl__
43*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/IllegalAccessException.idl>
44*b1cdbd2cSJim Jagielski#endif
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim Jagielski//=============================================================================
48*b1cdbd2cSJim Jagielski
49*b1cdbd2cSJim Jagielski module com {  module sun {  module star {  module reflection {
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim Jagielski//=============================================================================
52*b1cdbd2cSJim Jagielski
53*b1cdbd2cSJim Jagielski/** Reflects an IDL interface attribute, enum or compound type
54*b1cdbd2cSJim Jagielski    (i.e. struct/exception) member.
55*b1cdbd2cSJim Jagielski*/
56*b1cdbd2cSJim Jagielskipublished interface XIdlField2: com::sun::star::reflection::XIdlMember
57*b1cdbd2cSJim Jagielski{
58*b1cdbd2cSJim Jagielski	/** Returns the type of the field.
59*b1cdbd2cSJim Jagielski
60*b1cdbd2cSJim Jagielski        @return
61*b1cdbd2cSJim Jagielski                type of the field
62*b1cdbd2cSJim Jagielski    */
63*b1cdbd2cSJim Jagielski	com::sun::star::reflection::XIdlClass getType();
64*b1cdbd2cSJim Jagielski
65*b1cdbd2cSJim Jagielski	/** Returns the access mode of the field, i.e. read-write, read-only or
66*b1cdbd2cSJim Jagielski        write-only (access mode "const" is deprecated).
67*b1cdbd2cSJim Jagielski
68*b1cdbd2cSJim Jagielski        @return
69*b1cdbd2cSJim Jagielski                access mode of the field
70*b1cdbd2cSJim Jagielski    */
71*b1cdbd2cSJim Jagielski	com::sun::star::reflection::FieldAccessMode getAccessMode();
72*b1cdbd2cSJim Jagielski
73*b1cdbd2cSJim Jagielski	/** Gets the value of the reflected field from the given object,
74*b1cdbd2cSJim Jagielski        i.e. an interface, enum or compound type (struct/exception).
75*b1cdbd2cSJim Jagielski        For enums, the given object is ignored; the returned value
76*b1cdbd2cSJim Jagielski        reflects the constant enum 32-bit value.
77*b1cdbd2cSJim Jagielski
78*b1cdbd2cSJim Jagielski        <p>When setting an interface attribute raises a
79*b1cdbd2cSJim Jagielski        non-<type scope="com::sun::star::uno">RuntimeException</type>, it is
80*b1cdbd2cSJim Jagielski        wrapped in a <type
81*b1cdbd2cSJim Jagielski        scope="com::sun::star::lang">WrappedTargetRuntimeException</type>.</p>
82*b1cdbd2cSJim Jagielski
83*b1cdbd2cSJim Jagielski        @param obj
84*b1cdbd2cSJim Jagielski               object instance having member of reflected type
85*b1cdbd2cSJim Jagielski        @return
86*b1cdbd2cSJim Jagielski                value of field
87*b1cdbd2cSJim Jagielski
88*b1cdbd2cSJim Jagielski        @throws IllegalAccessException
89*b1cdbd2cSJim Jagielski        An <type scope="com::sun::star::lang">IllegalAccessException</type>
90*b1cdbd2cSJim Jagielski        is thrown if the given object is no interface, enum or compound type;
91*b1cdbd2cSJim Jagielski        or the given object does not have the reflected field.
92*b1cdbd2cSJim Jagielski    */
93*b1cdbd2cSJim Jagielski	any get(
94*b1cdbd2cSJim Jagielski        [in] any obj )
95*b1cdbd2cSJim Jagielski        raises( com::sun::star::lang::IllegalArgumentException );
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski	/** Sets the value of the reflected field of the given object,
98*b1cdbd2cSJim Jagielski        i.e. an interface or compound type (struct/exception).
99*b1cdbd2cSJim Jagielski
100*b1cdbd2cSJim Jagielski        <p>When setting an interface attribute raises a
101*b1cdbd2cSJim Jagielski        non-<type scope="com::sun::star::uno">RuntimeException</type>, it is
102*b1cdbd2cSJim Jagielski        wrapped in a <type
103*b1cdbd2cSJim Jagielski        scope="com::sun::star::lang">WrappedTargetRuntimeException</type>.</p>
104*b1cdbd2cSJim Jagielski
105*b1cdbd2cSJim Jagielski        @param obj
106*b1cdbd2cSJim Jagielski               object instance having member of reflected type
107*b1cdbd2cSJim Jagielski        @param value
108*b1cdbd2cSJim Jagielski               value to be set
109*b1cdbd2cSJim Jagielski
110*b1cdbd2cSJim Jagielski        @throws IllegalAccessException
111*b1cdbd2cSJim Jagielski        An <type scope="com::sun::star::lang">IllegalAccessException</type>
112*b1cdbd2cSJim Jagielski        is thrown if the given object is no interface or compound type;
113*b1cdbd2cSJim Jagielski        or the given object does not have the reflected field.
114*b1cdbd2cSJim Jagielski    */
115*b1cdbd2cSJim Jagielski	void set(
116*b1cdbd2cSJim Jagielski        [inout] any obj,
117*b1cdbd2cSJim Jagielski        [in] any value )
118*b1cdbd2cSJim Jagielski        raises( com::sun::star::lang::IllegalArgumentException,
119*b1cdbd2cSJim Jagielski                com::sun::star::lang::IllegalAccessException );
120*b1cdbd2cSJim Jagielski};
121*b1cdbd2cSJim Jagielski
122*b1cdbd2cSJim Jagielski//=============================================================================
123*b1cdbd2cSJim Jagielski
124*b1cdbd2cSJim Jagielski}; }; }; };
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim Jagielski/*=============================================================================
127*b1cdbd2cSJim Jagielski
128*b1cdbd2cSJim Jagielski=============================================================================*/
129*b1cdbd2cSJim Jagielski#endif
130