import director_basic.*; public class director_basic_runme { static { try { System.loadLibrary("director_basic"); } 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_basic_MyFoo a = new director_basic_MyFoo(); if (!a.ping().equals("director_basic_MyFoo::ping()")) { throw new RuntimeException ( "a.ping()" ); } if (!a.pong().equals("Foo::pong();director_basic_MyFoo::ping()")) { throw new RuntimeException ( "a.pong()" ); } Foo b = new Foo(); if (!b.ping().equals("Foo::ping()")) { throw new RuntimeException ( "b.ping()" ); } if (!b.pong().equals("Foo::pong();Foo::ping()")) { throw new RuntimeException ( "b.pong()" ); } A1 a1 = new A1(1, false); a1.delete(); { MyOverriddenClass my = new MyOverriddenClass(); my.expectNull = true; if (MyClass.call_pmethod(my, null) != null) throw new RuntimeException("null pointer marshalling problem"); Bar myBar = new Bar(); my.expectNull = false; Bar myNewBar = MyClass.call_pmethod(my, myBar); if (myNewBar == null) throw new RuntimeException("non-null pointer marshalling problem"); myNewBar.setX(10); } } } class director_basic_MyFoo extends Foo { public String ping() { return "director_basic_MyFoo::ping()"; } } class MyOverriddenClass extends MyClass { public boolean expectNull = false; public boolean nonNullReceived = false; public Bar pmethod(Bar b) { if ( expectNull && (b != null) ) throw new RuntimeException("null not received as expected"); return b; } }