From: William F. <wsf...@us...> - 2004-06-03 22:38:16
|
Update of /cvsroot/swig/SWIG/Source/Modules In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9888 Modified Files: java.cxx Log Message: javagetcptr and javaptrconstructormodifiers typemap replaced by the javabody/javabody_derived typemap javaclassmodifiers typemap now contains the class type jniclassclassmodifiers and moduleclassmodifiers pragmas now contain the class type $module special variable support Index: java.cxx =================================================================== RCS file: /cvsroot/swig/SWIG/Source/Modules/java.cxx,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** java.cxx 31 May 2004 07:24:54 -0000 1.60 --- java.cxx 3 Jun 2004 22:38:05 -0000 1.61 *************** *** 50,54 **** bool member_func_flag; // flag set when wrapping a member function - String *module; // module name String *imclass_name; // intermediary class name String *module_class_name; // module class name --- 50,53 ---- *************** *** 256,262 **** virtual int top(Node *n) { - // Make the intermediary class and module class names. The - // intermediary class name can be set in the module directive. Node* optionsnode = Getattr( Getattr(n,"module"), "options"); --- 255,260 ---- virtual int top(Node *n) { + // Get any options set in the module directive Node* optionsnode = Getattr( Getattr(n,"module"), "options"); *************** *** 293,297 **** f_runtime_h = NewFile(outfile_h,"w"); if (!f_runtime_h) { ! Printf(stderr,"*** Can't open '%s'\n", outfile_h); SWIG_exit(EXIT_FAILURE); } --- 291,295 ---- f_runtime_h = NewFile(outfile_h,"w"); if (!f_runtime_h) { ! Printf(stderr,"Unable to open %s\n", outfile_h); SWIG_exit(EXIT_FAILURE); } *************** *** 314,317 **** --- 312,316 ---- swig_types_hash = NewHash(); + // Make the intermediary class and module class names. The intermediary class name can be set in the module directive. if (!imclass_name) { imclass_name = NewStringf("%sJNI", Getattr(n,"name")); *************** *** 325,329 **** } - module = Copy(Getattr(n,"name")); imclass_class_code = NewString(""); proxy_class_def = NewString(""); --- 324,327 ---- *************** *** 332,341 **** imclass_baseclass = NewString(""); imclass_interfaces = NewString(""); ! imclass_class_modifiers = NewString(""); // package access only to the intermediary class by default module_class_code = NewString(""); module_baseclass = NewString(""); module_interfaces = NewString(""); module_imports = NewString(""); ! module_class_modifiers = NewString("public"); imclass_imports = NewString(""); imclass_cppcasts_code = NewString(""); --- 330,339 ---- imclass_baseclass = NewString(""); imclass_interfaces = NewString(""); ! imclass_class_modifiers = NewString(""); module_class_code = NewString(""); module_baseclass = NewString(""); module_interfaces = NewString(""); module_imports = NewString(""); ! module_class_modifiers = NewString(""); imclass_imports = NewString(""); imclass_cppcasts_code = NewString(""); *************** *** 359,369 **** if (directorsEnabled()) { Printf(f_runtime,"#define SWIG_DIRECTORS\n"); - } ! /* Emit initial director header and director code: */ ! if (directorsEnabled()) { Swig_banner(f_directors_h); ! Printf(f_directors_h, "#ifndef SWIG_%s_WRAP_H_\n", module); ! Printf(f_directors_h, "#define SWIG_%s_WRAP_H_\n\n", module); Printf(f_directors, "\n\n"); --- 357,365 ---- if (directorsEnabled()) { Printf(f_runtime,"#define SWIG_DIRECTORS\n"); ! /* Emit initial director header and director code: */ Swig_banner(f_directors_h); ! Printf(f_directors_h, "#ifndef SWIG_%s_WRAP_H_\n", module_class_name); ! Printf(f_directors_h, "#define SWIG_%s_WRAP_H_\n\n", module_class_name); Printf(f_directors, "\n\n"); *************** *** 429,433 **** if (Len(imclass_class_modifiers) > 0) Printf(f_im, "%s ", imclass_class_modifiers); ! Printf(f_im, "class %s ", imclass_name); if (imclass_baseclass && *Char(imclass_baseclass)) --- 425,429 ---- if (Len(imclass_class_modifiers) > 0) Printf(f_im, "%s ", imclass_class_modifiers); ! Printf(f_im, "%s ", imclass_name); if (imclass_baseclass && *Char(imclass_baseclass)) *************** *** 438,441 **** --- 434,438 ---- // Add the intermediary class methods + Replaceall(imclass_class_code, "$module", module_class_name); Printv(f_im, imclass_class_code, NIL); Printv(f_im, imclass_cppcasts_code, NIL); *************** *** 479,483 **** if (Len(module_class_modifiers) > 0) Printf(f_module, "%s ", module_class_modifiers); ! Printf(f_module, "class %s ", module_class_name); if (module_baseclass && *Char(module_baseclass)) --- 476,480 ---- if (Len(module_class_modifiers) > 0) Printf(f_module, "%s ", module_class_modifiers); ! Printf(f_module, "%s ", module_class_name); if (module_baseclass && *Char(module_baseclass)) *************** *** 494,497 **** --- 491,497 ---- Printf(f_module, "{\n"); + Replaceall(module_class_code, "$module", module_class_name); + Replaceall(module_class_constants_code, "$module", module_class_name); + // Add the wrapper methods Printv(f_module, module_class_code, NIL); *************** *** 521,527 **** Printf(f_module, "%s\n", module_imports); ! if (Len(module_class_modifiers) > 0) ! Printf(f_module, "%s ", module_class_modifiers); ! Printf(f_module, "interface %sConstants {\n", module_class_name); // Write out all the global constants --- 521,525 ---- Printf(f_module, "%s\n", module_imports); ! Printf(f_module, "public interface %sConstants {\n", module_class_name); // Write out all the global constants *************** *** 547,561 **** } - /* Close all of the files */ - Dump(f_header,f_runtime); - - if (directorsEnabled()) { - Dump(f_directors, f_runtime); - Dump(f_directors_h, f_runtime_h); - - Printf(f_runtime_h, "\n"); - Printf(f_runtime_h, "#endif\n"); - } - Delete(swig_types_hash); swig_types_hash = NULL; Delete(imclass_name); imclass_name = NULL; --- 545,548 ---- *************** *** 585,596 **** emitted_connect = false; ! if (f_runtime_h) { Close(f_runtime_h); Delete(f_runtime_h); f_runtime_h = NULL; } - Delete(f_directors); f_directors = NULL; - Delete(f_directors_h); f_directors_h = NULL; - Dump(f_wrappers,f_runtime); Wrapper_pretty_print(f_init,f_runtime); --- 572,591 ---- emitted_connect = false; ! /* Close all of the files */ ! Dump(f_header,f_runtime); ! ! if (directorsEnabled()) { ! Dump(f_directors, f_runtime); ! Dump(f_directors_h, f_runtime_h); ! ! Printf(f_runtime_h, "\n"); ! Printf(f_runtime_h, "#endif\n"); ! Close(f_runtime_h); Delete(f_runtime_h); f_runtime_h = NULL; + Delete(f_directors); f_directors = NULL; + Delete(f_directors_h); f_directors_h = NULL; } Dump(f_wrappers,f_runtime); Wrapper_pretty_print(f_init,f_runtime); *************** *** 758,761 **** --- 753,757 ---- Swig_typemap_attach_parms("jtype", l, f); + /* Get return types */ if ((tm = Swig_typemap_lookup_new("jni",n,"",0))) { Printf(c_return_type,"%s", tm); *************** *** 1113,1117 **** ";\n" : "", ! typemapLookup("javagetcptr", typemap_lookup_type, WARN_NONE), // getCPtr method (will probably never be used, but what the heck) typemapLookup("javacode", typemap_lookup_type, WARN_NONE), // extra Java code "}\n", --- 1109,1113 ---- ";\n" : "", ! typemapLookup("javabody", typemap_lookup_type, WARN_JAVA_TYPEMAP_JAVABODY_UNDEF), // main body of class typemapLookup("javacode", typemap_lookup_type, WARN_NONE), // extra Java code "}\n", *************** *** 1353,1356 **** --- 1349,1362 ---- /* ----------------------------------------------------------------------------- + * insertDirective() + * ----------------------------------------------------------------------------- */ + + virtual int insertDirective(Node *n) { + String *code = Getattr(n,"code"); + Replaceall(code, "$module", module_class_name); + return Language::insertDirective(n); + } + + /* ----------------------------------------------------------------------------- * pragmaDirective() * *************** *** 1517,1521 **** "\n", typemapLookup("javaclassmodifiers", typemap_lookup_type, WARN_JAVA_TYPEMAP_CLASSMOD_UNDEF), // Class modifiers ! " class $javaclassname", // Class name and bases (derived || *Char(pure_baseclass)) ? " extends " : --- 1523,1527 ---- "\n", typemapLookup("javaclassmodifiers", typemap_lookup_type, WARN_JAVA_TYPEMAP_CLASSMOD_UNDEF), // Class modifiers ! " $javaclassname", // Class name and bases (derived || *Char(pure_baseclass)) ? " extends " : *************** *** 1527,1544 **** "", pure_interfaces, ! " {\n", ! " private long swigCPtr;\n", // Member variables for memory handling ! derived ? ! "" : ! " protected boolean swigCMemOwn;\n", ! "\n", ! " ", ! typemapLookup("javaptrconstructormodifiers", typemap_lookup_type, WARN_JAVA_TYPEMAP_PTRCONSTMOD_UNDEF), // pointer constructor modifiers ! " $javaclassname(long cPtr, boolean cMemoryOwn) {\n", // Constructor used for wrapping pointers ! derived ? ! " super($imclassname.SWIG$javaclassnameTo$baseclass(cPtr), cMemoryOwn);\n" : ! " swigCMemOwn = cMemoryOwn;\n", ! " swigCPtr = cPtr;\n", ! " }\n", NIL); --- 1533,1540 ---- "", pure_interfaces, ! " {", ! derived ? ! typemapLookup("javabody_derived", typemap_lookup_type, WARN_JAVA_TYPEMAP_JAVABODY_UNDEF) : // main body of class ! typemapLookup("javabody", typemap_lookup_type, WARN_JAVA_TYPEMAP_JAVABODY_UNDEF), // main body of class NIL); *************** *** 1590,1596 **** Delete(destruct); ! // Emit various other methods Printv(proxy_class_def, - typemapLookup("javagetcptr", typemap_lookup_type, WARN_JAVA_TYPEMAP_GETCPTR_UNDEF), // getCPtr method typemapLookup("javacode", typemap_lookup_type, WARN_NONE), // extra Java code "\n", --- 1586,1591 ---- Delete(destruct); ! // Emit extra user code Printv(proxy_class_def, typemapLookup("javacode", typemap_lookup_type, WARN_NONE), // extra Java code "\n", *************** *** 1609,1629 **** Replaceall(proxy_class_def, "$javaclassname", proxy_class_name); ! Replaceall(proxy_class_def, "$baseclass", baseclass); ! Replaceall(proxy_class_code, "$baseclass", baseclass); ! ! Replaceall(proxy_class_def, "$imclassname", imclass_name); ! Replaceall(proxy_class_code, "$imclassname", imclass_name); // Add code to do C++ casting to base class (only for classes in an inheritance hierarchy) if(derived){ ! Printv(imclass_cppcasts_code," public final static native long ", ! "SWIG$javaclassnameTo$baseclass(long jarg1);\n", ! NIL); Replaceall(imclass_cppcasts_code, "$javaclassname", proxy_class_name); - Replaceall(imclass_cppcasts_code, "$baseclass", baseclass); Printv(upcasts_code, ! "JNIEXPORT jlong JNICALL Java_$jnipackage$imimclass_SWIG$imclazznameTo$imbaseclass", "(JNIEnv *jenv, jclass jcls, jlong jarg1) {\n", " jlong baseptr = 0;\n" --- 1604,1618 ---- Replaceall(proxy_class_def, "$javaclassname", proxy_class_name); ! Replaceall(proxy_class_def, "$module", module_class_name); ! Replaceall(proxy_class_code, "$module", module_class_name); // Add code to do C++ casting to base class (only for classes in an inheritance hierarchy) if(derived){ ! Printv(imclass_cppcasts_code," public final static native long SWIG$javaclassnameUpcast(long jarg1);\n", NIL); Replaceall(imclass_cppcasts_code, "$javaclassname", proxy_class_name); Printv(upcasts_code, ! "JNIEXPORT jlong JNICALL Java_$jnipackage$imimclass_SWIG$imclazznameUpcast", "(JNIEnv *jenv, jclass jcls, jlong jarg1) {\n", " jlong baseptr = 0;\n" *************** *** 1638,1643 **** String *imimclass = makeValidJniName(imclass_name); String *imclazzname = makeValidJniName(proxy_class_name); - String *imbaseclass = makeValidJniName(baseclass); - Replaceall(upcasts_code, "$imbaseclass", imbaseclass); Replaceall(upcasts_code, "$cbaseclass", c_baseclass); Replaceall(upcasts_code, "$imclazzname", imclazzname); --- 1627,1630 ---- *************** *** 1646,1650 **** Replaceall(upcasts_code, "$imimclass", imimclass); - Delete(imbaseclass); Delete(imclazzname); Delete(imimclass); --- 1633,1636 ---- *************** *** 1703,1706 **** --- 1689,1695 ---- emitProxyClassDefAndCPPCasts(n); + Replaceall(proxy_class_def, "$module", module_class_name); + Replaceall(proxy_class_code, "$module", module_class_name); + Replaceall(proxy_class_constants_code, "$module", module_class_name); Printv(f_proxy, proxy_class_def, proxy_class_code, NIL); *************** *** 1863,1867 **** emit_mark_varargs(l); ! int gencomma = !static_flag; /* Output each parameter */ --- 1852,1856 ---- emit_mark_varargs(l); ! int gencomma = !static_flag; /* Output each parameter */ *************** *** 1934,1938 **** Replaceall(tm,"$owner","false"); substituteClassname(t, tm); - Replaceall(tm, "$imclassname", imclass_name); Replaceall(tm, "$jnicall", imcall); } else { --- 1923,1926 ---- *************** *** 2165,2169 **** * The intermediary class methods are thus mangled when overloaded to give * a unique name. */ - String *overloaded_name = NewStringf("%s", Getattr(n,"sym:name")); --- 2153,2156 ---- *************** *** 2298,2302 **** Replaceall(tm,"$owner","false"); substituteClassname(t, tm); - Replaceall(tm, "$imclassname", imclass_name); Replaceall(tm, "$jnicall", imcall); } else { --- 2285,2288 ---- *************** *** 2516,2520 **** "\n", typemapLookup("javaclassmodifiers", type, WARN_JAVA_TYPEMAP_CLASSMOD_UNDEF), // Class modifiers ! " class $javaclassname", // Class name and bases *Char(pure_baseclass) ? " extends " : --- 2502,2506 ---- "\n", typemapLookup("javaclassmodifiers", type, WARN_JAVA_TYPEMAP_CLASSMOD_UNDEF), // Class modifiers ! " $javaclassname", // Class name and bases *Char(pure_baseclass) ? " extends " : *************** *** 2525,2541 **** "", pure_interfaces, ! " {\n", ! " private long swigCPtr;\n", ! "\n", ! " ", ! typemapLookup("javaptrconstructormodifiers", type, WARN_JAVA_TYPEMAP_PTRCONSTMOD_UNDEF), // pointer constructor modifiers ! " $javaclassname(long cPtr, boolean bFutureUse) {\n", // Constructor used for wrapping pointers ! " swigCPtr = cPtr;\n", ! " }\n", ! "\n", ! " protected $javaclassname() {\n", // Default constructor ! " swigCPtr = 0;\n", ! " }\n", ! typemapLookup("javagetcptr", type, WARN_JAVA_TYPEMAP_GETCPTR_UNDEF), // getCPtr method typemapLookup("javacode", type, WARN_NONE), // extra Java code "}\n", --- 2511,2516 ---- "", pure_interfaces, ! " {", ! typemapLookup("javabody", type, WARN_JAVA_TYPEMAP_JAVABODY_UNDEF), // main body of class typemapLookup("javacode", type, WARN_NONE), // extra Java code "}\n", *************** *** 2543,2551 **** NIL); ! Replaceall(swigtype, "$javaclassname", classname); ! Printv(f_swigtype, swigtype, NIL); ! Close(f_swigtype); ! Delete(swigtype); } --- 2518,2527 ---- NIL); ! Replaceall(swigtype, "$javaclassname", classname); ! Replaceall(swigtype, "$module", module_class_name); ! Printv(f_swigtype, swigtype, NIL); ! Close(f_swigtype); ! Delete(swigtype); } *************** *** 3126,3130 **** if (din != NULL) { ! Replaceall(din, "$imclassname", imclass_name); Replaceall(din, "$javaclassname", canon_type); Replaceall(din, "$jniinput", ln); --- 3102,3106 ---- if (din != NULL) { ! Replaceall(din, "$module", module_class_name); Replaceall(din, "$javaclassname", canon_type); Replaceall(din, "$jniinput", ln); |