update swig on windows
This commit is contained in:
66
winx64/bin/swigwin-4.0.0/Examples/test-suite/java_enums.i
Normal file
66
winx64/bin/swigwin-4.0.0/Examples/test-suite/java_enums.i
Normal file
@@ -0,0 +1,66 @@
|
||||
|
||||
// This testcase uses the %javaconst directive to control how enums are initialised
|
||||
|
||||
%module java_enums
|
||||
|
||||
%include "enumtypeunsafe.swg"
|
||||
|
||||
// Some pragmas to add in an interface to the module class
|
||||
%pragma(java) moduleinterfaces="Serializable"
|
||||
%pragma(java) moduleimports=%{
|
||||
import java.io.*; // For Serializable
|
||||
%}
|
||||
%pragma(java) modulecode=%{
|
||||
public static final long serialVersionUID = 0x52151001; // Suppress ecj warning
|
||||
%}
|
||||
|
||||
|
||||
// Set default Java const code generation
|
||||
%javaconst(1);
|
||||
|
||||
// Change the default generation so that these enums are generated into an interface instead of a class
|
||||
%typemap(javaclassmodifiers) enum stuff "public interface"
|
||||
|
||||
%inline %{
|
||||
enum stuff { FIDDLE = 2*100, STICKS = 5+8, BONGO, DRUMS };
|
||||
%}
|
||||
|
||||
// Check that the enum typemaps are working by using a short for the enums instead of int
|
||||
%javaconst(0); // will create compile errors in runme file if short typemaps not used
|
||||
|
||||
namespace Space {
|
||||
%typemap(jtype) enum nonsense "short"
|
||||
%typemap(jstype) enum nonsense "short"
|
||||
%typemap(javain) enum nonsense "$javainput"
|
||||
%typemap(in) enum nonsense %{ $1 = (enum Space::nonsense)$input; %}
|
||||
%typemap(out) enum nonsense %{ $result = (jshort)$1; %}
|
||||
%typemap(jni) enum nonsense "jshort"
|
||||
%typemap(javaout) enum nonsense {
|
||||
return $jnicall;
|
||||
}
|
||||
}
|
||||
|
||||
%inline %{
|
||||
namespace Space {
|
||||
enum nonsense { POPPYCOCK, JUNK };
|
||||
nonsense test1(nonsense n) { return n; }
|
||||
enum nonsense test2(enum nonsense n) { return n; }
|
||||
}
|
||||
%}
|
||||
|
||||
// Test the %javaconstvalue directive for enums
|
||||
%{
|
||||
static const int FOUR = 4;
|
||||
%}
|
||||
|
||||
%javaconst(1);
|
||||
%javaconstvalue(4) Quattro;
|
||||
%inline %{
|
||||
enum Numero { Quattro = FOUR };
|
||||
%}
|
||||
|
||||
// Test boolean enums
|
||||
%inline %{
|
||||
typedef enum { PLAY = true, STOP = false } play_state;
|
||||
%}
|
||||
|
||||
Reference in New Issue
Block a user