1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef __com_sun_star_script_provider_XScript_idl__
29#define __com_sun_star_script_provider_XScript_idl__
30
31#ifndef __com_sun_star_uno_XInterface_idl__
32#include <com/sun/star/uno/XInterface.idl>
33#endif
34
35#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
36#include <com/sun/star/lang/IllegalArgumentException.idl>
37#endif
38
39#ifndef __com_sun_star_script_CannotConvertException_idl__
40#include <com/sun/star/script/CannotConvertException.idl>
41#endif
42
43#ifndef __com_sun_star_reflection_InvocationTargetException_idl__
44#include <com/sun/star/reflection/InvocationTargetException.idl>
45#endif
46
47#ifndef  __com_sun_star_script_provider_ScriptFrameworkErrorException_idl__
48#include <com/sun/star/script/provider/ScriptFrameworkErrorException.idl>
49#endif
50
51//===========================================================================
52
53module com { module sun { module star { module script { module provider {
54
55//===========================================================================
56/**
57    This interface represents an invokable script or UNO function.
58*/
59interface XScript : ::com::sun::star::uno::XInterface {
60
61    //----------------------------------------------------------------------
62    /**
63        invoke the script or function represented by the implementing
64            object
65
66		@param aParams
67            all parameters; pure, out params are undefined in sequence,
68            i.e., the value has to be ignored by the callee
69		@param aOutParamIndex
70            out indices, indicating the position of the out or inout
71            parameters in the list of arguments to the script
72		@param aOutParam
73            out parameters<p>
74            For example, if the script had the signature<br>
75            <code>long foo( [inout] string a, [in] string b, [out] string c )</code>
76            <br> the call would look like<br>
77            <code>bar.invoke( {"foo", "foo2", "this-is-ignored" }, aOutParamIndex, aOutParam);</code>
78            <br> and after the call the out sequences would contain<br>
79            <listing>
80            aOutParamIndex={0,2};
81            aOutParam={"string from a", "string from c"};
82            </listing>
83
84        @returns
85            the value returned from the function being invoked
86
87        @throws ::com::sun::star::reflection::InvocationTargetException
88            if and error occurs while attempting to invoke a script the information is captured. If the error or exception is generated by the script itself it is wrapped as either ScriptErrorRaisedException or ScriptExceptionRaisedException or ScriptingFrameworkErrorException are wrapped as ScriptFrameworkErrorExceptions.
89    */
90    any invoke(
91        [in] sequence<any> aParams,
92		[out] sequence<short> aOutParamIndex,
93		[out] sequence<any> aOutParam ) raises(
94        ::com::sun::star::script::provider::ScriptFrameworkErrorException ,
95        ::com::sun::star::reflection::InvocationTargetException);
96
97};
98
99//===========================================================================
100}; }; }; }; }; // ::com::sun::star::script::provider
101
102#endif
103