File: GenericDeclaration.cpp

package info (click to toggle)
jcc 3.13-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,944 kB
  • sloc: cpp: 23,270; python: 6,702; java: 65; makefile: 50
file content (86 lines) | stat: -rw-r--r-- 3,301 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#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(bool getOnly)
            {
                if (getOnly)
                    return (jclass) (class$ == NULL ? NULL : class$->this$);
                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 */