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 = {