swig/Examples/test-suite/java/cpp11_alias_template_inheri...

39 lines
1.6 KiB
Java

import cpp11_alias_template_inheritance.*;
public class cpp11_alias_template_inheritance_runme {
static {
try {
System.loadLibrary("cpp11_alias_template_inheritance");
} 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);
}
}
static void check(int got, int expected) {
if (got != expected)
throw new RuntimeException("Expected " + expected + " but got " + got);
}
public static void main(String argv[])
{
// Member imported through the identity alias template base 'XIdentity<X>'.
check(new DerivedX().m(), 11);
// Inherited enum imported through the identity alias template base 'PaletteIdentity<Palette>', and
// the alias used as a function parameter type. The enumerators wrap as Palette.Color constants.
check(Palette.Color.RED.swigValue(), 0);
check(Palette.Color.GREEN.swigValue(), 1);
check(Palette.Color.BLUE.swigValue(), 2);
check(cpp11_alias_template_inheritance.palette_to_int(Palette.Color.GREEN), 1);
// Overload imported through the alias template base 'AdderAlias<int>' merges with the local overload.
AliasCalcInt ac = new AliasCalcInt();
check(ac.add(5), 105); // local single-arg overload
check(ac.add(2, 3), 5); // imported two-arg overload via using through the alias template
// Inherited constructor reached through the identity alias template base 'BaseCIdentity<BaseC>'.
check(new DerivedC(42).getValue(), 42);
}
}