You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by va...@apache.org on 2009/10/12 03:01:48 UTC

svn commit: r824210 - in /lucene/pylucene/trunk/jcc: ./ _jcc/java/io/ _jcc/java/lang/ _jcc/java/lang/reflect/

Author: vajda
Date: Mon Oct 12 01:01:47 2009
New Revision: 824210

URL: http://svn.apache.org/viewvc?rev=824210&view=rev
Log:
   - added Java generics APIs to boot wrappers, conditional on _java_generics

Added:
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp   (with props)
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h   (with props)
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp   (with props)
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h   (with props)
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp   (with props)
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h   (with props)
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp   (with props)
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h   (with props)
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp   (with props)
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h   (with props)
Modified:
    lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp
    lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp
    lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h
    lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/__init__.cpp
    lucene/pylucene/trunk/jcc/setup.py

Modified: lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp Mon Oct 12 01:01:47 2009
@@ -34,7 +34,7 @@
             {
                 jclass cls = env->findClass("java/io/Writer");
 
-                _mids = new jmethodID[max_mid];
+                _mids = NULL;
                 class$ = (java::lang::Class *) new JObject(cls);
             }
 

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp Mon Oct 12 01:01:47 2009
@@ -22,6 +22,10 @@
 #include "java/lang/reflect/Method.h"
 #include "java/lang/reflect/Constructor.h"
 #include "java/lang/reflect/Field.h"
+#ifdef _java_generics
+#include "java/lang/reflect/Type.h"
+#include "java/lang/reflect/TypeVariable.h"
+#endif
 
 namespace java {
     namespace lang {
@@ -46,6 +50,11 @@
             mid_getName,
             mid_getModifiers,
             mid_isInstance,
+#ifdef _java_generics
+            mid_getTypeParameters,
+            mid_getGenericInterfaces,
+            mid_getGenericSuperclass,
+#endif
             max_mid
         };
 
@@ -113,7 +122,17 @@
                 _mids[mid_isInstance] =
                     env->getMethodID(cls, "isInstance",
                                      "(Ljava/lang/Object;)Z");
-
+#ifdef _java_generics
+                _mids[mid_getTypeParameters] =
+                    env->getMethodID(cls, "getTypeParameters",
+                                     "()[Ljava/lang/reflect/TypeVariable;");
+                _mids[mid_getGenericInterfaces] =
+                    env->getMethodID(cls, "getGenericInterfaces",
+                                     "()[Ljava/lang/reflect/Type;");
+                _mids[mid_getGenericSuperclass] =
+                    env->getMethodID(cls, "getGenericSuperclass",
+                                     "()Ljava/lang/reflect/Type;");
+#endif
                 class$ = (Class *) new JObject(cls);
             }
 
@@ -232,6 +251,23 @@
             return env->callBooleanMethod(this$, _mids[mid_isInstance],
                                           obj.this$);
         }
+
+#ifdef _java_generics
+        JArray<TypeVariable> Class::getTypeParameters() const
+        {
+            return JArray<TypeVariable>(env->callObjectMethod(this$, _mids[mid_getTypeParameters]));
+        }
+
+        JArray<Type> Class::getGenericInterfaces() const
+        {
+            return JArray<Type>(env->callObjectMethod(this$, _mids[mid_getGenericInterfaces]));
+        }
+
+        Type Class::getGenericSuperclass() const
+        {
+            return Type(env->callObjectMethod(this$, _mids[mid_getGenericSuperclass]));
+        }
+#endif
     }
 }
 
@@ -261,6 +297,11 @@
         static PyObject *t_Class_getInterfaces(t_Class *self);
         static PyObject *t_Class_getName(t_Class *self);
         static PyObject *t_Class_getModifiers(t_Class *self);
+#ifdef _java_generics
+        static PyObject *t_Class_getTypeParameters(t_Class *self);
+        static PyObject *t_Class_getGenericInterfaces(t_Class *self);
+        static PyObject *t_Class_getGenericSuperclass(t_Class *self);
+#endif
 
         static PyMethodDef t_Class__methods_[] = {
             DECLARE_METHOD(t_Class, forName, METH_O | METH_CLASS),
@@ -280,6 +321,11 @@
             DECLARE_METHOD(t_Class, getInterfaces, METH_NOARGS),
             DECLARE_METHOD(t_Class, getName, METH_NOARGS),
             DECLARE_METHOD(t_Class, getModifiers, METH_NOARGS),
+#ifdef _java_generics
+            DECLARE_METHOD(t_Class, getTypeParameters, METH_NOARGS),
+            DECLARE_METHOD(t_Class, getGenericInterfaces, METH_NOARGS),
+            DECLARE_METHOD(t_Class, getGenericSuperclass, METH_NOARGS),
+#endif
             { NULL, NULL, 0, NULL }
         };
 
@@ -456,5 +502,30 @@
             return PyInt_FromLong(modifiers);            
         }
 
+#ifdef _java_generics
+        static PyObject *t_Class_getTypeParameters(t_Class *self)
+        {
+            JArray<TypeVariable> result((jobject) NULL);
+            OBJ_CALL(result = self->object.getTypeParameters());
+
+            return result.toSequence(t_TypeVariable::wrap_Object);
+        }
+
+        static PyObject *t_Class_getGenericInterfaces(t_Class *self)
+        {
+            JArray<Type> result((jobject) NULL);
+            OBJ_CALL(result = self->object.getGenericInterfaces());
+
+            return result.toSequence(t_Type::wrap_Object);
+        }
+
+        static PyObject *t_Class_getGenericSuperclass(t_Class *self)
+        {
+            Type result((jobject) NULL);
+            OBJ_CALL(result = self->object.getGenericSuperclass());
+
+            return t_Type::wrap_Object(result);
+        }
+#endif
     }
 }

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h Mon Oct 12 01:01:47 2009
@@ -25,6 +25,10 @@
             class Method;
             class Constructor;
             class Field;
+#ifdef _java_generics
+            class Type;
+            class TypeVariable;
+#endif
         }
 
         using namespace reflect;
@@ -58,6 +62,11 @@
             String getName() const;
             int getModifiers() const;
             int isInstance(const Object &obj) const;
+#ifdef _java_generics
+            JArray<TypeVariable> getTypeParameters() const;
+            JArray<Type> getGenericInterfaces() const;
+            Type getGenericSuperclass() const;
+#endif
         };
 
         extern PyTypeObject Class$$Type;

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp Mon Oct 12 01:01:47 2009
@@ -20,6 +20,10 @@
 #include "java/lang/Object.h"
 #include "java/lang/String.h"
 #include "java/lang/reflect/Constructor.h"
+#ifdef _java_generics
+#include "java/lang/reflect/Type.h"
+#include "java/lang/reflect/TypeVariable.h"
+#endif
 
 namespace java {
     namespace lang {
@@ -30,6 +34,11 @@
                 mid_getSignature,
                 mid_getParameterTypes,
                 mid_getExceptionTypes,
+#ifdef _java_generics
+                mid_getTypeParameters,
+                mid_getGenericExceptionTypes,
+                mid_getGenericParameterTypes,
+#endif
                 max_mid
             };
 
@@ -53,6 +62,18 @@
                         env->getMethodID(cls, "getExceptionTypes",
                                          "()[Ljava/lang/Class;");
 
+#ifdef _java_generics
+                    _mids[mid_getTypeParameters] =
+                        env->getMethodID(cls, "getTypeParameters",
+                                         "()[Ljava/lang/reflect/TypeVariable;");
+                    _mids[mid_getGenericExceptionTypes] =
+                        env->getMethodID(cls, "getGenericExceptionTypes",
+                                         "()[Ljava/lang/reflect/Type;");
+                    _mids[mid_getGenericParameterTypes] =
+                        env->getMethodID(cls, "getGenericParameterTypes",
+                                         "()[Ljava/lang/reflect/Type;");
+#endif
+
                     class$ = (Class *) new JObject(cls);
                 }
                 
@@ -79,6 +100,23 @@
 
                 return JArray<Class>(array);
             }
+
+#ifdef _java_generics
+            JArray<TypeVariable> Constructor::getTypeParameters() const
+            {
+                return JArray<TypeVariable>(env->callObjectMethod(this$, _mids[mid_getTypeParameters]));
+            }
+
+            JArray<Type> Constructor::getGenericExceptionTypes() const
+            {
+                return JArray<Type>(env->callObjectMethod(this$, _mids[mid_getGenericExceptionTypes]));
+            }
+
+            JArray<Type> Constructor::getGenericParameterTypes() const
+            {
+                return JArray<Type>(env->callObjectMethod(this$, _mids[mid_getGenericParameterTypes]));
+            }
+#endif
         }
     }
 }
@@ -95,11 +133,21 @@
             static PyObject *t_Constructor_getModifiers(t_Constructor *self);
             static PyObject *t_Constructor_getParameterTypes(t_Constructor *self);
             static PyObject *t_Constructor_getExceptionTypes(t_Constructor *self);
+#ifdef _java_generics
+            static PyObject *t_Constructor_getTypeParameters(t_Constructor *self);
+            static PyObject *t_Constructor_getGenericExceptionTypes(t_Constructor *self);
+            static PyObject *t_Constructor_getGenericParameterTypes(t_Constructor *self);
+#endif
 
             static PyMethodDef t_Constructor__methods_[] = {
                 DECLARE_METHOD(t_Constructor, getModifiers, METH_NOARGS),
                 DECLARE_METHOD(t_Constructor, getParameterTypes, METH_NOARGS),
                 DECLARE_METHOD(t_Constructor, getExceptionTypes, METH_NOARGS),
+#ifdef _java_generics
+                DECLARE_METHOD(t_Constructor, getTypeParameters, METH_NOARGS),
+                DECLARE_METHOD(t_Constructor, getGenericExceptionTypes, METH_NOARGS),
+                DECLARE_METHOD(t_Constructor, getGenericParameterTypes, METH_NOARGS),
+#endif
                 { NULL, NULL, 0, NULL }
             };
 
@@ -127,6 +175,32 @@
                 OBJ_CALL(types = self->object.getExceptionTypes());
                 return types.toSequence(t_Class::wrap_Object);
             }
+
+#ifdef _java_generics
+            static PyObject *t_Constructor_getTypeParameters(t_Constructor *self)
+            {
+                JArray<TypeVariable> result((jobject) NULL);
+                OBJ_CALL(result = self->object.getTypeParameters());
+
+                return result.toSequence(t_TypeVariable::wrap_Object);
+            }
+
+            static PyObject *t_Constructor_getGenericExceptionTypes(t_Constructor *self)
+            {
+                JArray<Type> result((jobject) NULL);
+                OBJ_CALL(result = self->object.getGenericExceptionTypes());
+
+                return result.toSequence(t_Type::wrap_Object);
+            }
+
+            static PyObject *t_Constructor_getGenericParameterTypes(t_Constructor *self)
+            {
+                JArray<Type> result((jobject) NULL);
+                OBJ_CALL(result = self->object.getGenericParameterTypes());
+
+                return result.toSequence(t_Type::wrap_Object);
+            }
+#endif
         }
     }
 }

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h Mon Oct 12 01:01:47 2009
@@ -24,6 +24,11 @@
         class String;
 
         namespace reflect {
+#ifdef _java_generics
+            class Type;
+            class TypeVariable;
+#endif
+
             class Constructor : public Object {
             public:
                 static Class *class$;
@@ -38,9 +43,13 @@
                 int getModifiers() const;
                 JArray<Class> getParameterTypes() const;
                 JArray<Class> getExceptionTypes() const;
+#ifdef _java_generics
+                JArray<TypeVariable> getTypeParameters() const;
+                JArray<Type> getGenericExceptionTypes() const;
+                JArray<Type> getGenericParameterTypes() const;
+#endif
             };
 
-
             extern PyTypeObject Constructor$$Type;
 
             class t_Constructor {

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp Mon Oct 12 01:01:47 2009
@@ -18,6 +18,9 @@
 #include "java/lang/Object.h"
 #include "java/lang/String.h"
 #include "java/lang/reflect/Field.h"
+#ifdef _java_generics
+#include "java/lang/reflect/Type.h"
+#endif
 
 namespace java {
     namespace lang {
@@ -27,6 +30,9 @@
                 mid_getModifiers,
                 mid_getType,
                 mid_getName,
+#ifdef _java_generics
+                mid_getGenericType,
+#endif
                 max_mid
             };
 
@@ -49,6 +55,11 @@
                     _mids[mid_getName] =
                         env->getMethodID(cls, "getName",
                                          "()Ljava/lang/String;");
+#ifdef _java_generics
+                    _mids[mid_getGenericType] =
+                        env->getMethodID(cls, "getGenericType",
+                                         "()Ljava/lang/reflect/Type;");
+#endif
 
                     class$ = (Class *) new JObject(cls);
                 }
@@ -70,6 +81,13 @@
             {
                 return String(env->callObjectMethod(this$, _mids[mid_getName]));
             }
+
+#ifdef _java_generics
+            Type Field::getGenericType() const
+            {
+                return Type(env->callObjectMethod(this$, _mids[mid_getGenericType]));
+            }
+#endif
         }
     }
 }
@@ -86,11 +104,17 @@
             static PyObject *t_Field_getModifiers(t_Field *self);
             static PyObject *t_Field_getType(t_Field *self);
             static PyObject *t_Field_getName(t_Field *self);
+#ifdef _java_generics
+            static PyObject *t_Field_getGenericType(t_Field *self);
+#endif
 
             static PyMethodDef t_Field__methods_[] = {
                 DECLARE_METHOD(t_Field, getModifiers, METH_NOARGS),
                 DECLARE_METHOD(t_Field, getType, METH_NOARGS),
                 DECLARE_METHOD(t_Field, getName, METH_NOARGS),
+#ifdef _java_generics
+                DECLARE_METHOD(t_Field, getGenericType, METH_NOARGS),
+#endif
                 { NULL, NULL, 0, NULL }
             };
 
@@ -120,6 +144,16 @@
                 OBJ_CALL(name = self->object.getName());
                 return j2p(name);
             }
+
+#ifdef _java_generics
+            static PyObject *t_Field_getGenericType(t_Field *self)
+            {
+                Type result((jobject) NULL);
+                OBJ_CALL(result = self->object.getGenericType());
+
+                return t_Type::wrap_Object(result);
+            }
+#endif
         }
     }
 }

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h Mon Oct 12 01:01:47 2009
@@ -23,6 +23,10 @@
         class String;
 
         namespace reflect {
+#ifdef _java_generics
+            class Type;
+#endif
+
             class Field : public Object {
             public:
                 static Class *class$;
@@ -37,6 +41,9 @@
                 int getModifiers() const;
                 Class getType() const;
                 String getName() const;
+#ifdef _java_generics
+                Type getGenericType() const;
+#endif
             };
 
             extern PyTypeObject Field$$Type;

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp Mon Oct 12 01:01:47 2009
@@ -0,0 +1,82 @@
+#ifdef _java_generics
+
+#include <jni.h>
+#include "JCCEnv.h"
+#include "java/lang/reflect/GenericArrayType.h"
+#include "java/lang/Class.h"
+#include "JArray.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            java::lang::Class *GenericArrayType::class$ = NULL;
+            jmethodID *GenericArrayType::mids$ = NULL;
+
+            jclass GenericArrayType::initializeClass()
+            {
+                if (!class$)
+                {
+
+                    jclass cls = (jclass) env->findClass("java/lang/reflect/GenericArrayType");
+
+                    mids$ = new jmethodID[max_mid];
+                    mids$[mid_getGenericComponentType_86037cf0] = env->getMethodID(cls, "getGenericComponentType", "()Ljava/lang/reflect/Type;");
+
+                    class$ = (java::lang::Class *) new JObject(cls);
+                }
+                return (jclass) class$->this$;
+            }
+
+            java::lang::reflect::Type GenericArrayType::getGenericComponentType() const
+            {
+                return java::lang::reflect::Type(env->callObjectMethod(this$, mids$[mid_getGenericComponentType_86037cf0]));
+            }
+        }
+    }
+}
+
+#include "structmember.h"
+#include "functions.h"
+#include "macros.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            static PyObject *t_GenericArrayType_cast_(PyTypeObject *type, PyObject *arg);
+            static PyObject *t_GenericArrayType_instance_(PyTypeObject *type, PyObject *arg);
+            static PyObject *t_GenericArrayType_getGenericComponentType(t_GenericArrayType *self);
+
+            static PyMethodDef t_GenericArrayType__methods_[] = {
+                DECLARE_METHOD(t_GenericArrayType, cast_, METH_O | METH_CLASS),
+                DECLARE_METHOD(t_GenericArrayType, instance_, METH_O | METH_CLASS),
+                DECLARE_METHOD(t_GenericArrayType, getGenericComponentType, METH_NOARGS),
+                { NULL, NULL, 0, NULL }
+            };
+
+            DECLARE_TYPE(GenericArrayType, t_GenericArrayType, java::lang::reflect::Type, GenericArrayType, abstract_init, 0, 0, 0, 0, 0);
+
+            static PyObject *t_GenericArrayType_cast_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!(arg = castCheck(arg, GenericArrayType::initializeClass, 1)))
+                    return NULL;
+                return t_GenericArrayType::wrap_Object(GenericArrayType(((t_GenericArrayType *) arg)->object.this$));
+            }
+            static PyObject *t_GenericArrayType_instance_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!castCheck(arg, GenericArrayType::initializeClass, 0))
+                    Py_RETURN_FALSE;
+                Py_RETURN_TRUE;
+            }
+
+            static PyObject *t_GenericArrayType_getGenericComponentType(t_GenericArrayType *self)
+            {
+                java::lang::reflect::Type result((jobject) NULL);
+                OBJ_CALL(result = self->object.getGenericComponentType());
+                return java::lang::reflect::t_Type::wrap_Object(result);
+            }
+        }
+    }
+}
+
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h Mon Oct 12 01:01:47 2009
@@ -0,0 +1,62 @@
+#ifdef _java_generics
+
+#ifndef java_lang_reflect_GenericArrayType_H
+#define java_lang_reflect_GenericArrayType_H
+
+#include "java/lang/reflect/Type.h"
+
+namespace java {
+    namespace lang {
+        class Class;
+    }
+}
+template<class T> class JArray;
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            class GenericArrayType : public java::lang::reflect::Type {
+            public:
+                enum {
+                    mid_getGenericComponentType_86037cf0,
+                    max_mid
+                };
+
+                static java::lang::Class *class$;
+                static jmethodID *mids$;
+                static jclass initializeClass();
+
+                explicit GenericArrayType(jobject obj) : java::lang::reflect::Type(obj) {
+                    if (obj != NULL)
+                        initializeClass();
+                }
+                GenericArrayType(const GenericArrayType& obj) : java::lang::reflect::Type(obj) {}
+
+                java::lang::reflect::Type getGenericComponentType() const;
+            };
+        }
+    }
+}
+
+#include <Python.h>
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            extern PyTypeObject GenericArrayType$$Type;
+
+            class t_GenericArrayType {
+            public:
+                PyObject_HEAD
+                GenericArrayType object;
+                static PyObject *wrap_Object(const GenericArrayType&);
+                static PyObject *wrap_jobject(const jobject&);
+            };
+        }
+    }
+}
+
+#endif
+
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp Mon Oct 12 01:01:47 2009
@@ -0,0 +1,84 @@
+#ifdef _java_generics
+
+#include <jni.h>
+#include "JCCEnv.h"
+#include "java/lang/reflect/GenericDeclaration.h"
+#include "java/lang/Class.h"
+#include "java/lang/reflect/TypeVariable.h"
+#include "JArray.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            java::lang::Class *GenericDeclaration::class$ = NULL;
+            jmethodID *GenericDeclaration::mids$ = NULL;
+
+            jclass GenericDeclaration::initializeClass()
+            {
+                if (!class$)
+                {
+
+                    jclass cls = (jclass) env->findClass("java/lang/reflect/GenericDeclaration");
+
+                    mids$ = new jmethodID[max_mid];
+                    mids$[mid_getTypeParameters_837d3468] = env->getMethodID(cls, "getTypeParameters", "()[Ljava/lang/reflect/TypeVariable;");
+
+                    class$ = (java::lang::Class *) new JObject(cls);
+                }
+                return (jclass) class$->this$;
+            }
+
+            JArray<java::lang::reflect::TypeVariable> GenericDeclaration::getTypeParameters() const
+            {
+                return JArray<java::lang::reflect::TypeVariable>(env->callObjectMethod(this$, mids$[mid_getTypeParameters_837d3468]));
+            }
+        }
+    }
+}
+
+#include "structmember.h"
+#include "functions.h"
+#include "macros.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            static PyObject *t_GenericDeclaration_cast_(PyTypeObject *type, PyObject *arg);
+            static PyObject *t_GenericDeclaration_instance_(PyTypeObject *type, PyObject *arg);
+            static PyObject *t_GenericDeclaration_getTypeParameters(t_GenericDeclaration *self);
+
+            static PyMethodDef t_GenericDeclaration__methods_[] = {
+                DECLARE_METHOD(t_GenericDeclaration, cast_, METH_O | METH_CLASS),
+                DECLARE_METHOD(t_GenericDeclaration, instance_, METH_O | METH_CLASS),
+                DECLARE_METHOD(t_GenericDeclaration, getTypeParameters, METH_NOARGS),
+                { NULL, NULL, 0, NULL }
+            };
+
+            DECLARE_TYPE(GenericDeclaration, t_GenericDeclaration, java::lang::Object, GenericDeclaration, abstract_init, 0, 0, 0, 0, 0);
+
+            static PyObject *t_GenericDeclaration_cast_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!(arg = castCheck(arg, GenericDeclaration::initializeClass, 1)))
+                    return NULL;
+                return t_GenericDeclaration::wrap_Object(GenericDeclaration(((t_GenericDeclaration *) arg)->object.this$));
+            }
+            static PyObject *t_GenericDeclaration_instance_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!castCheck(arg, GenericDeclaration::initializeClass, 0))
+                    Py_RETURN_FALSE;
+                Py_RETURN_TRUE;
+            }
+
+            static PyObject *t_GenericDeclaration_getTypeParameters(t_GenericDeclaration *self)
+            {
+                JArray<TypeVariable> result((jobject) NULL);
+                OBJ_CALL(result = self->object.getTypeParameters());
+
+                return result.toSequence(t_TypeVariable::wrap_Object);
+            }
+        }
+    }
+}
+
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h Mon Oct 12 01:01:47 2009
@@ -0,0 +1,65 @@
+#ifdef _java_generics
+
+#ifndef java_lang_reflect_GenericDeclaration_H
+#define java_lang_reflect_GenericDeclaration_H
+
+#include "java/lang/Object.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            class TypeVariable;
+        }
+        class Class;
+    }
+}
+template<class T> class JArray;
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            class GenericDeclaration : public java::lang::Object {
+            public:
+                enum {
+                    mid_getTypeParameters_837d3468,
+                    max_mid
+                };
+
+                static java::lang::Class *class$;
+                static jmethodID *mids$;
+                static jclass initializeClass();
+
+                explicit GenericDeclaration(jobject obj) : java::lang::Object(obj) {
+                    if (obj != NULL)
+                        initializeClass();
+                }
+                GenericDeclaration(const GenericDeclaration& obj) : java::lang::Object(obj) {}
+
+                JArray<java::lang::reflect::TypeVariable> getTypeParameters() const;
+            };
+        }
+    }
+}
+
+#include <Python.h>
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            extern PyTypeObject GenericDeclaration$$Type;
+
+            class t_GenericDeclaration {
+            public:
+                PyObject_HEAD
+                GenericDeclaration object;
+                static PyObject *wrap_Object(const GenericDeclaration&);
+                static PyObject *wrap_jobject(const jobject&);
+            };
+        }
+    }
+}
+
+#endif
+
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp Mon Oct 12 01:01:47 2009
@@ -20,6 +20,10 @@
 #include "java/lang/Object.h"
 #include "java/lang/String.h"
 #include "java/lang/reflect/Method.h"
+#ifdef _java_generics
+#include "java/lang/reflect/Type.h"
+#include "java/lang/reflect/TypeVariable.h"
+#endif
 
 namespace java {
     namespace lang {
@@ -32,6 +36,12 @@
                 mid_getParameterTypes,
                 mid_getExceptionTypes,
                 mid_getDeclaringClass,
+#ifdef _java_generics
+                mid_getTypeParameters,
+                mid_getGenericExceptionTypes,
+                mid_getGenericParameterTypes,
+                mid_getGenericReturnType,
+#endif
                 max_mid
             };
 
@@ -64,6 +74,20 @@
                     _mids[mid_getDeclaringClass] =
                         env->getMethodID(cls, "getDeclaringClass",
                                          "()Ljava/lang/Class;");
+#ifdef _java_generics
+                    _mids[mid_getTypeParameters] =
+                        env->getMethodID(cls, "getTypeParameters",
+                                         "()[Ljava/lang/reflect/TypeVariable;");
+                    _mids[mid_getGenericExceptionTypes] =
+                        env->getMethodID(cls, "getGenericExceptionTypes",
+                                         "()[Ljava/lang/reflect/Type;");
+                    _mids[mid_getGenericParameterTypes] =
+                        env->getMethodID(cls, "getGenericParameterTypes",
+                                         "()[Ljava/lang/reflect/Type;");
+                    _mids[mid_getGenericReturnType] =
+                        env->getMethodID(cls, "getGenericReturnType",
+                                         "()Ljava/lang/reflect/Type;");
+#endif
 
                     class$ = (Class *) new JObject(cls);
                 }
@@ -106,6 +130,28 @@
             {
                 return Class(env->callObjectMethod(this$, _mids[mid_getDeclaringClass]));
             }
+
+#ifdef _java_generics
+            JArray<TypeVariable> Method::getTypeParameters() const
+            {
+                return JArray<TypeVariable>(env->callObjectMethod(this$, _mids[mid_getTypeParameters]));
+            }
+
+            JArray<Type> Method::getGenericExceptionTypes() const
+            {
+                return JArray<Type>(env->callObjectMethod(this$, _mids[mid_getGenericExceptionTypes]));
+            }
+
+            JArray<Type> Method::getGenericParameterTypes() const
+            {
+                return JArray<Type>(env->callObjectMethod(this$, _mids[mid_getGenericParameterTypes]));
+            }
+
+            Type Method::getGenericReturnType() const
+            {
+                return Type(env->callObjectMethod(this$, _mids[mid_getGenericReturnType]));
+            }
+#endif
         }
     }
 }
@@ -125,6 +171,12 @@
             static PyObject *t_Method_getParameterTypes(t_Method *self);
             static PyObject *t_Method_getExceptionTypes(t_Method *self);
             static PyObject *t_Method_getDeclaringClass(t_Method *self);
+#ifdef _java_generics
+            static PyObject *t_Method_getTypeParameters(t_Method *self);
+            static PyObject *t_Method_getGenericExceptionTypes(t_Method *self);
+            static PyObject *t_Method_getGenericParameterTypes(t_Method *self);
+            static PyObject *t_Method_getGenericReturnType(t_Method *self);
+#endif
 
             static PyMethodDef t_Method__methods_[] = {
                 DECLARE_METHOD(t_Method, getModifiers, METH_NOARGS),
@@ -133,6 +185,12 @@
                 DECLARE_METHOD(t_Method, getParameterTypes, METH_NOARGS),
                 DECLARE_METHOD(t_Method, getExceptionTypes, METH_NOARGS),
                 DECLARE_METHOD(t_Method, getDeclaringClass, METH_NOARGS),
+#ifdef _java_generics
+                DECLARE_METHOD(t_Method, getTypeParameters, METH_NOARGS),
+                DECLARE_METHOD(t_Method, getGenericExceptionTypes, METH_NOARGS),
+                DECLARE_METHOD(t_Method, getGenericParameterTypes, METH_NOARGS),
+                DECLARE_METHOD(t_Method, getGenericReturnType, METH_NOARGS),
+#endif
                 { NULL, NULL, 0, NULL }
             };
 
@@ -186,6 +244,40 @@
                 OBJ_CALL(cls = self->object.getDeclaringClass());
                 return t_Class::wrap_Object(cls);
             }
+
+#ifdef _java_generics
+            static PyObject *t_Method_getTypeParameters(t_Method *self)
+            {
+                JArray<TypeVariable> result((jobject) NULL);
+                OBJ_CALL(result = self->object.getTypeParameters());
+
+                return result.toSequence(t_TypeVariable::wrap_Object);
+            }
+
+            static PyObject *t_Method_getGenericExceptionTypes(t_Method *self)
+            {
+                JArray<Type> result((jobject) NULL);
+                OBJ_CALL(result = self->object.getGenericExceptionTypes());
+
+                return result.toSequence(t_Type::wrap_Object);
+            }
+
+            static PyObject *t_Method_getGenericParameterTypes(t_Method *self)
+            {
+                JArray<Type> result((jobject) NULL);
+                OBJ_CALL(result = self->object.getGenericParameterTypes());
+
+                return result.toSequence(t_Type::wrap_Object);
+            }
+
+            static PyObject *t_Method_getGenericReturnType(t_Method *self)
+            {
+                Type result((jobject) NULL);
+                OBJ_CALL(result = self->object.getGenericReturnType());
+
+                return t_Type::wrap_Object(result);
+            }
+#endif
         }
     }
 }

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h Mon Oct 12 01:01:47 2009
@@ -24,6 +24,11 @@
         class String;
 
         namespace reflect {
+#ifdef _java_generics
+            class Type;
+            class TypeVariable;
+#endif
+
             class Method : public Object {
             public:
                 static Class *class$;
@@ -41,6 +46,12 @@
                 JArray<Class> getParameterTypes() const;
                 JArray<Class> getExceptionTypes() const;
                 Class getDeclaringClass() const;
+#ifdef _java_generics
+                JArray<TypeVariable> getTypeParameters() const;
+                JArray<Type> getGenericExceptionTypes() const;
+                JArray<Type> getGenericParameterTypes() const;
+                Type getGenericReturnType() const;
+#endif
             };
 
             extern PyTypeObject Method$$Type;

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp Mon Oct 12 01:01:47 2009
@@ -0,0 +1,113 @@
+#ifdef _java_generics
+
+#include <jni.h>
+#include "JCCEnv.h"
+#include "java/lang/reflect/ParameterizedType.h"
+#include "java/lang/Class.h"
+#include "JArray.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            java::lang::Class *ParameterizedType::class$ = NULL;
+            jmethodID *ParameterizedType::mids$ = NULL;
+
+            jclass ParameterizedType::initializeClass()
+            {
+                if (!class$)
+                {
+
+                    jclass cls = (jclass) env->findClass("java/lang/reflect/ParameterizedType");
+
+                    mids$ = new jmethodID[max_mid];
+                    mids$[mid_getActualTypeArguments_6f565a00] = env->getMethodID(cls, "getActualTypeArguments", "()[Ljava/lang/reflect/Type;");
+                    mids$[mid_getOwnerType_86037cf0] = env->getMethodID(cls, "getOwnerType", "()Ljava/lang/reflect/Type;");
+                    mids$[mid_getRawType_86037cf0] = env->getMethodID(cls, "getRawType", "()Ljava/lang/reflect/Type;");
+
+                    class$ = (java::lang::Class *) new JObject(cls);
+                }
+                return (jclass) class$->this$;
+            }
+
+            JArray<java::lang::reflect::Type> ParameterizedType::getActualTypeArguments() const
+            {
+                return JArray<java::lang::reflect::Type>(env->callObjectMethod(this$, mids$[mid_getActualTypeArguments_6f565a00]));
+            }
+
+            java::lang::reflect::Type ParameterizedType::getOwnerType() const
+            {
+                return java::lang::reflect::Type(env->callObjectMethod(this$, mids$[mid_getOwnerType_86037cf0]));
+            }
+
+            java::lang::reflect::Type ParameterizedType::getRawType() const
+            {
+                return java::lang::reflect::Type(env->callObjectMethod(this$, mids$[mid_getRawType_86037cf0]));
+            }
+        }
+    }
+}
+
+#include "structmember.h"
+#include "functions.h"
+#include "macros.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            static PyObject *t_ParameterizedType_cast_(PyTypeObject *type, PyObject *arg);
+            static PyObject *t_ParameterizedType_instance_(PyTypeObject *type, PyObject *arg);
+            static PyObject *t_ParameterizedType_getActualTypeArguments(t_ParameterizedType *self);
+            static PyObject *t_ParameterizedType_getOwnerType(t_ParameterizedType *self);
+            static PyObject *t_ParameterizedType_getRawType(t_ParameterizedType *self);
+
+            static PyMethodDef t_ParameterizedType__methods_[] = {
+                DECLARE_METHOD(t_ParameterizedType, cast_, METH_O | METH_CLASS),
+                DECLARE_METHOD(t_ParameterizedType, instance_, METH_O | METH_CLASS),
+                DECLARE_METHOD(t_ParameterizedType, getActualTypeArguments, METH_NOARGS),
+                DECLARE_METHOD(t_ParameterizedType, getOwnerType, METH_NOARGS),
+                DECLARE_METHOD(t_ParameterizedType, getRawType, METH_NOARGS),
+                { NULL, NULL, 0, NULL }
+            };
+
+            DECLARE_TYPE(ParameterizedType, t_ParameterizedType, java::lang::reflect::Type, ParameterizedType, abstract_init, 0, 0, 0, 0, 0);
+
+            static PyObject *t_ParameterizedType_cast_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!(arg = castCheck(arg, ParameterizedType::initializeClass, 1)))
+                    return NULL;
+                return t_ParameterizedType::wrap_Object(ParameterizedType(((t_ParameterizedType *) arg)->object.this$));
+            }
+            static PyObject *t_ParameterizedType_instance_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!castCheck(arg, ParameterizedType::initializeClass, 0))
+                    Py_RETURN_FALSE;
+                Py_RETURN_TRUE;
+            }
+
+            static PyObject *t_ParameterizedType_getActualTypeArguments(t_ParameterizedType *self)
+            {
+                JArray<java::lang::reflect::Type> result((jobject) NULL);
+                OBJ_CALL(result = self->object.getActualTypeArguments());
+
+                return result.toSequence(t_Type::wrap_Object);
+            }
+
+            static PyObject *t_ParameterizedType_getOwnerType(t_ParameterizedType *self)
+            {
+                java::lang::reflect::Type result((jobject) NULL);
+                OBJ_CALL(result = self->object.getOwnerType());
+                return java::lang::reflect::t_Type::wrap_Object(result);
+            }
+
+            static PyObject *t_ParameterizedType_getRawType(t_ParameterizedType *self)
+            {
+                java::lang::reflect::Type result((jobject) NULL);
+                OBJ_CALL(result = self->object.getRawType());
+                return java::lang::reflect::t_Type::wrap_Object(result);
+            }
+        }
+    }
+}
+
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h Mon Oct 12 01:01:47 2009
@@ -0,0 +1,66 @@
+#ifdef _java_generics
+
+#ifndef java_lang_reflect_ParameterizedType_H
+#define java_lang_reflect_ParameterizedType_H
+
+#include "java/lang/reflect/Type.h"
+
+namespace java {
+    namespace lang {
+        class Class;
+    }
+}
+template<class T> class JArray;
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            class ParameterizedType : public java::lang::reflect::Type {
+            public:
+                enum {
+                    mid_getActualTypeArguments_6f565a00,
+                    mid_getOwnerType_86037cf0,
+                    mid_getRawType_86037cf0,
+                    max_mid
+                };
+
+                static java::lang::Class *class$;
+                static jmethodID *mids$;
+                static jclass initializeClass();
+
+                explicit ParameterizedType(jobject obj) : java::lang::reflect::Type(obj) {
+                    if (obj != NULL)
+                        initializeClass();
+                }
+                ParameterizedType(const ParameterizedType& obj) : java::lang::reflect::Type(obj) {}
+
+                JArray<java::lang::reflect::Type> getActualTypeArguments() const;
+                java::lang::reflect::Type getOwnerType() const;
+                java::lang::reflect::Type getRawType() const;
+            };
+        }
+    }
+}
+
+#include <Python.h>
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            extern PyTypeObject ParameterizedType$$Type;
+
+            class t_ParameterizedType {
+            public:
+                PyObject_HEAD
+                ParameterizedType object;
+                static PyObject *wrap_Object(const ParameterizedType&);
+                static PyObject *wrap_jobject(const jobject&);
+            };
+        }
+    }
+}
+
+#endif
+
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp Mon Oct 12 01:01:47 2009
@@ -0,0 +1,65 @@
+#ifdef _java_generics
+
+#include <jni.h>
+#include "JCCEnv.h"
+#include "java/lang/reflect/Type.h"
+#include "java/lang/Class.h"
+#include "JArray.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            java::lang::Class *Type::class$ = NULL;
+            jmethodID *Type::mids$ = NULL;
+
+            jclass Type::initializeClass()
+            {
+                if (!class$)
+                {
+
+                    jclass cls = (jclass) env->findClass("java/lang/reflect/Type");
+
+                    class$ = (java::lang::Class *) new JObject(cls);
+                }
+                return (jclass) class$->this$;
+            }
+        }
+    }
+}
+
+#include "structmember.h"
+#include "functions.h"
+#include "macros.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            static PyObject *t_Type_cast_(PyTypeObject *type, PyObject *arg);
+            static PyObject *t_Type_instance_(PyTypeObject *type, PyObject *arg);
+
+            static PyMethodDef t_Type__methods_[] = {
+                DECLARE_METHOD(t_Type, cast_, METH_O | METH_CLASS),
+                DECLARE_METHOD(t_Type, instance_, METH_O | METH_CLASS),
+                { NULL, NULL, 0, NULL }
+            };
+
+            DECLARE_TYPE(Type, t_Type, java::lang::Object, Type, abstract_init, 0, 0, 0, 0, 0);
+
+            static PyObject *t_Type_cast_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!(arg = castCheck(arg, Type::initializeClass, 1)))
+                    return NULL;
+                return t_Type::wrap_Object(Type(((t_Type *) arg)->object.this$));
+            }
+            static PyObject *t_Type_instance_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!castCheck(arg, Type::initializeClass, 0))
+                    Py_RETURN_FALSE;
+                Py_RETURN_TRUE;
+            }
+        }
+    }
+}
+
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h Mon Oct 12 01:01:47 2009
@@ -0,0 +1,55 @@
+#ifdef _java_generics
+
+#ifndef java_lang_reflect_Type_H
+#define java_lang_reflect_Type_H
+
+#include "java/lang/Object.h"
+
+namespace java {
+    namespace lang {
+        class Class;
+    }
+}
+template<class T> class JArray;
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            class Type : public java::lang::Object {
+            public:
+
+                static java::lang::Class *class$;
+                static jmethodID *mids$;
+                static jclass initializeClass();
+
+                explicit Type(jobject obj) : java::lang::Object(obj) {
+                    if (obj != NULL)
+                        initializeClass();
+                }
+                Type(const Type& obj) : java::lang::Object(obj) {}
+            };
+        }
+    }
+}
+
+#include <Python.h>
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            extern PyTypeObject Type$$Type;
+
+            class t_Type {
+            public:
+                PyObject_HEAD
+                Type object;
+                static PyObject *wrap_Object(const Type&);
+                static PyObject *wrap_jobject(const jobject&);
+            };
+        }
+    }
+}
+
+#endif
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp Mon Oct 12 01:01:47 2009
@@ -0,0 +1,115 @@
+#ifdef _java_generics
+
+#include <jni.h>
+#include "JCCEnv.h"
+#include "java/lang/reflect/TypeVariable.h"
+#include "java/lang/reflect/GenericDeclaration.h"
+#include "java/lang/Class.h"
+#include "java/lang/String.h"
+#include "JArray.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            java::lang::Class *TypeVariable::class$ = NULL;
+            jmethodID *TypeVariable::mids$ = NULL;
+
+            jclass TypeVariable::initializeClass()
+            {
+                if (!class$)
+                {
+
+                    jclass cls = (jclass) env->findClass("java/lang/reflect/TypeVariable");
+
+                    mids$ = new jmethodID[max_mid];
+                    mids$[mid_getBounds_6f565a00] = env->getMethodID(cls, "getBounds", "()[Ljava/lang/reflect/Type;");
+                    mids$[mid_getGenericDeclaration_2dc62edd] = env->getMethodID(cls, "getGenericDeclaration", "()Ljava/lang/reflect/GenericDeclaration;");
+                    mids$[mid_getName_14c7b5c5] = env->getMethodID(cls, "getName", "()Ljava/lang/String;");
+
+                    class$ = (java::lang::Class *) new JObject(cls);
+                }
+                return (jclass) class$->this$;
+            }
+
+            JArray<java::lang::reflect::Type> TypeVariable::getBounds() const
+            {
+                return JArray<java::lang::reflect::Type>(env->callObjectMethod(this$, mids$[mid_getBounds_6f565a00]));
+            }
+
+            java::lang::reflect::GenericDeclaration TypeVariable::getGenericDeclaration() const
+            {
+                return java::lang::reflect::GenericDeclaration(env->callObjectMethod(this$, mids$[mid_getGenericDeclaration_2dc62edd]));
+            }
+
+            java::lang::String TypeVariable::getName() const
+            {
+                return java::lang::String(env->callObjectMethod(this$, mids$[mid_getName_14c7b5c5]));
+            }
+        }
+    }
+}
+
+#include "structmember.h"
+#include "functions.h"
+#include "macros.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            static PyObject *t_TypeVariable_cast_(PyTypeObject *type, PyObject *arg);
+            static PyObject *t_TypeVariable_instance_(PyTypeObject *type, PyObject *arg);
+            static PyObject *t_TypeVariable_getBounds(t_TypeVariable *self);
+            static PyObject *t_TypeVariable_getGenericDeclaration(t_TypeVariable *self);
+            static PyObject *t_TypeVariable_getName(t_TypeVariable *self);
+
+            static PyMethodDef t_TypeVariable__methods_[] = {
+                DECLARE_METHOD(t_TypeVariable, cast_, METH_O | METH_CLASS),
+                DECLARE_METHOD(t_TypeVariable, instance_, METH_O | METH_CLASS),
+                DECLARE_METHOD(t_TypeVariable, getBounds, METH_NOARGS),
+                DECLARE_METHOD(t_TypeVariable, getGenericDeclaration, METH_NOARGS),
+                DECLARE_METHOD(t_TypeVariable, getName, METH_NOARGS),
+                { NULL, NULL, 0, NULL }
+            };
+
+            DECLARE_TYPE(TypeVariable, t_TypeVariable, java::lang::reflect::Type, TypeVariable, abstract_init, 0, 0, 0, 0, 0);
+
+            static PyObject *t_TypeVariable_cast_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!(arg = castCheck(arg, TypeVariable::initializeClass, 1)))
+                    return NULL;
+                return t_TypeVariable::wrap_Object(TypeVariable(((t_TypeVariable *) arg)->object.this$));
+            }
+            static PyObject *t_TypeVariable_instance_(PyTypeObject *type, PyObject *arg)
+            {
+                if (!castCheck(arg, TypeVariable::initializeClass, 0))
+                    Py_RETURN_FALSE;
+                Py_RETURN_TRUE;
+            }
+
+            static PyObject *t_TypeVariable_getBounds(t_TypeVariable *self)
+            {
+                JArray<java::lang::reflect::Type> result((jobject) NULL);
+                OBJ_CALL(result = self->object.getBounds());
+
+                return result.toSequence(t_Type::wrap_Object);
+            }
+
+            static PyObject *t_TypeVariable_getGenericDeclaration(t_TypeVariable *self)
+            {
+                java::lang::reflect::GenericDeclaration result((jobject) NULL);
+                OBJ_CALL(result = self->object.getGenericDeclaration());
+                return java::lang::reflect::t_GenericDeclaration::wrap_Object(result);
+            }
+
+            static PyObject *t_TypeVariable_getName(t_TypeVariable *self)
+            {
+                java::lang::String result((jobject) NULL);
+                OBJ_CALL(result = self->object.getName());
+                return j2p(result);
+            }
+        }
+    }
+}
+
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h?rev=824210&view=auto
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h (added)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h Mon Oct 12 01:01:47 2009
@@ -0,0 +1,70 @@
+#ifdef _java_generics
+
+#ifndef java_lang_reflect_TypeVariable_H
+#define java_lang_reflect_TypeVariable_H
+
+#include "java/lang/reflect/Type.h"
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            class GenericDeclaration;
+        }
+        class Class;
+        class String;
+    }
+}
+template<class T> class JArray;
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+
+            class TypeVariable : public java::lang::reflect::Type {
+            public:
+                enum {
+                    mid_getBounds_6f565a00,
+                    mid_getGenericDeclaration_2dc62edd,
+                    mid_getName_14c7b5c5,
+                    max_mid
+                };
+
+                static java::lang::Class *class$;
+                static jmethodID *mids$;
+                static jclass initializeClass();
+
+                explicit TypeVariable(jobject obj) : java::lang::reflect::Type(obj) {
+                    if (obj != NULL)
+                        initializeClass();
+                }
+                TypeVariable(const TypeVariable& obj) : java::lang::reflect::Type(obj) {}
+
+                JArray<java::lang::reflect::Type> getBounds() const;
+                java::lang::reflect::GenericDeclaration getGenericDeclaration() const;
+                java::lang::String getName() const;
+            };
+        }
+    }
+}
+
+#include <Python.h>
+
+namespace java {
+    namespace lang {
+        namespace reflect {
+            extern PyTypeObject TypeVariable$$Type;
+
+            class t_TypeVariable {
+            public:
+                PyObject_HEAD
+                TypeVariable object;
+                static PyObject *wrap_Object(const TypeVariable&);
+                static PyObject *wrap_jobject(const jobject&);
+            };
+        }
+    }
+}
+
+#endif
+
+#endif /* _java_generics */

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/__init__.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/__init__.cpp?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/__init__.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/__init__.cpp Mon Oct 12 01:01:47 2009
@@ -23,6 +23,13 @@
             extern PyTypeObject Method$$Type;
             extern PyTypeObject Modifier$$Type;
             extern PyTypeObject Field$$Type;
+#ifdef _java_generics
+            extern PyTypeObject Type$$Type;
+            extern PyTypeObject ParameterizedType$$Type;
+            extern PyTypeObject TypeVariable$$Type;
+            extern PyTypeObject GenericArrayType$$Type;
+            extern PyTypeObject GenericDeclaration$$Type;
+#endif
 
             void __install__(PyObject *m)
             {
@@ -30,6 +37,13 @@
                 INSTALL_TYPE(Method, m);
                 INSTALL_TYPE(Modifier, m);
                 INSTALL_TYPE(Field, m);
+#ifdef _java_generics
+                INSTALL_TYPE(Type, m);
+                INSTALL_TYPE(ParameterizedType, m);
+                INSTALL_TYPE(TypeVariable, m);
+                INSTALL_TYPE(GenericArrayType, m);
+                INSTALL_TYPE(GenericDeclaration, m);
+#endif
             }
         }
     }

Modified: lucene/pylucene/trunk/jcc/setup.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/setup.py?rev=824210&r1=824209&r2=824210&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/setup.py (original)
+++ lucene/pylucene/trunk/jcc/setup.py Mon Oct 12 01:01:47 2009
@@ -283,6 +283,7 @@
                                 extra_compile_args=cflags,
                                 extra_link_args=lflags,
                                 include_dirs=includes,
+                                define_macros=[('_java_generics', None)],
                                 sources=sources))
 
     args = {