00001
00002
00003
00004
00005 #ifndef xmog_java_method_inc
00006 #define xmog_java_method_inc
00007
00008
00009 class xmog_java_class;
00010
00011
00012 #include "xmog_java_dynamic.h"
00013
00014
00037 class XMOG_DECLSPEC xmog_java_method : public xmog_java_dynamic
00038 {
00039 private:
00040
00047 jmethodID mid_;
00048
00052 xmog_java_class * clazz_;
00053
00059 xmog_java_method * next_;
00060
00064 char * name_;
00065
00069 char * type_;
00070
00074 bool bStatic_;
00075
00079 bool bIndirect_;
00080
00081 public:
00082
00083 friend class xmog_java_class;
00084
00093 xmog_java_method( xmog_java_class * clazz, jmethodID mid, bool bStatic = false, bool bIndirect = false );
00094
00104 xmog_java_method( xmog_java_class * clazz, const char * name, const char * type, bool bStatic = false, bool bIndirect = false );
00105
00111 xmog_java_method( const xmog_java_method & rhs );
00112
00113 ~xmog_java_method();
00114
00119 void * operator new ( size_t );
00120
00125 void operator delete( void * );
00126
00130 xmog_java_method * next();
00131
00135 xmog_java_class * clazz();
00136
00143 const char * name();
00144
00151 const char * type();
00152
00156 bool is_static() const;
00157
00164 void set_methodID( jmethodID mid );
00165
00172 int initializeMethodID( xmog_localenv * env );
00173
00177 jmethodID get_methodID();
00178
00185 jobjectArray get_argument_array( xmog_java_values * values, xmog_localenv * env = NULL );
00186
00195 virtual bool get_bool( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00196
00205 virtual jboolean get_jboolean( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00206
00215 virtual jbyte get_byte( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00216
00225 virtual jchar get_char( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00226
00235 virtual jdouble get_double( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00236
00245 virtual jfloat get_float( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00246
00255 virtual jint get_int( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00256
00265 virtual jlong get_long( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00266
00275 virtual jshort get_short( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00276
00285 virtual jobject get_jobject( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = xmog_base::GLOBAL ) ;
00286
00287 virtual void get_void( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00288
00289 virtual void set_bool( xmog_base * obj, bool b, xmog_localenv * env = NULL ) ;
00290
00291 virtual void set_jboolean( xmog_base * obj, jboolean b, xmog_localenv * env = NULL ) ;
00292
00293 virtual void set_byte( xmog_base * obj, jbyte b, xmog_localenv * env = NULL ) ;
00294
00295 virtual void set_char( xmog_base * obj, jchar ch, xmog_localenv * env = NULL ) ;
00296
00297 virtual void set_double( xmog_base * obj, jdouble d, xmog_localenv * env = NULL ) ;
00298
00299 virtual void set_float( xmog_base * obj, jfloat f, xmog_localenv * env = NULL ) ;
00300
00301 virtual void set_int( xmog_base * obj, jint i, xmog_localenv * env = NULL ) ;
00302
00303 virtual void set_long( xmog_base * obj, jlong l, xmog_localenv * env = NULL ) ;
00304
00305 virtual void set_short( xmog_base * obj, jshort sh, xmog_localenv * env = NULL ) ;
00306
00307 virtual void set_jobject( xmog_base * obj, jobject o, xmog_localenv * env = NULL ) ;
00308
00317 void call_remote( xmog_remote_java_value & result, int mid, xmog_base * base, xmog_java_values * args, xmog_localenv * env );
00318 };
00319
00320
00321 #endif