1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
import java_director_ptrclass.*;
public class java_director_ptrclass_runme {
static {
try {
System.loadLibrary("java_director_ptrclass");
} 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[]) {
Foo f = new Foo();
Foo ft = new TouchingFoo();
Baz b = new Baz();
if (b.GetTouched()) {
throw new RuntimeException ( "Baz should not have been touched yet." );
}
Baz b2 = f.FinalMaybeTouch(b);
if (b2.GetTouched() || b.GetTouched()) {
throw new RuntimeException ( "Baz should not have been touched by Foo." );
}
Baz b3 = ft.FinalMaybeTouch(b);
if (!b.GetTouched() || !b3.GetTouched() || !b2.GetTouched()) {
throw new RuntimeException ( "Baz was not touched by TouchingFoo. This" +
" might mean the directorin typemap is not" +
" parsing the typemap(jstype, Bar) in its" +
" 'descriptor' kwarg correctly." );
}
}
}
class TouchingFoo extends Foo {
@Override
public Baz MaybeTouch(Baz baz_ptr) {
baz_ptr.SetTouched();
return baz_ptr;
}
}
|