Kaydet (Commit) d8660257 authored tarafından Duncan Foster's avatar Duncan Foster

#i17307#

XFunction->XScript etc
üst c78979c5
......@@ -2,9 +2,9 @@
*
* $RCSfile: scripthandler.cxx,v $
*
* $Revision: 1.8 $
* $Revision: 1.9 $
*
* last change: $Author: dfoster $ $Date: 2003-07-23 10:19:53 $
* last change: $Author: dfoster $ $Date: 2003-07-23 14:01:00 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
......@@ -166,13 +166,13 @@ void SAL_CALL ScriptProtocolHandler::dispatchWithNotification(
{
try
{
// Creates a FunctionProvider ( if one is not created allready )
createFunctionProvider( aURL.Complete );
// Creates a ScriptProvider ( if one is not created allready )
createScriptProvider( aURL.Complete );
Reference< provider::XFunction > xFunc =
m_xFunctionProvider->getFunction( aURL.Complete );
Reference< provider::XScript > xFunc =
m_xScriptProvider->getScript( aURL.Complete );
validateXRef( xFunc,
"ScriptProtocolHandler::dispatchWithNotification: validate xFunc - unable to obtain XFunction interface" );
"ScriptProtocolHandler::dispatchWithNotification: validate xFunc - unable to obtain XScript interface" );
Sequence< Any > inArgs( 0 );
......@@ -307,12 +307,12 @@ throw ( RuntimeException )
{}
void
ScriptProtocolHandler::createFunctionProvider( const ::rtl::OUString& url )
ScriptProtocolHandler::createScriptProvider( const ::rtl::OUString& url )
throw ( RuntimeException )
{
if ( m_xFunctionProvider.is() )
if ( m_xScriptProvider.is() )
{
OSL_TRACE("ScriptProtocolHandler::createFunctionProvider(), function provider already created");
OSL_TRACE("ScriptProtocolHandler::createScriptProvider(), function provider already created");
return;
}
try
......@@ -332,22 +332,22 @@ throw ( RuntimeException )
rtl::OUString filesystemString = rtl::OUString::createFromAscii( "location=filesystem" );
// Detect if workaround is necessary.
// Problem, when FunctionProvier is created,
// Problem, when ScriptProvider is created,
// and document contains scripts, storage mangager adds script
// storage to security manager ( this results in security dialogs
// getting raised. ) This is a problem as FunctionProvider is not
// getting raised. ) This is a problem as ScriptProvider is not
// at this time created by the document and dialogs are raised
// at unexpected times. This code should be removed when FProvider
// at unexpected times. This code should be removed when provider
// is created by document.
// Workaround: If uri of script to be invoked is NOT a document
// located script create FunctionProvider with extra paramater
// located script create ScriptProvider with extra paramater
// which indicates to storage not to use security
//
// workaround also applies to scripts located on the filesystem
if ( ( url.indexOf( documentString ) == -1 ) && ( url.indexOf( filesystemString ) == -1 ) )
{
// Not a document or filesystem script - no need to use security
OSL_TRACE(" Will create special FunctionProvider eg. one that doesn't user security" );
OSL_TRACE(" Will create special ScriptProvider eg. one that doesn't user security" );
args.realloc( 2 );
args[ 1 ] <<= sal_False;
}
......@@ -355,31 +355,31 @@ throw ( RuntimeException )
Reference< XInterface > xXinterface =
m_xFactory->createInstanceWithArguments(
::rtl::OUString::createFromAscii(
"drafts.com.sun.star.script.framework.provider.FunctionProvider" ),
"drafts.com.sun.star.script.framework.provider.ScriptProvider" ),
args );
validateXRef( xXinterface,
"ScriptProtocolHandler::initialize: cannot get instance of FunctionProvider" );
m_xFunctionProvider = Reference< provider::XFunctionProvider >( xXinterface,
"ScriptProtocolHandler::initialize: cannot get instance of ScriptProvider" );
m_xScriptProvider = Reference< provider::XScriptProvider >( xXinterface,
UNO_QUERY_THROW );
}
catch ( RuntimeException & e )
{
::rtl::OUString temp = OUSTR( "ScriptProtocolHandler::createFunctionProvider(), " );
::rtl::OUString temp = OUSTR( "ScriptProtocolHandler::createScriptProvider(), " );
throw RuntimeException( temp.concat( e.Message ), Reference< XInterface >() );
}
catch ( Exception & e )
{
OSL_TRACE( "ScriptProtocolHandler::createFunctionProvider: Caught Exception %s",
OSL_TRACE( "ScriptProtocolHandler::createScriptProvider: Caught Exception %s",
::rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ).pData->buffer );
::rtl::OUString temp = OUSTR( "ScriptProtocolHandler::createFunctionProvider: " );
::rtl::OUString temp = OUSTR( "ScriptProtocolHandler::createScriptProvider: " );
throw RuntimeException( temp.concat( e.Message ), Reference< XInterface >() );
}
#ifdef _DEBUG
catch ( ... )
{
OSL_TRACE( "ScriptProtocolHandler::createFunctionProvier: Unknown exception caught" );
OSL_TRACE( "ScriptProtocolHandler::createScriptProvier: Unknown exception caught" );
throw RuntimeException(
OUSTR( "ScriptProtocolHandler::createFunctionProvider: UnknownException: " ),
OUSTR( "ScriptProtocolHandler::createScriptProvider: UnknownException: " ),
Reference< XInterface > () );
}
#endif
......
......@@ -2,9 +2,9 @@
*
* $RCSfile: scripthandler.hxx,v $
*
* $Revision: 1.3 $
* $Revision: 1.4 $
*
* last change: $Author: npower $ $Date: 2003-03-06 11:58:18 $
* last change: $Author: dfoster $ $Date: 2003-07-23 14:01:00 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
......@@ -68,7 +68,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <cppuhelper/implbase4.hxx>
#include <drafts/com/sun/star/script/framework/provider/XFunctionProvider.hpp>
#include <drafts/com/sun/star/script/framework/provider/XScriptProvider.hpp>
namespace rtl
{
......@@ -126,9 +126,9 @@ private:
bool m_bInitialised;
css::uno::Reference < css::lang::XMultiServiceFactory > m_xFactory;
css::uno::Reference < css::frame::XFrame > m_xFrame;
css::uno::Reference < dcss::script::framework::provider::XFunctionProvider >
m_xFunctionProvider;
void createFunctionProvider( const ::rtl::OUString& url ) throw( css::uno::RuntimeException );
css::uno::Reference < dcss::script::framework::provider::XScriptProvider >
m_xScriptProvider;
void createScriptProvider( const ::rtl::OUString& url ) throw( css::uno::RuntimeException );
public:
ScriptProtocolHandler( const css::uno::Reference <
css::lang::XMultiServiceFactory >& xFactory );
......
/*************************************************************************
*
* $RCSfile: ScriptImpl.cxx,v $
*
* $Revision: 1.1 $
*
* last change: $Author: dfoster $ $Date: 2003-07-23 13:58:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#include <stdio.h>
#include "ScriptImpl.hxx"
#include <util/util.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::drafts::com::sun::star::script::framework;
namespace func_provider
{
//*************************************************************************
ScriptImpl::ScriptImpl(
const Reference< beans::XPropertySet > & scriptingContext,
const Reference< runtime::XScriptInvocation > & runtimeMgr,
const ::rtl::OUString& scriptURI )
throw ( RuntimeException ) :
m_XScriptingContext( scriptingContext ),
m_RunTimeManager( runtimeMgr ),
m_ScriptURI( scriptURI )
{
OSL_TRACE( "<!constucting a ScriptImpl>\n" );
validateXRef( m_XScriptingContext,
"ScriptImpl::ScriptImpl: No XScriptingContext\n" );
validateXRef( m_RunTimeManager,
"ScriptImpl::ScriptImpl: No XScriptInvocation\n" );
}
//*************************************************************************
ScriptImpl::~ScriptImpl()
{
OSL_TRACE( "<Destructing a ScriptImpl>\n" );
}
//*************************************************************************
Any SAL_CALL
ScriptImpl::invoke( const Sequence< Any >& aParams,
Sequence< sal_Int16 >& aOutParamIndex, Sequence< Any >& aOutParam )
throw ( lang::IllegalArgumentException, script::CannotConvertException,
reflection::InvocationTargetException, RuntimeException )
{
OSL_TRACE( "<ScriptImpl::invoke>" );
Any result;
Any anyScriptingContext;
anyScriptingContext <<= m_XScriptingContext;
try
{
result = m_RunTimeManager->invoke( m_ScriptURI, anyScriptingContext, aParams,
aOutParamIndex, aOutParam );
}
catch ( lang::IllegalArgumentException & iae )
{
::rtl::OUString temp = OUSTR( "ScriptImpl::invoke IllegalArgumentException : " );
throw lang::IllegalArgumentException( temp.concat( iae.Message ),
Reference< XInterface > (),
iae.ArgumentPosition );
}
catch ( script::CannotConvertException & cce )
{
::rtl::OUString temp = OUSTR( "ScriptImpl::invoke CannotConvertException : " );
throw script::CannotConvertException( temp.concat( cce.Message ),
Reference< XInterface > (),
cce.DestinationTypeClass,
cce.Reason,
cce.ArgumentIndex );
}
catch ( reflection::InvocationTargetException & ite )
{
::rtl::OUString temp = OUSTR( "ScriptImpl::invoke InvocationTargetException : " );
throw reflection::InvocationTargetException( temp.concat( ite.Message ),
Reference< XInterface > (),
ite.TargetException );
}
catch ( RuntimeException & re )
{
::rtl::OUString temp = OUSTR( "ScriptImpl::invoke RuntimeException : " );
throw RuntimeException( temp.concat( re.Message ),
Reference< XInterface > () );
}
#ifdef _DEBUG
catch ( ... )
{
throw RuntimeException(
OUSTR( "ScriptImpl::invoke Unknown Exception caught - RuntimeException rethrown" ),
Reference< XInterface > () );
}
#endif
return result;
}
} // namespace func_provider
/*************************************************************************
*
* $RCSfile: ScriptImpl.hxx,v $
*
* $Revision: 1.1 $
*
* last change: $Author: dfoster $ $Date: 2003-07-23 13:58:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifndef _FRAMEWORK_SCRIPT_PROVIDER_FUNCTIONIMPL_HXX_
#define _FRAMEWORK_SCRIPT_PROVIDER_FUNCTIONIMPL_HXX_
#include <cppuhelper/implbase1.hxx> // helper for XInterface, XTypeProvider etc.
#include <osl/mutex.hxx>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/uno/RuntimeException.hpp>
#include <com/sun/star/script/CannotConvertException.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/reflection/InvocationTargetException.hpp>
#include <drafts/com/sun/star/script/framework/provider/XScript.hpp>
#include <drafts/com/sun/star/script/framework/runtime/XScriptInvocation.hpp>
namespace func_provider
{
// for simplification
#define css ::com::sun::star
#define dcsssf ::drafts::com::sun::star::script::framework
class ScriptImpl :
public ::cppu::WeakImplHelper1 < dcsssf::provider::XScript >
{
public:
/*************************************************************
ScriptImpl Constructor
@param runtimeMgr which is a service that implement a XScriptInvocation
@param scriptURI the received ScriptURI that needs to be resolve and invoked
*/
ScriptImpl(
const css::uno::Reference< css::beans::XPropertySet > & scriptingContext,
const css::uno::Reference< dcsssf::runtime::XScriptInvocation > & runtimeMgr,
const ::rtl::OUString& scriptURI )
throw ( css::uno::RuntimeException );
/*************************************************************
ScriptImpl Destructor
*/
~ScriptImpl();
/*************************************************************
Invoke
@param aParams all parameters; pure, out params are undefined in sequence,
i.e., the value has to be ignored by the callee
@param aOutParamIndex out indices
@param aOutParam out parameters
@returns
the value returned from the function being invoked
@throws IllegalArgumentException
if there is no matching script name
@throws CannotConvertException
if args do not match or cannot be converted the those
of the invokee
@throws InvocationTargetException
if the running script throws an exception this information is captured and
rethrown as this exception type.
*/
virtual css::uno::Any SAL_CALL invoke(
const css::uno::Sequence< css::uno::Any > & aParams,
css::uno::Sequence< sal_Int16 > & aOutParamIndex,
css::uno::Sequence< css::uno::Any > & aOutParam )
throw ( css::lang::IllegalArgumentException,
css::script::CannotConvertException,
css::reflection::InvocationTargetException,
css::uno::RuntimeException );
private:
css::uno::Reference< css::beans::XPropertySet > m_XScriptingContext;
css::uno::Reference < dcsssf::runtime::XScriptInvocation > m_RunTimeManager;
::rtl::OUString m_ScriptURI;
/* copy ctor disabled, i.e. not defined */
ScriptImpl( const ScriptImpl& );
/* assignment disabled, i.e. not defined */
ScriptImpl& operator = ( const ScriptImpl& );
};
} // namespace func_provider
#endif //_FRAMEWORK_SCRIPT_PROVIDER_FUNCTIONIMPL_HXX_
......@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
# $Revision: 1.2 $
# $Revision: 1.3 $
#
# last change: $Author: npower $ $Date: 2003-07-07 14:23:51 $
# last change: $Author: dfoster $ $Date: 2003-07-23 13:58:47 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
......@@ -78,8 +78,8 @@ COMP1TYPELIST=$(TARGET)
SLOFILES=\
$(SLO)$/ScriptingContext.obj\
$(SLO)$/FunctionImpl.obj\
$(SLO)$/FunctionProvider.obj\
$(SLO)$/ScriptImpl.obj\
$(SLO)$/ScriptProvider.obj\
# --- Targets ------------------------------------------------------
......
......@@ -4,20 +4,20 @@
<module-name> ScriptRuntimeManager </module-name>
<component-description>
<author> Noel Power</author>
<name> drafts.com.sun.star.script.framework.provider.FunctionProvider </name>
<name> drafts.com.sun.star.script.framework.provider.ScriptProvider </name>
<description>
This component is part of the Scripting Framework
</description>
<loader-name> com.sun.star.loader.SharedLibrary </loader-name>
<language> c++ </language>
<status value="drafts"/>
<supported-service> drafts.com.sun.star.script.framework.provider.FunctionProvider </supported-service>
<supported-service> drafts.com.sun.star.script.framework.provider.ScriptProvider </supported-service>
<type> com.sun.star.beans.XPropertySet </type>
<type> com.sun.star.uno.Exception </type>
<type> com.sun.star.io.IOException </type>
<type> com.sun.star.io.XStream </type>
<type> drafts.com.sun.star.script.framework.provider.XFunction </type>
<type> drafts.com.sun.star.script.framework.provider.XFunctionProvider </type>
<type> drafts.com.sun.star.script.framework.provider.XScript </type>
<type> drafts.com.sun.star.script.framework.provider.XScriptProvider </type>
<type> drafts.com.sun.star.script.framework.runtime.XScriptInvocation </type>
</component-description>
......
......@@ -2,9 +2,9 @@
*
* $RCSfile: ScriptNameResolverImpl.cxx,v $
*
* $Revision: 1.27 $
* $Revision: 1.28 $
*
* last change: $Author: toconnor $ $Date: 2003-06-19 11:11:41 $
* last change: $Author: dfoster $ $Date: 2003-07-23 14:05:13 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
......@@ -255,7 +255,7 @@ throw ( lang::IllegalArgumentException, script::CannotConvertException, RuntimeE
::rtl::OUString::createFromAscii(
"com.sun.star.ucb.SimpleFileAccess" ), m_xContext );
validateXRef( xInterface,
"FunctionProvider::initialise: cannot get SimpleFileAccess Service\n" );
"ScriptProvider::initialise: cannot get SimpleFileAccess Service\n" );
Reference < ucb::XSimpleFileAccess > xSimpleFileAccess = Reference <
ucb::XSimpleFileAccess > ( xInterface, UNO_QUERY_THROW );
......
......@@ -2,9 +2,9 @@
*
* $RCSfile: ScriptRuntimeManager.cxx,v $
*
* $Revision: 1.18 $
* $Revision: 1.19 $
*
* last change: $Author: npower $ $Date: 2003-07-07 14:25:54 $
* last change: $Author: dfoster $ $Date: 2003-07-23 14:05:13 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
......@@ -454,16 +454,16 @@ OUString ssm_getImplementationName() SAL_THROW( () );
//*************************************************************************
//************ Script Provider defines ************************************
Reference< XInterface > SAL_CALL fp_create( const Reference< XComponentContext > & xCompC );
//******************** FunctionProvider defines ***************************
Sequence< OUString > fp_getSupportedServiceNames( ) SAL_THROW( () );
Reference< XInterface > SAL_CALL sp_create( const Reference< XComponentContext > & xCompC );
//******************** ScriptProvider defines ***************************
Sequence< OUString > sp_getSupportedServiceNames( ) SAL_THROW( () );
//*************************************************************************
OUString fp_getImplementationName( ) SAL_THROW( () );
OUString sp_getImplementationName( ) SAL_THROW( () );
//*************************************************************************
//************ ScriptStorage defines **************************************
Reference< XInterface > SAL_CALL ss_create( const Reference< XComponentContext > & xCompC );
//******************** FunctionProvider defines ***************************
//******************** ScriptProvider defines ***************************
Sequence< OUString > ss_getSupportedServiceNames( ) SAL_THROW( () );
//*************************************************************************
OUString ss_getImplementationName( ) SAL_THROW( () );
......@@ -493,8 +493,8 @@ static struct cppu::ImplementationEntry s_entries [] =
0, 0
},
{
fp_create, fp_getImplementationName,
fp_getSupportedServiceNames, cppu::createSingleComponentFactory,
sp_create, sp_getImplementationName,
sp_getSupportedServiceNames, cppu::createSingleComponentFactory,
0, 0
},
{ 0, 0, 0, 0, 0, 0 }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment