blob: eda386dad3e67f2431b81b21fab65b680d5b78cf [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_script_XInvocation_idl__
#define __com_sun_star_script_XInvocation_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __com_sun_star_beans_XIntrospectionAccess_idl__
#include <com/sun/star/beans/XIntrospectionAccess.idl>
#endif
#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
#include <com/sun/star/lang/IllegalArgumentException.idl>
#endif
#ifndef __com_sun_star_script_CannotConvertException_idl__
#include <com/sun/star/script/CannotConvertException.idl>
#endif
#ifndef __com_sun_star_reflection_InvocationTargetException_idl__
#include <com/sun/star/reflection/InvocationTargetException.idl>
#endif
#ifndef __com_sun_star_beans_UnknownPropertyException_idl__
#include <com/sun/star/beans/UnknownPropertyException.idl>
#endif
//=============================================================================
module com { module sun { module star { module script {
//=============================================================================
/** gives access to an object's methods and properties.
Container access is available through
<type scope="com::sun::star::container">XIndexContainer</type>,
<type scope="com::sun::star::container">XNameContainer</type> and
<type scope="com::sun::star::container">XEnumerationAccess</type>.
</p>
*/
published interface XInvocation: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** returns the introspection from this object or <NULL/>
if the object does not provide this information.
*/
com::sun::star::beans::XIntrospectionAccess getIntrospection();
//-------------------------------------------------------------------------
/** provides access to methods exposed by an object.
@param aParams all parameters; pure out params are undefined in sequence,
the value has to be ignored by the callee
@param aOutParamIndex This sequence contains the indices of all parameters
that are specified as out or inout.
@param aOutParam This sequence contains the values of all parameters that
are specified as out or inout and corresponds with the
indices provided by the aOutParamIndex sequence.
Example: aOutParamIndex == { 1, 4 } means that
aOutParam[0] contains the out value of the aParams[1]
parameter and aOutParam[1] contains the out value of
the aParams[4] parameter.
*/
any invoke( [in] string aFunctionName,
[in] sequence<any> aParams,
[out] sequence<short> aOutParamIndex,
[out] sequence<any> aOutParam )
raises( com::sun::star::lang::IllegalArgumentException,
com::sun::star::script::CannotConvertException,
com::sun::star::reflection::InvocationTargetException );
//-------------------------------------------------------------------------
/** sets a value to the property with the specified name.
<p> If the underlying object implements an
<type scope="com::sun::star::container">XNameContainer</type>,
then this method will insert the value if there is no such
<var>aPropertyName</var>.
</p>
*/
void setValue( [in] string aPropertyName,
[in] any aValue )
raises( com::sun::star::beans::UnknownPropertyException,
com::sun::star::script::CannotConvertException,
com::sun::star::reflection::InvocationTargetException );
//-------------------------------------------------------------------------
/** returns the value of the property with the specified name.
@param aPropertyName
specifies the name of the property.
*/
any getValue( [in] string aPropertyName )
raises( com::sun::star::beans::UnknownPropertyException );
//-------------------------------------------------------------------------
/** returns <TRUE/> if the method with the specified name exists, else <FALSE/>.
<p>This optimizes the calling sequence
( <member>XInvocation::hasMethod</member>,
<member>XInvocation::invoke</member> )!</p>
@param aName
specifies the name of the method.
*/
boolean hasMethod( [in] string aName );
//-------------------------------------------------------------------------
/** returns <TRUE/> if the property with the specified name exists, else <FALSE/>.
<p>This optimizes the calling sequence
( <member>XInvocation::hasProperty</member>,
<member>XInvocation::getValue</member> ) or
( <member>XInvocation::hasProperty</member>,
<member>XInvocation::setValue</member> )!
@param aName
specifies the name of the property.
*/
boolean hasProperty( [in] string aName );
};
//=============================================================================
}; }; }; };
#endif