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_script_XInvocation_idl__ 24*b1cdbd2cSJim Jagielski#define __com_sun_star_script_XInvocation_idl__ 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_uno_XInterface_idl__ 27*b1cdbd2cSJim Jagielski#include <com/sun/star/uno/XInterface.idl> 28*b1cdbd2cSJim Jagielski#endif 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_beans_XIntrospectionAccess_idl__ 31*b1cdbd2cSJim Jagielski#include <com/sun/star/beans/XIntrospectionAccess.idl> 32*b1cdbd2cSJim Jagielski#endif 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ 35*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/IllegalArgumentException.idl> 36*b1cdbd2cSJim Jagielski#endif 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_script_CannotConvertException_idl__ 39*b1cdbd2cSJim Jagielski#include <com/sun/star/script/CannotConvertException.idl> 40*b1cdbd2cSJim Jagielski#endif 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_reflection_InvocationTargetException_idl__ 43*b1cdbd2cSJim Jagielski#include <com/sun/star/reflection/InvocationTargetException.idl> 44*b1cdbd2cSJim Jagielski#endif 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_beans_UnknownPropertyException_idl__ 47*b1cdbd2cSJim Jagielski#include <com/sun/star/beans/UnknownPropertyException.idl> 48*b1cdbd2cSJim Jagielski#endif 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski//============================================================================= 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski module com { module sun { module star { module script { 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski//============================================================================= 56*b1cdbd2cSJim Jagielski/** gives access to an object's methods and properties. 57*b1cdbd2cSJim Jagielski Container access is available through 58*b1cdbd2cSJim Jagielski <type scope="com::sun::star::container">XIndexContainer</type>, 59*b1cdbd2cSJim Jagielski <type scope="com::sun::star::container">XNameContainer</type> and 60*b1cdbd2cSJim Jagielski <type scope="com::sun::star::container">XEnumerationAccess</type>. 61*b1cdbd2cSJim Jagielski </p> 62*b1cdbd2cSJim Jagielski */ 63*b1cdbd2cSJim Jagielskipublished interface XInvocation: com::sun::star::uno::XInterface 64*b1cdbd2cSJim Jagielski{ 65*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 66*b1cdbd2cSJim Jagielski /** returns the introspection from this object or <NULL/> 67*b1cdbd2cSJim Jagielski if the object does not provide this information. 68*b1cdbd2cSJim Jagielski */ 69*b1cdbd2cSJim Jagielski com::sun::star::beans::XIntrospectionAccess getIntrospection(); 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 72*b1cdbd2cSJim Jagielski /** provides access to methods exposed by an object. 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski @param aParams all parameters; pure out params are undefined in sequence, 75*b1cdbd2cSJim Jagielski the value has to be ignored by the callee 76*b1cdbd2cSJim Jagielski @param aOutParamIndex This sequence contains the indices of all parameters 77*b1cdbd2cSJim Jagielski that are specified as out or inout. 78*b1cdbd2cSJim Jagielski @param aOutParam This sequence contains the values of all parameters that 79*b1cdbd2cSJim Jagielski are specified as out or inout and corresponds with the 80*b1cdbd2cSJim Jagielski indices provided by the aOutParamIndex sequence. 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski Example: aOutParamIndex == { 1, 4 } means that 83*b1cdbd2cSJim Jagielski aOutParam[0] contains the out value of the aParams[1] 84*b1cdbd2cSJim Jagielski parameter and aOutParam[1] contains the out value of 85*b1cdbd2cSJim Jagielski the aParams[4] parameter. 86*b1cdbd2cSJim Jagielski */ 87*b1cdbd2cSJim Jagielski any invoke( [in] string aFunctionName, 88*b1cdbd2cSJim Jagielski [in] sequence<any> aParams, 89*b1cdbd2cSJim Jagielski [out] sequence<short> aOutParamIndex, 90*b1cdbd2cSJim Jagielski [out] sequence<any> aOutParam ) 91*b1cdbd2cSJim Jagielski raises( com::sun::star::lang::IllegalArgumentException, 92*b1cdbd2cSJim Jagielski com::sun::star::script::CannotConvertException, 93*b1cdbd2cSJim Jagielski com::sun::star::reflection::InvocationTargetException ); 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 96*b1cdbd2cSJim Jagielski /** sets a value to the property with the specified name. 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski <p> If the underlying object implements an 99*b1cdbd2cSJim Jagielski <type scope="com::sun::star::container">XNameContainer</type>, 100*b1cdbd2cSJim Jagielski then this method will insert the value if there is no such 101*b1cdbd2cSJim Jagielski <var>aPropertyName</var>. 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski </p> 104*b1cdbd2cSJim Jagielski */ 105*b1cdbd2cSJim Jagielski void setValue( [in] string aPropertyName, 106*b1cdbd2cSJim Jagielski [in] any aValue ) 107*b1cdbd2cSJim Jagielski raises( com::sun::star::beans::UnknownPropertyException, 108*b1cdbd2cSJim Jagielski com::sun::star::script::CannotConvertException, 109*b1cdbd2cSJim Jagielski com::sun::star::reflection::InvocationTargetException ); 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 112*b1cdbd2cSJim Jagielski /** returns the value of the property with the specified name. 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski @param aPropertyName 115*b1cdbd2cSJim Jagielski specifies the name of the property. 116*b1cdbd2cSJim Jagielski */ 117*b1cdbd2cSJim Jagielski any getValue( [in] string aPropertyName ) 118*b1cdbd2cSJim Jagielski raises( com::sun::star::beans::UnknownPropertyException ); 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 121*b1cdbd2cSJim Jagielski /** returns <TRUE/> if the method with the specified name exists, else <FALSE/>. 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski <p>This optimizes the calling sequence 124*b1cdbd2cSJim Jagielski ( <member>XInvocation::hasMethod</member>, 125*b1cdbd2cSJim Jagielski <member>XInvocation::invoke</member> )!</p> 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski @param aName 128*b1cdbd2cSJim Jagielski specifies the name of the method. 129*b1cdbd2cSJim Jagielski */ 130*b1cdbd2cSJim Jagielski boolean hasMethod( [in] string aName ); 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 133*b1cdbd2cSJim Jagielski /** returns <TRUE/> if the property with the specified name exists, else <FALSE/>. 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski <p>This optimizes the calling sequence 136*b1cdbd2cSJim Jagielski ( <member>XInvocation::hasProperty</member>, 137*b1cdbd2cSJim Jagielski <member>XInvocation::getValue</member> ) or 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski ( <member>XInvocation::hasProperty</member>, 140*b1cdbd2cSJim Jagielski <member>XInvocation::setValue</member> )! 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski @param aName 143*b1cdbd2cSJim Jagielski specifies the name of the property. 144*b1cdbd2cSJim Jagielski */ 145*b1cdbd2cSJim Jagielski boolean hasProperty( [in] string aName ); 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski}; 148*b1cdbd2cSJim Jagielski 149*b1cdbd2cSJim Jagielski//============================================================================= 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski}; }; }; }; 152*b1cdbd2cSJim Jagielski 153*b1cdbd2cSJim Jagielski#endif 154