summaryrefslogtreecommitdiff
path: root/Examples/test-suite/java
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2022-12-02 19:16:02 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2022-12-02 19:16:02 +0000
commit05b93b1f06fe5299e5bda2c2b1e0d70c7599af61 (patch)
tree713dbb9e92db2908e0aac3fcc4b236212b20dd3a /Examples/test-suite/java
parentc85e7f1625f8b421c92b8c1a8279d134ba050ecc (diff)
downloadswig-05b93b1f06fe5299e5bda2c2b1e0d70c7599af61.tar.gz
Improved template template parameters support.
Previously, specifying more than one simple template template parameter resulted in a parse error. Now multiple template template parameters are working including instantiation with %template. Example: template <template<template<class> class, class> class Op, template<class> class X, class Y> class C { ... }; Closes #624 Closes #1021
Diffstat (limited to 'Examples/test-suite/java')
-rw-r--r--Examples/test-suite/java/template_template_parameters_runme.java8
-rw-r--r--Examples/test-suite/java/template_template_template_parameters_runme.java36
2 files changed, 42 insertions, 2 deletions
diff --git a/Examples/test-suite/java/template_template_parameters_runme.java b/Examples/test-suite/java/template_template_parameters_runme.java
index 613f9087c..244e12985 100644
--- a/Examples/test-suite/java/template_template_parameters_runme.java
+++ b/Examples/test-suite/java/template_template_parameters_runme.java
@@ -14,7 +14,7 @@ public class template_template_parameters_runme {
}
public static void main(String argv[]) {
- // Test first part
+ // Test part 1
ListFastBool listBool = new ListFastBool();
listBool.setItem(true);
boolean x_boolean = listBool.getAllotype();
@@ -27,7 +27,7 @@ public class template_template_parameters_runme {
if (listDouble.getItem() != 10.2)
throw new RuntimeException("Failed");
- // Test second part
+ // Test part 2
FloatTestStruct floatTestStruct = new FloatTestStruct();
FloatContainer2 floatContainer2 = floatTestStruct.getX();
floatContainer2.setX(8.1f);
@@ -41,6 +41,10 @@ public class template_template_parameters_runme {
IntTestStruct intTestStructReturned = template_template_parameters.TestStructContainer1Method(intTestStruct);
if (intTestStructReturned.getX().getX() != 101)
throw new RuntimeException("Failed");
+
+ // Test part 3
+ MyFootInt99 mfi99 = new MyFootInt99();
+ mfi99.OperatorPlusEquals(mfi99);
}
}
diff --git a/Examples/test-suite/java/template_template_template_parameters_runme.java b/Examples/test-suite/java/template_template_template_parameters_runme.java
new file mode 100644
index 000000000..519a9e068
--- /dev/null
+++ b/Examples/test-suite/java/template_template_template_parameters_runme.java
@@ -0,0 +1,36 @@
+
+
+import template_template_template_parameters.*;
+
+public class template_template_template_parameters_runme {
+
+ static {
+ try {
+ System.loadLibrary("template_template_template_parameters");
+ } catch (UnsatisfiedLinkError e) {
+ System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
+ System.exit(1);
+ }
+ }
+
+ public static void main(String argv[]) {
+ CustomAttrs custom_attrs = new CustomAttrs();
+ AC ac = new AC();
+ BAC bac = new BAC();
+ CBAC cbac = new CBAC();
+ DBAC dbac = new DBAC();
+
+ custom_attrs = ac.getAttributes();
+ custom_attrs = bac.getAttributes();
+ custom_attrs = cbac.getAttributes();
+ custom_attrs = dbac.getAttributes();
+
+ bac.BMethod(custom_attrs, ac);
+ cbac.BMethod(custom_attrs, ac);
+ dbac.BMethod(custom_attrs, ac);
+
+ cbac.CMethod(custom_attrs, bac);
+ dbac.DMethod(custom_attrs, bac);
+ }
+}
+