diff --git a/SWIG/Examples/test-suite/csharp/director_classic_runme.cs b/SWIG/Examples/test-suite/csharp/director_classic_runme.cs index 28a304dfb..7220437d5 100755 --- a/SWIG/Examples/test-suite/csharp/director_classic_runme.cs +++ b/SWIG/Examples/test-suite/csharp/director_classic_runme.cs @@ -75,6 +75,35 @@ public class runme check(person, "TargetLangOrphanChild"); person.Dispose(); } + + // Duals - id() makes an upcall to the base id() + { + Person person = new TargetLangDualPerson(); + check(person, "TargetLangDualPerson + Person"); + person.Dispose(); + } + { + Person person = new TargetLangDualChild(); + check(person, "TargetLangDualChild + Child"); + person.Dispose(); + } + { + Person person = new TargetLangDualGrandChild(); + check(person, "TargetLangDualGrandChild + GrandChild"); + person.Dispose(); + } + + // Mix Orphans and Duals + { + Person person = new TargetLangDualOrphanPerson(); + check(person, "TargetLangDualOrphanPerson + Person"); + person.Dispose(); + } + { + Person person = new TargetLangDualOrphanChild(); + check(person, "TargetLangDualOrphanChild + Child"); + person.Dispose(); + } } static void check(Person person, String expected) { @@ -209,4 +238,77 @@ class TargetLangOrphanChild : OrphanChild } } + +// Duals - id() makes an upcall to the base id() +class TargetLangDualPerson : Person +{ + public TargetLangDualPerson() + : base() + { + } + + public override String id() + { + String identifier = "TargetLangDualPerson + " + base.id(); + return identifier; + } +} + +class TargetLangDualChild : Child +{ + public TargetLangDualChild() + : base() + { + } + + public override String id() + { + String identifier = "TargetLangDualChild + " + base.id(); + return identifier; + } +} + +class TargetLangDualGrandChild : GrandChild +{ + public TargetLangDualGrandChild() + : base() + { + } + + public override String id() + { + String identifier = "TargetLangDualGrandChild + " + base.id(); + return identifier; + } +} + +// Mix Orphans and Duals +class TargetLangDualOrphanPerson : OrphanPerson +{ + public TargetLangDualOrphanPerson() + : base() + { + } + + public override String id() + { + String identifier = "TargetLangDualOrphanPerson + " + base.id(); + return identifier; + } +} + +class TargetLangDualOrphanChild : OrphanChild +{ + public TargetLangDualOrphanChild() + : base() + { + } + + public override String id() + { + String identifier = "TargetLangDualOrphanChild + " + base.id(); + return identifier; + } +} + } diff --git a/SWIG/Examples/test-suite/java/director_classic_runme.java b/SWIG/Examples/test-suite/java/director_classic_runme.java index 7201fa17f..50ea2b8d3 100755 --- a/SWIG/Examples/test-suite/java/director_classic_runme.java +++ b/SWIG/Examples/test-suite/java/director_classic_runme.java @@ -81,6 +81,35 @@ public class director_classic_runme { 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) { @@ -215,3 +244,75 @@ class TargetLangOrphanChild extends OrphanChild } } +// 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; + } +} +