mirror of https://github.com/swig/swig
73 lines
1.8 KiB
Java
73 lines
1.8 KiB
Java
|
|
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;
|
|
}
|
|
}
|
|
|