/trunk/Examples/test-suite/java/director_classic_runme.java
Java | 318 lines | 270 code | 34 blank | 14 comment | 7 complexity | ba007906c6422f5106af19b2d2d57366 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- import director_classic.*;
- public class director_classic_runme {
- static {
- try {
- System.loadLibrary("director_classic");
- } 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[])
- {
- {
- Person person = new Person();
- check(person, "Person");
- person.delete();
- }
- {
- Person person = new Child();
- check(person, "Child");
- person.delete();
- }
- {
- Person person = new GrandChild();
- check(person, "GrandChild");
- person.delete();
- }
- {
- Person person = new TargetLangPerson();
- check(person, "TargetLangPerson");
- person.delete();
- }
- {
- Person person = new TargetLangChild();
- check(person, "TargetLangChild");
- person.delete();
- }
- {
- Person person = new TargetLangGrandChild();
- check(person, "TargetLangGrandChild");
- person.delete();
- }
- // Semis - don't override id() in target language
- {
- Person person = new TargetLangSemiPerson();
- check(person, "Person");
- person.delete();
- }
- {
- Person person = new TargetLangSemiChild();
- check(person, "Child");
- person.delete();
- }
- {
- Person person = new TargetLangSemiGrandChild();
- check(person, "GrandChild");
- person.delete();
- }
- // Orphans - don't override id() in C++
- {
- Person person = new OrphanPerson();
- check(person, "Person");
- person.delete();
- }
- {
- Person person = new OrphanChild();
- check(person, "Child");
- person.delete();
- }
- {
- Person person = new TargetLangOrphanPerson();
- check(person, "TargetLangOrphanPerson");
- person.delete();
- }
- {
- Person person = new TargetLangOrphanChild();
- check(person, "TargetLangOrphanChild");
- person.delete();
- }
- // Duals - id() makes an upcall to the base id()
- {
- Person person = new TargetLangDualPerson();
- check(person, "TargetLangDualPerson + Person");
- person.delete();
- }
- {
- Person person = new TargetLangDualChild();
- check(person, "TargetLangDualChild + Child");
- person.delete();
- }
- {
- Person person = new TargetLangDualGrandChild();
- check(person, "TargetLangDualGrandChild + GrandChild");
- person.delete();
- }
- // Mix Orphans and Duals
- {
- Person person = new TargetLangDualOrphanPerson();
- check(person, "TargetLangDualOrphanPerson + Person");
- person.delete();
- }
- {
- Person person = new TargetLangDualOrphanChild();
- check(person, "TargetLangDualOrphanChild + Child");
- person.delete();
- }
- }
- static void check(Person person, String expected) {
- String ret;
- // Normal target language polymorphic call
- ret = person.id();
- if (debug)
- System.out.println(ret);
- if (!ret.equals(expected))
- throw new RuntimeException("Failed. Received: " + ret + " Expected: " + expected);
- // Polymorphic call from C++
- Caller caller = new Caller();
- caller.setCallback(person);
- ret = caller.call();
- if (debug)
- System.out.println(ret);
- if (!ret.equals(expected))
- throw new RuntimeException("Failed. Received: " + ret + " Expected: " + expected);
- // Polymorphic call of object created in target language and passed to C++ and back again
- Person baseclass = caller.baseClass();
- ret = baseclass.id();
- if (debug)
- System.out.println(ret);
- if (!ret.equals(expected))
- throw new RuntimeException("Failed. Received: " + ret + " Expected: " + expected);
- caller.resetCallback();
- if (debug)
- System.out.println("----------------------------------------");
- }
- static boolean debug = false;
- }
- class TargetLangPerson extends Person
- {
- public TargetLangPerson()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangPerson";
- return identifier;
- }
- }
- class TargetLangChild extends Child
- {
- public TargetLangChild()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangChild";
- return identifier;
- }
- }
- class TargetLangGrandChild extends GrandChild
- {
- public TargetLangGrandChild()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangGrandChild";
- return identifier;
- }
- }
- // Semis - don't override id() in target language
- class TargetLangSemiPerson extends Person
- {
- public TargetLangSemiPerson()
- {
- super();
- }
- // No id() override
- }
- class TargetLangSemiChild extends Child
- {
- public TargetLangSemiChild()
- {
- super();
- }
- // No id() override
- }
- class TargetLangSemiGrandChild extends GrandChild
- {
- public TargetLangSemiGrandChild()
- {
- super();
- }
- // No id() override
- }
- // Orphans - don't override id() in C++
- class TargetLangOrphanPerson extends OrphanPerson
- {
- public TargetLangOrphanPerson()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangOrphanPerson";
- return identifier;
- }
- }
- class TargetLangOrphanChild extends OrphanChild
- {
- public TargetLangOrphanChild()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangOrphanChild";
- return identifier;
- }
- }
- // Duals - id() makes an upcall to the base id()
- class TargetLangDualPerson extends Person
- {
- public TargetLangDualPerson()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangDualPerson + " + super.id();
- return identifier;
- }
- }
- class TargetLangDualChild extends Child
- {
- public TargetLangDualChild()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangDualChild + " + super.id();
- return identifier;
- }
- }
- class TargetLangDualGrandChild extends GrandChild
- {
- public TargetLangDualGrandChild()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangDualGrandChild + " + super.id();
- return identifier;
- }
- }
- // Mix Orphans and Duals
- class TargetLangDualOrphanPerson extends OrphanPerson
- {
- public TargetLangDualOrphanPerson()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangDualOrphanPerson + " + super.id();
- return identifier;
- }
- }
- class TargetLangDualOrphanChild extends OrphanChild
- {
- public TargetLangDualOrphanChild()
- {
- super();
- }
- public String id()
- {
- String identifier = "TargetLangDualOrphanChild + " + super.id();
- return identifier;
- }
- }