| 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; | |
| } | |
| } | |