swig/Source/Modules1.1/java.h
Dave Beazley 743735cd92 Added Java
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@64 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2000-01-12 17:33:21 +00:00

89 lines
3.3 KiB
C++

// ------------------------------------------------------------------------
// A Java SWIG Language module
//
// ------------------------------------------------------------------------
class JAVA : public Language {
private:
char *module; // Name of the module
char *java_path;
char *package; // Name of the package
char *c_pkgstr; // Name of the package
char *jni_pkgstr; // Name of the package
char *shadow_classname;
char *jimport;
char *method_modifiers;
FILE *f_java;
FILE *f_shadow;
int shadow;
Hash shadow_classes;
String shadow_classdef;
char *shadow_name;
char *shadow_baseclass;
int classdef_emitted;
int shadow_classdef_emitted;
int have_default_constructor;
int native_func; // Set to 1 when wrapping a native function
int member_func; // Set to 1 when wrapping a member function
int jnic; // 1: use c syntax jni; 0: use c++ syntax jni
int finalize; // generate finalize methods
int useRegisterNatives; // Set to 1 when doing stuff with register natives
String registerNativesList;
public :
JAVA() {
module = NULL;
package = NULL;
java_path = "java";
f_java = f_shadow = NULL;
native_func = shadow = member_func = 0;
jimport = shadow_name = shadow_baseclass = NULL;
method_modifiers = "public final static";
jnic = -1;
useRegisterNatives=0;
finalize=0;
};
// Virtual functions required by the SWIG parser
void parse_args(int, char *argv[]);
void parse();
void add_native(char *, char *, DataType *, ParmList *);
void create_function(char *, char *, DataType *, ParmList *);
void link_variable(char *, char *, DataType *);
void declare_const(char *, char *, DataType *, char *);
void initialize(void);
void headers(void);
void close(void);
void set_module(char *,char **);
void create_command(char *, char *);
void pragma(char *lang, char *code, char *value);
void add_typedef(DataType *t, char *name);
void cpp_open_class(char *classname, char *rename, char *ctype, int strip);
void cpp_close_class();
void cpp_member_func(char *name, char *iname, DataType *t, ParmList *l);
void cpp_static_func(char *name, char *iname, DataType *t, ParmList *l);
void cpp_constructor(char *name, char *iname, ParmList *l);
void cpp_destructor(char *name, char *newname);
void cpp_class_decl(char *name, char *rename, char *type);
void cpp_inherit(char **baseclass, int);
void cpp_variable(char *name, char *iname, DataType *t);
void cpp_static_var(char *, char *, class DataType *);
void cpp_declare_const(char *name, char *iname, DataType *type, char *value);
/* Java Module methods */
void emit_classdef();
void emit_shadow_classdef();
char *JNICALL(char *func);
char *JNICALL(String& func);
char *SwigTcToJniType(DataType *t, int ret);
char *SwigTcToJavaType(DataType *t, int ret, int inShadow);
char *SwigTcToJniScalarType(DataType *t);
char *JavaTypeFromTypemap(char *op, char *lang, DataType *t, char *pname);
char *makeValidJniName(char *name);
char *JavaMethodSignature(DataType *t, int ret, int inShadow);
void writeRegisterNatives();
};