diff --git a/Examples/test-suite/director_nested_class.i b/Examples/test-suite/director_nested_class.i new file mode 100644 index 000000000..99eecfcc8 --- /dev/null +++ b/Examples/test-suite/director_nested_class.i @@ -0,0 +1,16 @@ +%module(directors="1") director_nested_class + + +%feature("director") DirectorOuter::DirectorInner; + +%inline %{ +struct DirectorOuter { + struct DirectorInner { + virtual ~DirectorInner() {} + virtual int vmethod(int input) const = 0; + }; + static int callMethod(const DirectorInner &di, int value) { + return di.vmethod(value); + } +}; +%} diff --git a/Examples/test-suite/java/director_nested_class_runme.java b/Examples/test-suite/java/director_nested_class_runme.java new file mode 100644 index 000000000..5d330fb46 --- /dev/null +++ b/Examples/test-suite/java/director_nested_class_runme.java @@ -0,0 +1,30 @@ + +import director_nested_class.*; + +public class director_nested_class_runme { + + static { + try { + System.loadLibrary("director_nested_class"); + } 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[]) { + + director_nested_class_Derived d = new director_nested_class_Derived(); + + if (DirectorOuter.callMethod(d, 999) != 9990) { + throw new RuntimeException("callMethod(999) failed"); + } + } +} + +class director_nested_class_Derived extends DirectorOuter.DirectorInner { + public int vmethod(int input) { + return input * 10; + } +} +