00001 #ifndef xmogInc_javalangClass
00002 #define xmogInc_javalangClass
00003
00004 # if !defined(JMS_DECLSPEC )
00005 # if defined(_MSC_VER)
00006 # pragma message( "Relying on default definition of JMS_DECLSPEC " )
00007 # endif
00008
00009
00010 # define JMS_DECLSPEC
00011 # endif
00012
00013 namespace java
00014 {
00015 namespace io
00016 {
00017 class InputStream;
00018 }
00019 namespace lang
00020 {
00021 class Class;
00022 class Object;
00023 class String;
00024 namespace reflect
00025 {
00026 class Constructor;
00027 class Field;
00028 class Method;
00029 }
00030 }
00031 }
00032
00033 # include "java_io_Serializable.h"
00034
00035
00036 # if (XMOG_UNDEFINE_MEM_OPERATORS==1)
00037 # if defined(new)
00038 # undef new
00039 # endif
00040 # if defined(delete)
00041 # undef delete
00042 # endif
00043 # endif
00044
00086 class JMS_DECLSPEC java::lang::Class :
00087 public ::java::io::Serializable
00088 {
00089 public:
00090 enum
00091 {
00092 xmogDefaultFlags = xmog_base::GLOBAL,
00093 xmogMajorVersion = 3,
00094 xmogMinorVersion = 2,
00095 xmogPatchVersion = 9,
00096 xmogBuildNumber = 2047
00097 };
00098
00099 public:
00100
00101 typedef ::xmog_java_array_template< ::java::lang::Class > array1D;
00102
00103 typedef ::xmog_java_array_template< ::xmog_java_array_template< ::java::lang::Class > > array2D;
00104
00106
00123 Class( );
00124
00137 Class( const ::java::lang::Class & _rhs );
00138
00151 Class( jobject _local, xmog_flags f_xflags );
00152
00165 Class( const ::xmog_null & _null_instance );
00166
00177 Class( ::xmog_java_array * _arr, jint _index );
00178
00192 Class( const ::java::lang::Class & _rhs, ::xmog_localenv * p_lxenv );
00193
00205 XMOG_EXPLICIT Class( ::xmog_base * _delegate, bool _owns_delegate = true );
00206
00220 Class( ::xmog_java_ref * _cra, ::xmog_java_dynamic * _dynamic, xmog_flags f_xflags = xmogDefaultFlags );
00221
00228 ~Class( );
00229
00242 java::lang::Class operator =( const java::lang::Class & _rhs );
00243
00258 void operator delete( void * _ptr );
00259
00260 # if (XMOG_SUPPORTS_PLACEMENT_DELETE==1)
00276 void operator delete( void * ptr, void * loc );
00277 # endif
00278
00293 void * operator new( size_t _size );
00294
00295 # if (XMOG_SUPPORTS_PLACEMENT_NEW==1)
00313 void * operator new( size_t _size, void * _ptr );
00314 # endif
00315
00317
00345 bool desiredAssertionStatus( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00346
00348
00369 static ::java::lang::Class dyna_cast( const ::xmog_base & _rhs, ::xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmogDefaultFlags );
00370
00372
00407 static ::java::lang::Class forName( const ::java::lang::String & className, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00408
00441 ::xmog_java_array_template< ::java::lang::Class > getClasses( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00442
00458 ::java::lang::Class getComponentType( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00459
00490 ::java::lang::reflect::Constructor getConstructor( const ::xmog_java_array_template< ::java::lang::Class > & parameterTypes, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00491
00518 ::xmog_java_array_template< ::java::lang::reflect::Constructor > getConstructors( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00519
00548 ::xmog_java_array_template< ::java::lang::Class > getDeclaredClasses( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00549
00576 ::java::lang::reflect::Constructor getDeclaredConstructor( const ::xmog_java_array_template< ::java::lang::Class > & parameterTypes, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00577
00609 ::xmog_java_array_template< ::java::lang::reflect::Constructor > getDeclaredConstructors( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00610
00637 ::java::lang::reflect::Field getDeclaredField( const ::java::lang::String & name, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00638
00669 ::xmog_java_array_template< ::java::lang::reflect::Field > getDeclaredFields( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00670
00705 ::java::lang::reflect::Method getDeclaredMethod( const ::java::lang::String & name, const ::xmog_java_array_template< ::java::lang::Class > & parameterTypes, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00706
00741 ::xmog_java_array_template< ::java::lang::reflect::Method > getDeclaredMethods( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00742
00760 ::java::lang::Class getDeclaringClass( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00761
00803 ::java::lang::reflect::Field getField( const ::java::lang::String & name, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00804
00843 ::xmog_java_array_template< ::java::lang::reflect::Field > getFields( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00844
00892 ::xmog_java_array_template< ::java::lang::Class > getInterfaces( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00893
00946 ::java::lang::reflect::Method getMethod( const ::java::lang::String & name, const ::xmog_java_array_template< ::java::lang::Class > & parameterTypes, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00947
00984 ::xmog_java_array_template< ::java::lang::reflect::Method > getMethods( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00985
01018 jint getModifiers( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01019
01076 ::java::lang::String getName( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01077
01101 ::java::io::InputStream getResourceAsStream( const ::java::lang::String & name, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01102
01115 ::xmog_java_array_template< ::java::lang::Object > getSigners( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01116
01135 ::java::lang::Class getSuperclass( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01136
01138
01152 static ::xmog_java_class * get_class( );
01153
01162 static ::xmog_java_class * get_element_class( );
01163
01165
01178 bool isArray( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01179
01208 bool isAssignableFrom( const ::java::lang::Class & cls, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01209
01245 bool isInstance( const ::java::lang::Object & obj, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01246
01259 bool isInterface( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01260
01285 bool isPrimitive( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01286
01310 ::java::lang::Object newInstance( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01311
01330 ::java::lang::String toString( ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
01331
01333
01352 virtual ::xmog_java_class * xmog_get_java_peer( ::xmog_localenv * p_lxenv = NULL );
01354
01355 };
01356 #endif
01357