00001 #ifndef xmogInc_javalangreflectArray
00002 #define xmogInc_javalangreflectArray
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 lang
00016 {
00017 class Class;
00018 class Object;
00019 namespace reflect
00020 {
00021 class Array;
00022 }
00023 }
00024 }
00025
00026 # include "java_lang_Object.h"
00027
00028
00029 # if (XMOG_UNDEFINE_MEM_OPERATORS==1)
00030 # if defined(new)
00031 # undef new
00032 # endif
00033 # if defined(delete)
00034 # undef delete
00035 # endif
00036 # endif
00037
00053 class JMS_DECLSPEC java::lang::reflect::Array :
00054 public virtual ::java::lang::Object
00055 {
00056 public:
00057 enum
00058 {
00059 xmogDefaultFlags = xmog_base::GLOBAL,
00060 xmogMajorVersion = 3,
00061 xmogMinorVersion = 2,
00062 xmogPatchVersion = 9,
00063 xmogBuildNumber = 2047
00064 };
00065
00066 public:
00067
00068 typedef ::xmog_java_array_template< ::java::lang::reflect::Array > array1D;
00069
00070 typedef ::xmog_java_array_template< ::xmog_java_array_template< ::java::lang::reflect::Array > > array2D;
00071
00073
00090 Array( );
00091
00104 Array( const ::java::lang::reflect::Array & _rhs );
00105
00118 Array( jobject _local, xmog_flags f_xflags );
00119
00132 Array( const ::xmog_null & _null_instance );
00133
00144 Array( ::xmog_java_array * _arr, jint _index );
00145
00159 Array( const ::java::lang::reflect::Array & _rhs, ::xmog_localenv * p_lxenv );
00160
00172 XMOG_EXPLICIT Array( ::xmog_base * _delegate, bool _owns_delegate = true );
00173
00187 Array( ::xmog_java_ref * _cra, ::xmog_java_dynamic * _dynamic, xmog_flags f_xflags = xmogDefaultFlags );
00188
00195 ~Array( );
00196
00209 java::lang::reflect::Array operator =( const java::lang::reflect::Array & _rhs );
00210
00225 void operator delete( void * _ptr );
00226
00227 # if (XMOG_SUPPORTS_PLACEMENT_DELETE==1)
00243 void operator delete( void * ptr, void * loc );
00244 # endif
00245
00260 void * operator new( size_t _size );
00261
00262 # if (XMOG_SUPPORTS_PLACEMENT_NEW==1)
00280 void * operator new( size_t _size, void * _ptr );
00281 # endif
00282
00303 static ::java::lang::reflect::Array dyna_cast( const ::xmog_base & _rhs, ::xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmogDefaultFlags );
00304
00306
00324 static ::java::lang::Object get( const ::java::lang::Object & _array, jint index, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00325
00339 static bool getBoolean( const ::java::lang::Object & _array, jint index, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00340
00354 static jbyte getByte( const ::java::lang::Object & _array, jint index, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00355
00369 static jchar getChar( const ::java::lang::Object & _array, jint index, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00370
00384 static jdouble getDouble( const ::java::lang::Object & _array, jint index, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00385
00399 static jfloat getFloat( const ::java::lang::Object & _array, jint index, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00400
00414 static jint getInt( const ::java::lang::Object & _array, jint index, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00415
00427 static jint getLength( const ::java::lang::Object & _array, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00428
00442 static jlong getLong( const ::java::lang::Object & _array, jint index, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00443
00457 static jshort getShort( const ::java::lang::Object & _array, jint index, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00458
00460
00474 static ::xmog_java_class * get_class( );
00475
00484 static ::xmog_java_class * get_element_class( );
00485
00487
00512 static ::java::lang::Object newInstance( const ::java::lang::Class & componentType, jint length, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00513
00545 static ::java::lang::Object newInstance( const ::java::lang::Class & componentType, const ::xmog_java_int_array & dimensions, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00546
00565 static void set( const ::java::lang::Object & _array, jint index, const ::java::lang::Object & value, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00566
00581 static void setBoolean( const ::java::lang::Object & _array, jint index, bool z, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00582
00597 static void setByte( const ::java::lang::Object & _array, jint index, jbyte b, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00598
00613 static void setChar( const ::java::lang::Object & _array, jint index, jchar c, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00614
00629 static void setDouble( const ::java::lang::Object & _array, jint index, jdouble d, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00630
00645 static void setFloat( const ::java::lang::Object & _array, jint index, jfloat f, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00646
00661 static void setInt( const ::java::lang::Object & _array, jint index, jint i, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00662
00677 static void setLong( const ::java::lang::Object & _array, jint index, jlong l, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00678
00693 static void setShort( const ::java::lang::Object & _array, jint index, jshort s, ::xmog_localenv * p_xenv = NULL, xmog_flags f_xflags = xmogDefaultFlags );
00694
00696
00715 virtual ::xmog_java_class * xmog_get_java_peer( ::xmog_localenv * p_lxenv = NULL );
00717
00718 };
00719 #endif
00720