static/README.wasm.md                              |    3 -
 static/source/unoembindhelpers/PrimaryBindings.cxx |    8 +--
 unotest/source/embindtest/embindtest.js            |   53 +++++++++++----------
 3 files changed, 34 insertions(+), 30 deletions(-)

New commits:
commit 20f1f529a29fdbc6a531a8c82f4aeff8ff3908bd
Author:     Stephan Bergmann <stephan.bergm...@allotropia.de>
AuthorDate: Fri Mar 8 18:01:21 2024 +0100
Commit:     Stephan Bergmann <stephan.bergm...@allotropia.de>
CommitDate: Fri Mar 8 22:45:26 2024 +0100

    Embind construction of UNO Any Type
    
    Change-Id: Iac5ac8de7bfb19b90d54edc6f4b791d8c0e98977
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164594
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <stephan.bergm...@allotropia.de>

diff --git a/static/source/unoembindhelpers/PrimaryBindings.cxx 
b/static/source/unoembindhelpers/PrimaryBindings.cxx
index a250e31aa144..8fb5ad39a6da 100644
--- a/static/source/unoembindhelpers/PrimaryBindings.cxx
+++ b/static/source/unoembindhelpers/PrimaryBindings.cxx
@@ -279,7 +279,7 @@ EMSCRIPTEN_BINDINGS(PrimaryBindings)
                 case TypeClass_STRING:
                     return Any{ OUString(rObject.as<std::u16string>()) };
                 case TypeClass_TYPE:
-                    return {}; //TODO
+                    return css::uno::Any(rObject.as<css::uno::Type>());
                 case TypeClass_SEQUENCE:
                     return {}; //TODO
                 case TypeClass_ENUM:
diff --git a/unotest/source/embindtest/embindtest.js 
b/unotest/source/embindtest/embindtest.js
index c5cb7db12169..8568fa2acaa2 100644
--- a/unotest/source/embindtest/embindtest.js
+++ b/unotest/source/embindtest/embindtest.js
@@ -242,9 +242,9 @@ Module.addOnPostRun(function() {
         console.assert(v.get().toString() === 'long');
         console.assert(test.isAnyType(v));
         v.delete();
-        //TODO: let a = new Module.uno_Any(Module.uno_Type.Type(), 
Module.uno_Type.Long());
-        //TODO: console.assert(test.isAnyType(a));
-        //TODO: a.delete();
+        let a = new Module.uno_Any(Module.uno_Type.Type(), 
Module.uno_Type.Long());
+        console.assert(test.isAnyType(a));
+        a.delete();
     }
     {
         let v = test.getAnySequence();
commit 80bb8c666f09264b0df7181d03ebad3b883de797
Author:     Stephan Bergmann <stephan.bergm...@allotropia.de>
AuthorDate: Fri Mar 8 17:50:57 2024 +0100
Commit:     Stephan Bergmann <stephan.bergm...@allotropia.de>
CommitDate: Fri Mar 8 22:45:11 2024 +0100

    Redesign Embind UNO Any construction
    
    ...taking a full UNO Type instead of just a UNO Type class (so that it will 
be
    able to construct Any containing sequence, enum, struct, exception, and
    interface, in later steps); moving the Type argument first (as that looks 
more
    natural), and renaming from Any to uno_Any (in line with the other uno_Type,
    uno_Sequence_..., etc.)
    
    Change-Id: I154681c4b9187f5f5d037d503652fe7bcd41adcd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164593
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <stephan.bergm...@allotropia.de>

diff --git a/static/README.wasm.md b/static/README.wasm.md
index ef8a02f8261a..1abfd39de6c8 100644
--- a/static/README.wasm.md
+++ b/static/README.wasm.md
@@ -248,7 +248,8 @@ while (xParaEnumeration.hasMoreElements()) {
     xParagraph = new css.text.XTextRange(xParaEnumeration.nextElement(), 
Module.uno_Reference.FromAny);
     if (xParagraph.$is()) {
         xParaProps = new css.beans.XPropertySet(xParagraph.$query());
-        let color = new Module.Any(Math.floor(Math.random() * 0xFFFFFF), 
css.uno.TypeClass.LONG);
+        let color = new Module.uno_Any(
+            Module.uno_Type.Long(), Math.floor(Math.random() * 0xFFFFFF));
         xParaProps.setPropertyValue("CharColor", color);
         color.delete();
     }
diff --git a/static/source/unoembindhelpers/PrimaryBindings.cxx 
b/static/source/unoembindhelpers/PrimaryBindings.cxx
index bfbf7d90b12d..a250e31aa144 100644
--- a/static/source/unoembindhelpers/PrimaryBindings.cxx
+++ b/static/source/unoembindhelpers/PrimaryBindings.cxx
@@ -248,9 +248,9 @@ EMSCRIPTEN_BINDINGS(PrimaryBindings)
         });
 
     // Any
-    class_<Any>("Any")
-        .constructor(+[](const val& rObject, const TypeClass& rUnoType) -> Any 
{
-            switch (rUnoType)
+    class_<Any>("uno_Any")
+        .constructor(+[](const css::uno::Type& rUnoType, const val& rObject) 
-> Any {
+            switch (rUnoType.getTypeClass())
             {
                 case TypeClass_VOID:
                     return {};
diff --git a/unotest/source/embindtest/embindtest.js 
b/unotest/source/embindtest/embindtest.js
index a825946fee34..c5cb7db12169 100644
--- a/unotest/source/embindtest/embindtest.js
+++ b/unotest/source/embindtest/embindtest.js
@@ -112,7 +112,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === undefined);
         console.assert(test.isAnyVoid(v));
         v.delete();
-        let a = new Module.Any(undefined, css.uno.TypeClass.VOID);
+        let a = new Module.uno_Any(Module.uno_Type.Void(), undefined);
         console.assert(test.isAnyVoid(a));
         a.delete();
     }
@@ -122,7 +122,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === true);
         console.assert(test.isAnyBoolean(v));
         v.delete();
-        let a = new Module.Any(true, css.uno.TypeClass.BOOLEAN);
+        let a = new Module.uno_Any(Module.uno_Type.Boolean(), true);
         console.assert(test.isAnyBoolean(a));
         a.delete();
     }
@@ -132,7 +132,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === -12);
         console.assert(test.isAnyByte(v));
         v.delete();
-        let a = new Module.Any(-12, css.uno.TypeClass.BYTE);
+        let a = new Module.uno_Any(Module.uno_Type.Byte(), -12);
         console.assert(test.isAnyByte(a));
         a.delete();
     }
@@ -142,7 +142,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === -1234);
         console.assert(test.isAnyShort(v));
         v.delete();
-        let a = new Module.Any(-1234, css.uno.TypeClass.SHORT);
+        let a = new Module.uno_Any(Module.uno_Type.Short(), -1234);
         console.assert(test.isAnyShort(a));
         a.delete();
     }
@@ -152,7 +152,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === 54321);
         console.assert(test.isAnyUnsignedShort(v));
         v.delete();
-        let a = new Module.Any(54321, css.uno.TypeClass.UNSIGNED_SHORT);
+        let a = new Module.uno_Any(Module.uno_Type.UnsignedShort(), 54321);
         console.assert(test.isAnyUnsignedShort(a));
         a.delete();
     }
@@ -162,7 +162,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === -123456);
         console.assert(test.isAnyLong(v));
         v.delete();
-        let a = new Module.Any(-123456, css.uno.TypeClass.LONG);
+        let a = new Module.uno_Any(Module.uno_Type.Long(), -123456);
         console.assert(test.isAnyLong(a));
         a.delete();
     }
@@ -172,7 +172,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === 3456789012);
         console.assert(test.isAnyUnsignedLong(v));
         v.delete();
-        let a = new Module.Any(3456789012, css.uno.TypeClass.UNSIGNED_LONG);
+        let a = new Module.uno_Any(Module.uno_Type.UnsignedLong(), 3456789012);
         console.assert(test.isAnyUnsignedLong(a));
         a.delete();
     }
@@ -182,7 +182,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === -123456789n);
         console.assert(test.isAnyHyper(v));
         v.delete();
-        let a = new Module.Any(-123456789n, css.uno.TypeClass.HYPER);
+        let a = new Module.uno_Any(Module.uno_Type.Hyper(), -123456789n);
         console.assert(test.isAnyHyper(a));
         a.delete();
     }
@@ -192,7 +192,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === 9876543210n);
         console.assert(test.isAnyUnsignedHyper(v));
         v.delete();
-        let a = new Module.Any(9876543210n, css.uno.TypeClass.UNSIGNED_HYPER);
+        let a = new Module.uno_Any(Module.uno_Type.UnsignedHyper(), 
9876543210n);
         console.assert(test.isAnyUnsignedHyper(a));
         a.delete();
     }
@@ -202,7 +202,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === -10.25);
         console.assert(test.isAnyFloat(v));
         v.delete();
-        let a = new Module.Any(-10.25, css.uno.TypeClass.FLOAT);
+        let a = new Module.uno_Any(Module.uno_Type.Float(), -10.25);
         console.assert(test.isAnyFloat(a));
         a.delete();
     }
@@ -212,7 +212,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === 100.5);
         console.assert(test.isAnyDouble(v));
         v.delete();
-        let a = new Module.Any(100.5, css.uno.TypeClass.DOUBLE);
+        let a = new Module.uno_Any(Module.uno_Type.Double(), 100.5);
         console.assert(test.isAnyDouble(a));
         a.delete();
     }
@@ -222,7 +222,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === 'Ö');
         console.assert(test.isAnyChar(v));
         v.delete();
-        let a = new Module.Any('Ö', css.uno.TypeClass.CHAR);
+        let a = new Module.uno_Any(Module.uno_Type.Char(), 'Ö');
         console.assert(test.isAnyChar(a));
         a.delete();
     }
@@ -232,7 +232,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === 'hä');
         console.assert(test.isAnyString(v));
         v.delete();
-        let a = new Module.Any('hä', css.uno.TypeClass.STRING);
+        let a = new Module.uno_Any(Module.uno_Type.String(), 'hä');
         console.assert(test.isAnyString(a));
         a.delete();
     }
@@ -242,7 +242,7 @@ Module.addOnPostRun(function() {
         console.assert(v.get().toString() === 'long');
         console.assert(test.isAnyType(v));
         v.delete();
-        //TODO: let a = new Module.Any(Module.uno_Type.Long(), 
css.uno.TypeClass.TYPE);
+        //TODO: let a = new Module.uno_Any(Module.uno_Type.Type(), 
Module.uno_Type.Long());
         //TODO: console.assert(test.isAnyType(a));
         //TODO: a.delete();
     }
@@ -258,7 +258,7 @@ Module.addOnPostRun(function() {
         console.assert(test.isAnySequence(v));
         v.delete();
         let s = new Module.uno_Sequence_string(["foo", "barr", "bazzz"]);
-        //TODO: let a = new Module.Any(s, css.uno.TypeClass.SEQUENCE);
+        //TODO: let a = new 
Module.uno_Any(Module.uno_Type.Sequence(Module.uno_Type.String()), s);
         //TODO: console.assert(test.isAnySequence(a));
         //TODO: a.delete();
         s.delete();
@@ -269,8 +269,9 @@ Module.addOnPostRun(function() {
         console.assert(v.get() === uno.org.libreoffice.embindtest.Enum.E_2);
         console.assert(test.isAnyEnum(v));
         v.delete();
-        //TODO: let a = new Module.Any(
-        //TODO:     uno.org.libreoffice.embindtest.Enum.E_2, 
css.uno.TypeClass.ENUM);
+        //TODO: let a = new Module.uno_Any(
+        //TODO:     Module.uno_Type.Enum('org.libreoffice.embindtest.Enum'),
+        //TODO:     uno.org.libreoffice.embindtest.Enum.E_2);
         //TODO: console.assert(test.isAnyEnum(a));
         //TODO: a.delete();
     }
@@ -282,8 +283,9 @@ Module.addOnPostRun(function() {
         console.assert(v.get().m3 === 'hä');
         console.assert(test.isAnyStruct(v));
         v.delete();
-        //TODO: let a = new Module.Any(
-        //TODO:     {m1: -123456, m2: 100.5, m3: 'hä'}, 
css.uno.TypeClass.STRUCT);
+        //TODO: let a = new Module.uno_Any(
+        //TODO:     
Module.uno_Type.Struct('org.libreoffice.embindtest.Struct'),
+        //TODO:     {m1: -123456, m2: 100.5, m3: 'hä'});
         //TODO: console.assert(test.isAnyStruct(a));
         //TODO: a.delete();
     }
@@ -297,9 +299,9 @@ Module.addOnPostRun(function() {
         console.assert(v.get().m3 === 'hä');
         console.assert(test.isAnyException(v));
         v.delete();
-        //TODO: let a = new Module.Any(
-        //TODO:     {Message: 'error', Context: null, m1: -123456, m2: 100.5, 
m3: 'hä'},
-        //TODO:     css.uno.TypeClass.EXCEPTION);
+        //TODO: let a = new Module.uno_Any(
+        //TODO:     
Module.uno_Type.Exception('org.libreoffice.embindtest.Exception'),
+        //TODO:     {Message: 'error', Context: null, m1: -123456, m2: 100.5, 
m3: 'hä'});
         //TODO: console.assert(test.isAnyException(a));
         //TODO: a.delete();
     }
@@ -309,7 +311,8 @@ Module.addOnPostRun(function() {
         console.assert(v.get().$equals(test.$query()));
         console.assert(test.isAnyInterface(v));
         v.delete();
-        //TODO: let a = new Module.Any(test, css.uno.TypeClass.INTERFACE);
+        //TODO: let a = new Module.uno_Any(
+        //TODO:     
Module.uno_Type.Inteface('org.libreoffice.embindtest.Test'), test);
         //TODO: console.assert(test.isAnyInterface(a));
         //TODO: a.delete();
     }

Reply via email to