The arguments for a macro when invoked by the dispatch provider get
converted from a set of PropertyValues to a sequence of Anys containing
just the values. Since the commit below, the TransformItems step was
changed to store the PropertyValues in an unordered_map which makes the
order of the values unpredictable. If the dispatch provider is used to
execute a macro then the order of the arguments becomes important
because the macro has no other way to determine which argument
represents which property. In order to maintain the previous behaviour,
the dispatch method now reorders the arguments so that they have the
same order as before. The previous order was determined by the order the
properties were handled in TransformItems.
commit e8d73d5307
Author: Mike Kaganski <mike.kaganski@collabora.com>
Date: Wed Dec 3 10:45:35 2025 +0500
Let TransformItems return comphelper::SequenceAsHashMap
Simplifies its usage in all places where the result needs to be
modified.
Change-Id: I37f8d99827e0f1cb2b6e4f4f7735e26fb87f6703
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195162
Change-Id: Iacf64650842eb62c0a2bd266784aa9c7accf45bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209231
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
Scripting Framework
This module provides the source code for the Scripting Framework.
For more information on the Scripting Framework, see the project web page: https://framework.openoffice.org/scripting/
This module uses astyle to keep consistent java coding style. Please run
./Format_java_code.sh
before committing.
Source Code Structure
The following directories contain the source code currently used by the Scripting Framework:
source/provider
C++ source for the implementations of the com.sun.star.script.provider.*
and com.sun.star.script.browse.* UNO types. These types are used for
browsing and executing scripts.
source/protocolhandler
C++ for a ProtocolHandler implementation that handles vnd.sun.star.script
URIs and dispatches them for execution to the Scripting Framework.
source/singleprov
A base helper class for C++ implementations of LanguageScriptProviders that store a single macro in a source file.
source/basprov
C++ implementation of the LanguageScriptProvider UNO service for Basic
source/dlgprov
C++ implementation of the DialogProvider UNO service used for loading
UNO dialogs from various languages
source/jsprov
C++ implementation of the LanguageScriptProvider UNO service for JavaScript using QuickJS.
source/pyprov
LanguageScriptProvider for Python
java/com/sun/star/script/framework/provider
Implementation of an abstract base class ScriptProvider which provides
core methods for implementing Java based LanguageScriptProvider implementations
java/com/sun/star/script/framework/provider/*
BeanShell, JavaScript and Java LanguageScriptProvider implementations
java/com/sun/star/script/framework/browse/*
BrowseNode implementations for the Java based LanguageScriptProviders
java/com/sun/star/script/framework/iojava/com/sun/star/script/framework/container
Classes for performing script IO
examples
Example scripts in BeanShell, JavaScript, Java and Python
Deprecated Code
java/org/openoffice/*
Support for developing scripts in IDEs such as NetBeans.