Mercurial > projects > qtd
diff generator/typesystem_core-java.xml @ 1:e78566595089
initial import
author | mandel |
---|---|
date | Mon, 11 May 2009 16:01:50 +0000 |
parents | |
children | 7664de4a55e5 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generator/typesystem_core-java.xml Mon May 11 16:01:50 2009 +0000 @@ -0,0 +1,1969 @@ +<?xml version="1.0"?> +<typesystem package="qt.core" default-superclass="QtDObject"> + <inject-code> + qt.Utilities.loadQtLibrary("QtCore"); + </inject-code> + + <template name="core.return_string_instead_of_char*"> + public final String %FUNCTION_NAME() { + QNativePointer np = %FUNCTION_NAME_private(); + String returned = ""; + int i=0; + while (np.byteAt(i) != 0) returned += (char) np.byteAt(i++); + return returned; + } + </template> + <template name="core.call_with_string_instead_of_char*"> + public final void %FUNCTION_NAME(String %ARG_NAME) { + %FUNCTION_NAME(QNativePointer.createCharPointer(%ARG_NAME)); + } + </template> + + <template name="core.private_function_return_self"> + public final %RETURN_TYPE %FUNCTION_NAME(%ARGUMENTS) { + %FUNCTION_NAME_private(%ARGUMENT_NAMES); + return this; + } + </template> + + <template name="core.unary_other_type"> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="%OUT_TYPE"/> + <replace from="%ARGUMENTS" to="%IN_TYPE other"/> + <replace from="%ARGUMENT_NAMES" to="other"/> + </insert-template> + </template> + + <template name="core.unary_self_type"> + <insert-template name="core.unary_other_type"> + <replace from="%IN_TYPE" to="%TYPE"/> + <replace from="%OUT_TYPE" to="%TYPE"/> + </insert-template> + </template> + + <template name="core.operator_assign_self_type"> + <insert-template name="core.unary_self_type"> + <replace from="%FUNCTION_NAME" to="operator_assign"/> + </insert-template> + </template> + + <template name="core.operator_assign_other_type"> + <insert-template name="core.unary_other_type"> + <replace from="%FUNCTION_NAME" to="operator_assign"/> + </insert-template> + </template> + + <template name="core.call_through_with_byte[]_instead_of_char*_and_int"> + public final int %FUNCTION_NAME(byte data[]) { + QNativePointer np = new QNativePointer(QNativePointer.Type.Byte, data.length); + %COPY_IN + int returned = (int) %FUNCTION_NAME(np, data.length); + %COPY_OUT + return returned; + } + </template> + + <template name="core.read_with_byte[]_instead_of_char*_and_int"> + <insert-template name="core.call_through_with_byte[]_instead_of_char*_and_int"> + <replace from="%COPY_IN" to=""/> + <replace from="%COPY_OUT" to="for (int i=0; i<returned; ++i) data[i] = np.byteAt(i);"/> + </insert-template> + </template> + + <template name="core.write_with_byte[]_instead_of_char*_and_int"> + <insert-template name="core.call_through_with_byte[]_instead_of_char*_and_int"> + <replace from="%COPY_OUT" to=""/> + <replace from="%COPY_IN" to="for (int i=0; i<data.length; ++i) np.setByteAt(i, data[i]);"/> + </insert-template> + </template> + + <template name="core.stream_operator_shift_right"> + public final %STREAM_TYPE operator_shift_right(%TYPE array[]) { + QNativePointer np = new QNativePointer(QNativePointer.Type.%NATIVEPOINTER_TYPE); + for (int i=0; i<array.length; ++i) { + operator_shift_right_%TYPE(np); + array[i] = np.%VALUE_FUNCTION(); + } + + return this; + } + </template> + + <template name="core.convert_primitive_array_to_java"> + %JNITYPEArray %out = __jni_env->New%JAVATYPEArray((int) %len); + __jni_env->Set%JAVATYPEArrayRegion(%out, 0, (int) %len, (%JNITYPE *) %in); + %JNITYPE *__ptr = (%JNITYPE *) %in; + Q_UNUSED(__ptr); + %JNITYPEArray __array = %out; + Q_UNUSED(__array); + </template> + + <template name="core.cleanup_convert_primitive_array_to_java"> + if (%len > 0) __jni_env->Get%JAVATYPEArrayRegion(__array, 0, %len, __ptr); + </template> + + <template name="core.get_array_length"> + int %out = __jni_env->GetArrayLength((jarray) %ARRAY); + </template> + + <template name="core.cleanup_convert_primitive_array_from_java"> + __jni_env->Release%JAVATYPEArrayElements((%JNITYPEArray) %1, (%JNITYPE *) __ptr, 0); + </template> + + <template name="core.convert_primitive_array_from_java"> + %CTYPE *%out = (%CTYPE *) __jni_env->Get%JAVATYPEArrayElements((%JNITYPEArray) %in, 0); + %CTYPE *__ptr = %out; + </template> + + +<primitive-type name="bool" java-name="bool" jni-name="jboolean"/> +<primitive-type name="double" jni-name="jdouble"/> +<primitive-type name="float" jni-name="jfloat"/> + + <primitive-type name="__int64" java-name="long" preferred-conversion="no" jni-name="jlong"/> + <primitive-type name="unsigned __int64" java-name="long" preferred-conversion="no" jni-name="jlong"/> + <primitive-type name="unsigned long long" java-name="ulong" preferred-conversion="no" jni-name="jlong"/> + <primitive-type name="long long" java-name="long" preferred-conversion="no" jni-name="jlong"/> + <primitive-type name="quintptr" preferred-conversion="no" java-name="ulong" jni-name="jlong" /> + + <primitive-type name="short" preferred-conversion="no" java-name="short" jni-name="jchar"/> + <primitive-type name="short" preferred-java-type="no" java-name="short" jni-name="jshort" /> + <primitive-type name="signed short" java-name="short" preferred-conversion="no" jni-name="jchar"/> + <primitive-type name="unsigned short" java-name="ushort" preferred-conversion="no" jni-name="jchar"/> + + <primitive-type name="char" java-name="char" jni-name="jbyte"/> + <primitive-type name="signed char" java-name="char" preferred-conversion="no" jni-name="jbyte"/> + <primitive-type name="unsigned char" java-name="ubyte" preferred-conversion="no" jni-name="jbyte"/> + + <primitive-type name="int" jni-name="jint"/> + <primitive-type name="signed int" java-name="int" preferred-conversion="no" jni-name="jint"/> + <primitive-type name="uint" java-name="uint" preferred-conversion="no" jni-name="jint"/> + <primitive-type name="ulong" java-name="uint" preferred-conversion="no" jni-name="jint"/> + <primitive-type name="unsigned int" java-name="uint" preferred-conversion="no" jni-name="jint"/> + <primitive-type name="signed long" java-name="int" preferred-conversion="no" jni-name="jint"/> + <primitive-type name="long" java-name="int" preferred-conversion="no" jni-name="jint"/> + <primitive-type name="unsigned long" java-name="uint" preferred-conversion="no" jni-name="jint"/> + + <primitive-type name="WId" java-name="long" preferred-conversion="no" jni-name="jlong"/> + <primitive-type name="Qt::HANDLE" java-name="long" preferred-conversion="no" jni-name="jlong"/> +<!-- <primitive-type name="QVariant::Type" java-name="int" preferred-conversion="no" jni-name="jint"/>--> + + <primitive-type name="QByteRef" java-name="byte" preferred-conversion="no" jni-name="jbyte"/> + <primitive-type name="QBitRef" java-name="bool" preferred-conversion="no" jni-name="jboolean"/> + + <primitive-type name="QBool" java-name="bool" preferred-conversion="no" jni-name="bool"/> +<!-- <primitive-type name="QVariant" java-name="QVariant" jni-name="jVariant"/>--> + + <primitive-type name="jobject" java-name="java.lang.Object" jni-name="jobject"/> + + + <value-type name="QDate"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QDate___" quote-before-line="}// class"/> + </inject-code> + <extra-includes> + <include file-name="qt.QNativePointer" location="java"/> + </extra-includes> + <modify-function signature="weekNumber(int*)const"> + <access modifier="private"/> + <modify-argument index="1"> + <remove-default-expression/> + </modify-argument> + </modify-function> + + </value-type> + + + <value-type name="QDir"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QDir___" quote-before-line="}// class"/> + </inject-code> + <modify-function signature="operator[](int)const" access="private"/> + + </value-type> + + <template name="core.multiply-devide-add-subtract"> + public final %TYPE multiply(double d) { operator_multiply_assign(d); return this; } + public final %TYPE divide(double d) { operator_divide_assign(d); return this; } + public final %TYPE add(%TYPE p) { operator_add_assign(p); return this; } + public final %TYPE subtract(%TYPE p) { operator_subtract_assign(p); return this; } + </template> + + <value-type name="QPoint"> + <modify-function signature="operator*=(double)" + access="private" + associated-to="multiply(double d)"/> + <modify-function signature="operator/=(double)" + access="private" + associated-to="divide(double d)"/> + <modify-function signature="operator+=(QPoint)" + access="private" + associated-to="add(QPoint)"/> + <modify-function signature="operator-=(QPoint)" + access="private" + associated-to="subtract(QPoint)"/> + <modify-function signature="rx()"> <remove/> </modify-function> + <modify-function signature="ry()"> <remove/> </modify-function> + <inject-code> + <insert-template name="core.multiply-devide-add-subtract"> + <replace from="%TYPE" to="QPoint"/> + </insert-template> + </inject-code> + </value-type> + + <value-type name="QPointF"> + <modify-function signature="operator*=(double)" + access="private" + associated-to="multiply(double d)"/> + <modify-function signature="operator/=(double)" + access="private" + associated-to="divide(double d)"/> + <modify-function signature="operator+=(QPointF)" + access="private" + associated-to="add(QPointF p)"/> + <modify-function signature="operator-=(QPointF)" + access="private" + associated-to="subtract(QPointF p)"/> + <modify-function signature="rx()"> <remove/> </modify-function> + <modify-function signature="ry()"> <remove/> </modify-function> + <inject-code> + <insert-template name="core.multiply-devide-add-subtract"> + <replace from="%TYPE" to="QPointF"/> + </insert-template> + </inject-code> + </value-type> + + <value-type name="QSize"> + <inject-code> + <insert-template name="core.multiply-devide-add-subtract"> + <replace from="%TYPE" to="QSize"/> + </insert-template> + </inject-code> + </value-type> + + <value-type name="QSizeF"> + <inject-code> + <insert-template name="core.multiply-devide-add-subtract"> + <replace from="%TYPE" to="QSizeF"/> + </insert-template> + </inject-code> + </value-type> + + <value-type name="QLocale"> + <extra-includes> + <include file-name="qt.QNativePointer" location="java"/> + </extra-includes> + + <template name="core.qlocale_to_type_general"> + public final %TYPE %FUNCTION_NAME(String s%EXTRA_ARGUMENTS) { + QNativePointer ok = new QNativePointer(QNativePointer.Type.Boolean); + %TYPE returned = (%TYPE) %FUNCTION_NAME(s, ok%EXTRA_CALL_ARGUMENTS); + if (!ok.booleanValue()) + throw new NumberFormatException(s); + return returned; + } + </template> + + + <template name="core.qlocale_to_type_integer"> + <insert-template name="core.qlocale_to_type_general"> + <replace from="%EXTRA_ARGUMENTS" to=", int base"/> + <replace from="%EXTRA_CALL_ARGUMENTS" to=", base"/> + </insert-template> + + public final %TYPE %FUNCTION_NAME(String s) { + return %FUNCTION_NAME(s, 0); + } + </template> + + <template name="core.qlocale_to_type_float"> + <insert-template name="core.qlocale_to_type_general"> + <replace from="%EXTRA_ARGUMENTS" to=""/> + <replace from="%EXTRA_CALL_ARGUMENTS" to=""/> + </insert-template> + </template> + + <modify-function signature="toDouble(QString,bool*)const"> + <access modifier="private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qlocale_to_type_float"> + <replace from="%TYPE" to="double"/> + <replace from="%FUNCTION_NAME" to="toDouble"/> + </insert-template> + </inject-code> + + <modify-function signature="toFloat(QString,bool*)const"> + <access modifier="private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qlocale_to_type_float"> + <replace from="%TYPE" to="float"/> + <replace from="%FUNCTION_NAME" to="toFloat"/> + </insert-template> + </inject-code> + + <modify-function signature="toInt(QString,bool*,int)const"> + <access modifier="private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + <modify-argument index="3"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qlocale_to_type_integer"> + <replace from="%TYPE" to="int"/> + <replace from="%FUNCTION_NAME" to="toInt"/> + </insert-template> + </inject-code> + + <modify-function signature="toLongLong(QString,bool*,int)const"> + <access modifier="private"/> + <rename to="toLong"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + <modify-argument index="3"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qlocale_to_type_integer"> + <replace from="%TYPE" to="long"/> + <replace from="%FUNCTION_NAME" to="toLong"/> + </insert-template> + </inject-code> + + <modify-function signature="toShort(QString,bool*,int)const"> + <access modifier="private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + <modify-argument index="3"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qlocale_to_type_integer"> + <replace from="%TYPE" to="short"/> + <replace from="%FUNCTION_NAME" to="toShort"/> + </insert-template> + </inject-code> + + <modify-function signature="toUShort(QString,bool*,int)const"> + <access modifier="private"/> + <rename to="toChar"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + <modify-argument index="3"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qlocale_to_type_integer"> + <replace from="%TYPE" to="char"/> + <replace from="%FUNCTION_NAME" to="toChar"/> + </insert-template> + </inject-code> + </value-type> + + <object-type name="QAbstractItemModel"> + <modify-function signature="parent()const" remove="all"/> + <extra-includes> + <include file-name="QStringList" location="global"/> + <include file-name="QSize" location="global"/> + </extra-includes> + <modify-function signature="match(QModelIndex,int,QVariant,int,QFlags<Qt::MatchFlag>)const"> + <modify-argument index="5"> + <replace-default-expression with="Qt.MatchFlag.MatchStartsWith, Qt.MatchFlag.MatchWrap"/> + </modify-argument> + </modify-function> + <modify-function signature="createIndex(int, int, int)const"> + <remove/> + </modify-function> + <inject-code class="java"> + <import-file name="typesystem_core-java.java" quote-after-line="class QAbstractItemModel___" quote-before-line="}// class"/> + </inject-code> + <inject-code class="native"> + extern "C" JNIEXPORT jboolean JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_core_QAbstractItemModel_setData_1native) + (JNIEnv *__jni_env, + jobject, + jlong __this_nativeId, + jint row, jint col, jobject value, jint role) + { + QtJambiShell_QAbstractItemModel *__qt_this = + (QtJambiShell_QAbstractItemModel *) qtjambi_from_jlong(__this_nativeId); + QVariant qt_value = qtjambi_to_qvariant(__jni_env, value); + + QModelIndex index = __qt_this->index(row, col, QModelIndex()); + return __qt_this->setData(index, qt_value, role); + } + + extern "C" JNIEXPORT jobject JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_core_QAbstractItemModel_data_1native) + (JNIEnv *__jni_env, + jobject, + jlong __this_nativeId, + jint row, jint col, jint role) + { + QtJambiShell_QAbstractItemModel *__qt_this = + (QtJambiShell_QAbstractItemModel *) qtjambi_from_jlong(__this_nativeId); + + QModelIndex index = __qt_this->index(row, col, QModelIndex()); + return qtjambi_from_qvariant(__jni_env, __qt_this->data(index, role)); + } + </inject-code> + + <modify-function signature="mimeData(QList<QModelIndex>)const"> + <modify-argument index="0"> + <define-ownership class="shell" owner="c++"/> + </modify-argument> + </modify-function> + </object-type> + + + <value-type name="QByteArray"> + <inject-code class="java"> + <import-file name="typesystem_core-java.java" quote-after-line="class QByteArray___" quote-before-line="}// class"/> + + <template name="QByteArray::toType(base)"> + public final %TYPE% %NAME%(int base) throws NumberFormatException{ + qt.QNativePointer ok = new qt.QNativePointer(qt.QNativePointer.Type.Boolean); + %TYPE% res = %NAME%_private(ok, base); + if(!ok.booleanValue()){ + throw new NumberFormatException(); + } + return res; + } + + public %TYPE% %NAME%(){ + return %NAME%(10); + } + </template> + + <insert-template name="QByteArray::toType(base)"> + <replace from="%NAME%" to="toChar"/> + <replace from="%TYPE%" to="char"/> + </insert-template> + + <insert-template name="QByteArray::toType(base)"> + <replace from="%NAME%" to="toInt"/> + <replace from="%TYPE%" to="int"/> + </insert-template> + + <template name="QByteArray::toType()"> + public final %TYPE% %NAME%() throws NumberFormatException{ + qt.QNativePointer ok = new qt.QNativePointer(qt.QNativePointer.Type.Boolean); + %TYPE% res = %NAME%_private(ok); + if(!ok.booleanValue()){ + throw new NumberFormatException(); + } + return res; + } + </template> + + <insert-template name="QByteArray::toType()"> + <replace from="%NAME%" to="toDouble"/> + <replace from="%TYPE%" to="double"/> + </insert-template> + + <insert-template name="QByteArray::toType()"> + <replace from="%NAME%" to="toFloat"/> + <replace from="%TYPE%" to="float"/> + </insert-template> + + </inject-code> + + + + <modify-function signature="toUShort(bool*, int) const" rename="toChar_private" access="private"> + <modify-argument index="1"> + <remove-default-expression/> + </modify-argument> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + </modify-function> + + <modify-function signature="toInt(bool*, int) const" rename="toInt_private" access="private"> + <modify-argument index="1"> + <remove-default-expression/> + </modify-argument> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + </modify-function> + + <modify-function signature="toDouble(bool*) const"> + <rename to="toDouble_private"/> + <access modifier="private"/> + <modify-argument index="1"> + <remove-default-expression/> + </modify-argument> + </modify-function> + + <modify-function signature="toFloat(bool*) const"> + <rename to="toFloat_private"/> + <access modifier="private"/> + <modify-argument index="1"> + <remove-default-expression/> + </modify-argument> + </modify-function> + + <modify-function signature="QByteArray(const char*)" remove="all"/> + + <modify-function signature="QByteArray(const char*,int)"> + <access modifier="private"/> + </modify-function> + + + <modify-function signature="append(QString)"> + <access modifier="private"/> + <rename to="append_private"/> + </modify-function> + <inject-code> + <insert-template name="core.unary_other_type"> + <replace from="%IN_TYPE" to="String"/> + <replace from="%OUT_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="append"/> + </insert-template> + </inject-code> + + <modify-function signature="append(const char*)"> + <remove/> + </modify-function> + + <modify-function signature="append(QByteArray)"> + <access modifier="private"/> + <rename to="append_private"/> + </modify-function> + <inject-code> + <insert-template name="core.unary_self_type"> + <replace from="%TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="append"/> + </insert-template> + </inject-code> + + <modify-function signature="append(char)"> + <access modifier="private"/> + <rename to="append_private"/> + </modify-function> + <inject-code> + <insert-template name="core.unary_other_type"> + <replace from="%IN_TYPE" to="byte"/> + <replace from="%OUT_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="append"/> + </insert-template> + </inject-code> + + <modify-function signature="contains(const char*)const"> + <remove/> + </modify-function> + + + <modify-function signature="count(const char*)const"> + <remove/> + </modify-function> + + + <modify-function signature="endsWith(const char*)const"> + <remove/> + </modify-function> + + + <modify-function signature="fill(char,int)"> + <access modifier="private"/> + <rename to="fill_private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="fill"/> + <replace from="%ARGUMENTS" to="byte b, int size"/> + <replace from="%ARGUMENT_NAMES" to="b, size"/> + </insert-template> + + public QByteArray fill(byte b) { + return fill(b, -1); + } + + </inject-code> + + <modify-function signature="indexOf(const char*,int)const"> + <remove/> + </modify-function> + + <modify-function signature="insert(int,QByteArray)"> + <access modifier="private"/> + <rename to="insert_private"/> + </modify-function> + <inject-code> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="insert"/> + <replace from="%ARGUMENTS" to="int i, QByteArray ba"/> + <replace from="%ARGUMENT_NAMES" to="i, ba"/> + </insert-template> + </inject-code> + + <modify-function signature="insert(int,char)"> + <access modifier="private"/> + <rename to="insert_private"/> + </modify-function> + <inject-code> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="insert"/> + <replace from="%ARGUMENTS" to="int i, byte b"/> + <replace from="%ARGUMENT_NAMES" to="i, b"/> + </insert-template> + </inject-code> + + <modify-function signature="insert(int,QString)"> + <access modifier="private"/> + <rename to="insert_private"/> + </modify-function> + <inject-code> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="insert"/> + <replace from="%ARGUMENTS" to="int i, String str"/> + <replace from="%ARGUMENT_NAMES" to="i, str"/> + </insert-template> + </inject-code> + + <modify-function signature="insert(int,const char*)" remove="all"/> + <modify-function signature="lastIndexOf(const char*,int)const" remove="all"/> + + <modify-function signature="prepend(QByteArray)"> + <access modifier="private"/> + <rename to="prepend_private"/> + </modify-function> + <inject-code> + <insert-template name="core.unary_self_type"> + <replace from="%TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="prepend"/> + </insert-template> + </inject-code> + + <modify-function signature="prepend(char)"> + <access modifier="private"/> + <rename to="prepend_private"/> + </modify-function> + <inject-code> + <insert-template name="core.unary_other_type"> + <replace from="%OUT_TYPE" to="QByteArray"/> + <replace from="%IN_TYPE" to="byte"/> + <replace from="%FUNCTION_NAME" to="prepend"/> + </insert-template> + </inject-code> + + <modify-function signature="prepend(const char*)"> + <remove/> + </modify-function> + + + <modify-function signature="remove(int,int)"> + <access modifier="private"/> + <rename to="remove_private"/> + </modify-function> + <inject-code> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="remove"/> + <replace from="%ARGUMENTS" to="int pos, int len"/> + <replace from="%ARGUMENT_NAMES" to="pos, len"/> + </insert-template> + </inject-code> + + <modify-function signature="replace(QByteArray,const char*)"> + <remove/> + </modify-function> + + + <template name="core.qbytearray_replace"> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="replace"/> + <replace from="%ARGUMENTS" to="%BEFORE_TYPE before, %AFTER_TYPE after"/> + <replace from="%ARGUMENT_NAMES" to="before, after"/> + </insert-template> + </template> + + <modify-function signature="replace(char,QByteArray)"> + <access modifier="private"/> + <rename to="replace_private"/> + </modify-function> + <inject-code> + <insert-template name="core.qbytearray_replace"> + <replace from="%BEFORE_TYPE" to="byte"/> + <replace from="%AFTER_TYPE" to="QByteArray"/> + </insert-template> + </inject-code> + + <modify-function signature="replace(QString,const char*)"> + <remove/> + </modify-function> + + + <modify-function signature="replace(int,int,const char*)"> + <remove/> + </modify-function> + + <modify-function signature="replace(const char*,const char*)"> + <remove/> + </modify-function> + + <modify-function signature="replace(const char*,QByteArray)"> + <remove/> + </modify-function> + + <modify-function signature="replace(int,int,QByteArray)"> + <access modifier="private"/> + <rename to="replace_private"/> + </modify-function> + <inject-code> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="replace"/> + <replace from="%ARGUMENTS" to="int pos, int len, QByteArray after"/> + <replace from="%ARGUMENT_NAMES" to="pos, len, after"/> + </insert-template> + </inject-code> + + <modify-function signature="replace(char,const char*)"> + <remove/> + </modify-function> + + <modify-function signature="replace(char,QString)"> + <access modifier="private"/> + <rename to="replace_private"/> + </modify-function> + <inject-code> + <insert-template name="core.qbytearray_replace"> + <replace from="%BEFORE_TYPE" to="byte"/> + <replace from="%AFTER_TYPE" to="String"/> + </insert-template> + </inject-code> + + <modify-function signature="replace(char,char)"> + <access modifier="private"/> + <rename to="replace_private"/> + </modify-function> + <inject-code> + <insert-template name="core.qbytearray_replace"> + <replace from="%BEFORE_TYPE" to="byte"/> + <replace from="%AFTER_TYPE" to="byte"/> + </insert-template> + </inject-code> + + <modify-function signature="replace(QByteArray,QByteArray)"> + <access modifier="private"/> + <rename to="replace_private"/> + </modify-function> + <inject-code> + <insert-template name="core.qbytearray_replace"> + <replace from="%BEFORE_TYPE" to="QByteArray"/> + <replace from="%AFTER_TYPE" to="QByteArray"/> + </insert-template> + </inject-code> + + <modify-function signature="replace(QString,QByteArray)"> + <access modifier="private"/> + <rename to="replace_private"/> + </modify-function> + <inject-code> + <insert-template name="core.qbytearray_replace"> + <replace from="%BEFORE_TYPE" to="String"/> + <replace from="%AFTER_TYPE" to="QByteArray"/> + </insert-template> + </inject-code> + + <modify-function signature="setNum(int,int)"> + <access modifier="private"/> + <rename to="setNum_private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + </modify-function> + + <template name="core.qbytearray_setNum_integer"> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="setNum"/> + <replace from="%ARGUMENTS" to="%INTEGER_TYPE n, int base"/> + <replace from="%ARGUMENT_NAMES" to="n, base"/> + </insert-template> + + public QByteArray setNum(%INTEGER_TYPE n) { + return setNum(n, 10); + } + </template> + <template name="core.qbytearray_setNum_float"> + <insert-template name="core.private_function_return_self"> + <replace from="%RETURN_TYPE" to="QByteArray"/> + <replace from="%FUNCTION_NAME" to="setNum"/> + <replace from="%ARGUMENTS" to="%FLOAT_TYPE n, char f, int prec"/> + <replace from="%ARGUMENT_NAMES" to="n, (byte) f, prec"/> + </insert-template> + + public final QByteArray setNum(%FLOAT_TYPE n, char f) { + return setNum(n, f, 6); + } + + public final QByteArray setNum(%FLOAT_TYPE n) { + return setNum(n, 'g'); + } + </template> + + <inject-code> + <insert-template name="core.qbytearray_setNum_integer"> + <replace from="%INTEGER_TYPE" to="int"/> + </insert-template> + </inject-code> + + <inject-code> + <insert-template name="core.qbytearray_setNum_integer"> + <replace from="%INTEGER_TYPE" to="char"/> + </insert-template> + </inject-code> + + + <modify-function signature="setNum(float,char,int)"> + <access modifier="private"/> + <rename to="setNum_private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + <modify-argument index="3"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qbytearray_setNum_float"> + <replace from="%FLOAT_TYPE" to="float"/> + </insert-template> + </inject-code> + + <modify-function signature="setNum(long long,int)"> + <access modifier="private"/> + <rename to="setNum_private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qbytearray_setNum_integer"> + <replace from="%INTEGER_TYPE" to="long"/> + </insert-template> + </inject-code> + + <modify-function signature="setNum(double,char,int)"> + <access modifier="private"/> + <rename to="setNum_private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + <modify-argument index="3"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qbytearray_setNum_float"> + <replace from="%FLOAT_TYPE" to="double"/> + </insert-template> + </inject-code> + + <modify-function signature="setNum(short,int)"> + <access modifier="private"/> + <rename to="setNum_private"/> + <modify-argument index="2"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <insert-template name="core.qbytearray_setNum_integer"> + <replace from="%INTEGER_TYPE" to="short"/> + </insert-template> + </inject-code> + + <modify-function signature="startsWith(const char*)const"> + <remove/> + </modify-function> + + + <modify-function signature="fromRawData(const char*,int)"> + <remove/> + </modify-function> + + </value-type> + + + <object-type name="QFile"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QFile___" quote-before-line="}// class"/> + </inject-code> + <modify-function signature="decodeName(const char*)"> + <access modifier="private"/> + </modify-function> + + </object-type> + + + <object-type name="QIODevice"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QIODevice___" quote-before-line="}// class"/> + </inject-code> + <extra-includes> + <include file-name="qt.QNativePointer" location="java"/> + </extra-includes> + + <modify-function signature="putChar(char)" rename="putByte"/> + <modify-function signature="ungetChar(char)" rename="ungetByte"/> + <modify-function signature="getChar(char*)"> + <access modifier="private"/> + <rename to="getByte"/> + </modify-function> + + + <modify-function signature="peek(char*,long long)"> + <access modifier="private"/> + </modify-function> + <inject-code> + <insert-template name="core.read_with_byte[]_instead_of_char*_and_int"> + <replace from="%FUNCTION_NAME" to="peek"/> + </insert-template> + </inject-code> + + <modify-function signature="read(char*,long long)"> + <access modifier="private"/> + </modify-function> + <inject-code> + <insert-template name="core.read_with_byte[]_instead_of_char*_and_int"> + <replace from="%FUNCTION_NAME" to="read"/> + </insert-template> + </inject-code> + + <modify-function signature="readLine(char*,long long)"> + <access modifier="private"/> + </modify-function> + <inject-code> + <insert-template name="core.read_with_byte[]_instead_of_char*_and_int"> + <replace from="%FUNCTION_NAME" to="readLine"/> + </insert-template> + </inject-code> + + <modify-function signature="write(const char*,long long)"> + <access modifier="private"/> + </modify-function> + <inject-code> + <insert-template name="core.write_with_byte[]_instead_of_char*_and_int"> + <replace from="%FUNCTION_NAME" to="write"/> + </insert-template> + </inject-code> + + <template name="core.iodevice_convert_char*_to_byte[]"> + <insert-template name="core.convert_primitive_array_to_java"> + <replace from="%JNITYPE" to="jbyte"/> + <replace from="%JAVATYPE" to="Byte"/> + </insert-template> + </template> + + <template name="core.iodevice_cleanup_to_java"> + <insert-template name="core.cleanup_convert_primitive_array_to_java"> + <replace from="%JNITYPE" to="jbyte"/> + <replace from="%JAVATYPE" to="Byte"/> + </insert-template> + </template> + + + <template name="core.iodevice_cleanup"> + jint %out = (jint) %in; + <insert-template name="core.cleanup_convert_primitive_array_from_java"> + <replace from="%JAVATYPE" to="Byte"/> + <replace from="%JNITYPE" to="jbyte"/> + </insert-template> + + </template> + + <template name="core.iodevice_convert_byte[]_to_char*"> + <insert-template name="core.convert_primitive_array_from_java"> + <replace from="%CTYPE" to="char"/> + <replace from="%JAVATYPE" to="Byte"/> + <replace from="%JNITYPE" to="jbyte"/> + </insert-template> + </template> + + <modify-function signature="readData(char*,long long)"> + <modify-argument index="0"> + <replace-type modified-type="int"/> + <conversion-rule class="native"> + <insert-template name="core.iodevice_cleanup"/> + </conversion-rule> + <conversion-rule class="shell"> + qint64 %out = %in; + <insert-template name="core.iodevice_cleanup_to_java"> + <replace from="%len" to="(int) %in"/> + </insert-template> + </conversion-rule> + </modify-argument> + + <modify-argument index="1"> + <replace-type modified-type="byte[]"/> + <conversion-rule class="shell"> + <insert-template name="core.iodevice_convert_char*_to_byte[]"> + <replace from="%len" to="%2"/> + </insert-template> + </conversion-rule> + <conversion-rule class="native"> + <insert-template name="core.iodevice_convert_byte[]_to_char*"/> + </conversion-rule> + </modify-argument> + + <modify-argument index="2"> + <remove-argument/> + <conversion-rule class="shell"> + // nothing + </conversion-rule> + <conversion-rule class="native"> + <insert-template name="core.get_array_length"> + <replace from="%ARRAY" to="%1"/> + </insert-template> + </conversion-rule> + </modify-argument> + </modify-function> + + <modify-function signature="writeData(const char*,long long)"> + <modify-argument index="1"> + <replace-type modified-type="byte[]"/> + <conversion-rule class="shell"> + <insert-template name="core.iodevice_convert_char*_to_byte[]"> + <replace from="%len" to="%2"/> + </insert-template> + </conversion-rule> + <conversion-rule class="native"> + <insert-template name="core.iodevice_convert_byte[]_to_char*"/> + </conversion-rule> + </modify-argument> + + <modify-argument index="2"> + <remove-argument/> + <conversion-rule class="shell"> + // nothing + </conversion-rule> + <conversion-rule class="native"> + <insert-template name="core.get_array_length"> + <replace from="%ARRAY" to="%1"/> + </insert-template> + </conversion-rule> + </modify-argument> + + <modify-argument index="0"> + <replace-type modified-type="int"/> + <conversion-rule class="native"> + <insert-template name="core.iodevice_cleanup"/> + </conversion-rule> + </modify-argument> + </modify-function> + + <modify-function signature="readLineData(char*,long long)"> + <modify-argument index="1"> + <replace-type modified-type="byte[]"/> + <conversion-rule class="shell"> + <insert-template name="core.iodevice_convert_char*_to_byte[]"> + <replace from="%len" to="%2"/> + </insert-template> + </conversion-rule> + <conversion-rule class="native"> + <insert-template name="core.iodevice_convert_byte[]_to_char*"/> + </conversion-rule> + </modify-argument> + + <modify-argument index="2"> + <remove-argument/> + <conversion-rule class="shell"> + // nothing + </conversion-rule> + <conversion-rule class="native"> + <insert-template name="core.get_array_length"> + <replace from="%ARRAY" to="%1"/> + </insert-template> + </conversion-rule> + </modify-argument> + + <modify-argument index="0"> + <replace-type modified-type="int"/> + <conversion-rule class="native"> + <insert-template name="core.iodevice_cleanup"/> + </conversion-rule> + <conversion-rule class="shell"> + qint64 %out = %in; + <insert-template name="core.iodevice_cleanup_to_java"> + <replace from="%len" to="(int) %in"/> + </insert-template> + </conversion-rule> + </modify-argument> + </modify-function> + </object-type> + + <value-type name="QLineF"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QLineF___" quote-before-line="}// class"/> + </inject-code> + <modify-function signature="intersect(QLineF,QPointF*)const "> + <access modifier="private"/> + </modify-function> + + </value-type> + + <object-type name="QCryptographicHash"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QCryptographicHash___" quote-before-line="}// class"/> + </inject-code> + <modify-function signature="addData(const char*,int)"> + <access modifier="private"/> + </modify-function> + + </object-type> + + + <object-type name="QTextCodec"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QTextCodec___" quote-before-line="}// class"/> + </inject-code> + + <modify-function signature="convertFromUnicode(const QChar*,int,QTextCodec::ConverterState*)const"> + <modify-argument index="3" invalidate-after-use="yes" /> + <modify-argument index="1"> + <replace-type modified-type="string"/> + <conversion-rule class="shell"> + // Convert directly QChar * -> ushort * + <insert-template name="core.convert_primitive_array_to_java"> + <replace from="%JNITYPE" to="jchar"/> + <replace from="%JAVATYPE" to="Char"/> + <replace from="%len" to="%2"/> + </insert-template> + </conversion-rule> + <conversion-rule class="native"> + // Convert directly ushort * -> QChar * + <insert-template name="core.convert_primitive_array_from_java"> + <replace from="%CTYPE" to="ushort"/> + <replace from="%JAVATYPE" to="Char"/> + <replace from="%JNITYPE" to="jchar"/> + </insert-template> + </conversion-rule> + </modify-argument> + + <modify-argument index="0"> + <conversion-rule class="native"> + jobject %out = qtjambi_from_object(__jni_env, &%in, "QByteArray", "com/trolltech/qt/core/", true); + <insert-template name="core.cleanup_convert_primitive_array_from_java"> + <replace from="%JNITYPE" to="jchar"/> + <replace from="%JAVATYPE" to="Char"/> + </insert-template> + </conversion-rule> + </modify-argument> + </modify-function> + + <modify-function signature="convertToUnicode(const char*,int,QTextCodec::ConverterState*)const"> + <modify-argument index="3" invalidate-after-use="yes" /> + <modify-argument index="1"> + <replace-type modified-type="byte[]"/> + <conversion-rule class="shell"> + <insert-template name="core.convert_primitive_array_to_java"> + <replace from="%JNITYPE" to="jbyte"/> + <replace from="%JAVATYPE" to="Byte"/> + <replace from="%len" to="%2"/> + </insert-template> + </conversion-rule> + <conversion-rule class="native"> + <insert-template name="core.convert_primitive_array_from_java"> + <replace from="%CTYPE" to="char"/> + <replace from="%JAVATYPE" to="Byte"/> + <replace from="%JNITYPE" to="jbyte"/> + </insert-template> + </conversion-rule> + </modify-argument> + + <modify-argument index="0"> + <conversion-rule class="native"> + jstring %out = qtjambi_from_qstring(__jni_env, %in); + <insert-template name="core.cleanup_convert_primitive_array_from_java"> + <replace from="%JNITYPE" to="jbyte"/> + <replace from="%JAVATYPE" to="Byte"/> + </insert-template> + </conversion-rule> + </modify-argument> + </modify-function> + + <modify-function signature="codecForName(const char*) "> + <access modifier="private"/> + </modify-function> + + </object-type> + + <object-type name="QTranslator"> + <extra-includes> + <include file-name="QTextCodec" location="global"/> + </extra-includes> + <modify-function signature="load(const unsigned char*,int)"> + <access modifier="private"/> + </modify-function> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QTranslator___" quote-before-line="}// class"/> + </inject-code> + + <modify-function signature="translate(const char*,const char*,const char*)const"> + <modify-argument index="1"> + <replace-type modified-type="string"/> + <conversion-rule class="shell"> + QTextCodec *codec = QTextCodec::codecForName("UTF-8"); + QByteArray b1; + if (%in != 0) + b1 = codec->fromUnicode(%in); + + jobject %out = qtjambi_from_qstring(__jni_env, QString(b1)); + </conversion-rule> + + <conversion-rule class="native"> + const char* %out = %in; + </conversion-rule> + </modify-argument> + <modify-argument index="2"> + <replace-type modified-type="string"/> + <conversion-rule class="shell"> + QByteArray b2; + if (%in != 0) + b2 = codec->fromUnicode(%in); + + jobject %out = qtjambi_from_qstring(__jni_env, QString(b2)); + </conversion-rule> + <conversion-rule class="native"> + const char* %out = %in; + </conversion-rule> + + </modify-argument> + <modify-argument index="3"> + <replace-type modified-type="string"/> + <conversion-rule class="shell"> + QByteArray b3; + if (%in != 0) + b3 = codec->fromUnicode(%in); + + jobject %out = qtjambi_from_qstring(__jni_env, QString(b3)); + </conversion-rule> + <conversion-rule class="native"> + const char* %out = %in; + </conversion-rule> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QWaitCondition"> + <modify-function signature="wait(QMutex *, unsigned long)"> + <modify-argument index="2"> + <replace-default-expression with="0xffffffff"/> + </modify-argument> + </modify-function> + <modify-function signature="wait(QReadWriteLock *, unsigned long)"> + <modify-argument index="2"> + <replace-default-expression with="0xffffffff"/> + </modify-argument> + </modify-function> + </object-type> + + + <object-type name="QBuffer"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QBuffer___" quote-before-line="}// class"/> + </inject-code> + <extra-includes> + <include file-name="qt.QNativePointer" location="java"/> + </extra-includes> + + + <modify-function signature="QBuffer(QByteArray*,QObject*)"> + <access modifier="private"/> + <modify-argument index="2"> + <remove-default-expression /> + </modify-argument> + </modify-function> + + + <modify-function signature="setBuffer(QByteArray*)"> + <access modifier="private"/> + </modify-function> + + + <modify-function signature="setData(const char*,int)"> + <access modifier="private"/> + </modify-function> + + </object-type> + + <object-type name="QTimer"> + <inject-code class="java"> + <import-file name="typesystem_core-java.java" quote-after-line="class QTimer___" quote-before-line="}// class"/> + </inject-code> + </object-type> + + <object-type name="QProcess"> + <modify-function signature="finished(int, QProcess::ExitStatus)"> + <rename to="finishedWithStatusCode"/> + </modify-function> + <modify-function signature="setStandardOutputProcess(QProcess*)"> + <modify-argument index="1"> + <reference-count action="set" variable-name="__rcStandardOutputProcess"/> + </modify-argument> + </modify-function> + <modify-function signature="startDetached(QString,QStringList<QString>,QString,long long*)"> + <access modifier="private"/> + <modify-argument index="4"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QProcess___" quote-before-line="}// class"/> + </inject-code> + </object-type> + + + <object-type name="QSignalMapper"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QSignalMapper___" quote-before-line="}// class"/> + </inject-code> + + + <modify-function signature="removeMappings(QObject*)"> + <modify-argument index="1"> + <reference-count action="remove" variable-name="__rcMappings"/> + </modify-argument> + <inject-code class="java" position="end"> + <argument-map index="1" meta-name="%1"/> + if (__rcObjectForObject.containsKey(%1)) __rcObjectForObject.remove(%1); + if (__rcWidgetForObject.containsKey(%1)) __rcWidgetForObject.remove(%1); + </inject-code> + </modify-function> + + <modify-function signature="setMapping(QObject*,QObject*)"> + <modify-argument index="1"> + <reference-count action="add" variable-name="__rcMappings"/> + </modify-argument> + <inject-code class="java" position="end"> + <argument-map index="1" meta-name="%1"/> + <argument-map index="2" meta-name="%2"/> + if (%2 == null) + __rcObjectForObject.remove(%1); + else + __rcObjectForObject.put(%1,%2); + </inject-code> + </modify-function> + + <modify-function signature="setMapping(QObject*,QString)"> + <modify-argument index="1"> + <reference-count action="add" variable-name="__rcMappings"/> + </modify-argument> + </modify-function> + + <modify-function signature="setMapping(QObject*,int)"> + <modify-argument index="1"> + <reference-count action="add" variable-name="__rcMappings"/> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QObject"> + <inject-code class="java"> + <import-file name="typesystem_core-java.java" quote-after-line="class QObject___" quote-before-line="}// class"/> + </inject-code> + </object-type> + + <object-type name="QCoreApplication"> + <modify-function signature="QCoreApplication(int &, char **)"> + <inject-code class="shell"> + // qtjambi_register_variant_handler(); + </inject-code> + </modify-function> + <modify-function signature="translate(const char*,const char*,const char*,QCoreApplication::Encoding)"> + <access modifier="private"/> + <modify-argument index="3"> + <remove-default-expression/> + </modify-argument> + <modify-argument index="4"> + <remove-default-expression/> + </modify-argument> + </modify-function> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QCoreApplication___" quote-before-line="}// class"/> + </inject-code> + + <modify-function signature="translate(const char*,const char*,const char*,QCoreApplication::Encoding,int)"> + <access modifier="private"/> + </modify-function> + </object-type> + + <object-type name="QDataStream"> + <extra-includes> + <include file-name="qt.QNativePointer" location="java"/> + </extra-includes> + <template name="core.datastream_operator_shift_right"> + <insert-template name="core.stream_operator_shift_right"> + <replace from="%STREAM_TYPE" to="QDataStream"/> + </insert-template> + </template> + + <template name="core.datastream_operator_shift_right_primitive"> + <insert-template name="core.datastream_operator_shift_right"> + <replace from="%VALUE_FUNCTION" to="%TYPEValue"/> + </insert-template> + </template> + + <modify-function signature="operator<<(bool)"> + <rename to="writeBoolean"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(signed char)"> + <rename to="writeByte"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(int)"> + <rename to="writeInt"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(long long)"> + <rename to="writeLong"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(float)"> + <rename to="writeFloat"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(double)"> + <rename to="writeDouble"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(short)"> + <rename to="writeShort_char"/> + <access modifier="private"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + + <modify-function signature="operator>>(int&)"> + <rename to="operator_shift_right_int"/> + <modify-argument index="0" replace-value="this"/> + <access modifier="private"/> + </modify-function> + + <modify-function signature="operator>>(bool&)"> + <rename to="operator_shift_right_boolean"/> + <modify-argument index="0" replace-value="this"/> + <access modifier="private"/> + </modify-function> + + <modify-function signature="operator>>(short&)"> + <rename to="operator_shift_right_short"/> + <modify-argument index="0" replace-value="this"/> + <access modifier="private"/> + </modify-function> + + <modify-function signature="operator>>(long long&)"> + <rename to="operator_shift_right_long"/> + <modify-argument index="0" replace-value="this"/> + <access modifier="private"/> + </modify-function> + + <modify-function signature="operator>>(signed char&)"> + <rename to="operator_shift_right_byte"/> + <modify-argument index="0" replace-value="this"/> + <access modifier="private"/> + </modify-function> + + <modify-function signature="operator>>(unsigned short&)"> + <rename to="operator_shift_right_char"/> + <modify-argument index="0" replace-value="this"/> + <access modifier="private"/> + </modify-function> + + <modify-function signature="operator>>(float&)"> + <rename to="operator_shift_right_float"/> + <modify-argument index="0" replace-value="this"/> + <access modifier="private"/> + </modify-function> + + <modify-function signature="operator>>(double&)"> + <rename to="operator_shift_right_double"/> + <modify-argument index="0" replace-value="this"/> + <access modifier="private"/> + </modify-function> + + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QDataStream___" quote-before-line="}// class"/> + </inject-code> + + <inject-code class="native"> + extern "C" JNIEXPORT jstring JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_core_QDataStream_readString_1private) + (JNIEnv *env, jobject, jlong stream) + { + QTJAMBI_DEBUG_TRACE("(native) entering: QDataStream::%FUNCTION_NAME%_native"); + QDataStream *qtStream = (QDataStream *) qtjambi_from_jlong(stream); + + jstring returned = 0; + if (qtStream != 0) { + QString qtString; + operator>>(*qtStream, qtString); + + returned = qtjambi_from_qstring(env, qtString); + } + + return returned; + } + + extern "C" JNIEXPORT void JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_core_QDataStream_writeString_1private) + (JNIEnv *env, jobject, jlong stream, jstring string) + { + QTJAMBI_DEBUG_TRACE("(native) entering: QDataStream::%FUNCTION_NAME%_native"); + QDataStream *qtStream = (QDataStream *) qtjambi_from_jlong(stream); + + if (qtStream != 0) { + QString qtString = qtjambi_to_qstring(env, string); + operator<<(*qtStream, qtString); + } + } + + </inject-code> + + <template name="core.stream_constructor_bytearray"> + // Hold reference to byte array which goes away when the stream dies + private QByteArray byteArray = null; + public %CLASSNAME(QByteArray a, QIODevice.OpenMode mode) { + this(a.nativePointer(), mode); + byteArray = a; + } + + public %CLASSNAME(QByteArray a, QIODevice.OpenModeFlag ... mode) { + this(a.nativePointer(), mode); + byteArray = a; + } + </template> + + <modify-function signature="QDataStream(QByteArray*,QFlags<QIODevice::OpenModeFlag>)"> + <access modifier="private"/> + </modify-function> + <inject-code> + <insert-template name="core.stream_constructor_bytearray"> + <replace from="%CLASSNAME" to="QDataStream"/> + </insert-template> + </inject-code> + + <template name="core.qdatastream_readorwrite_bytes"> + extern "C" JNIEXPORT jint JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_core_QDataStream_%FUNCTION_NAME%) + (JNIEnv *env, jobject, jlong stream, jbyteArray array, jint length) + { + QTJAMBI_DEBUG_TRACE("(native) entering: QDataStream::%FUNCTION_NAME%"); + char *rawBuffer = (char *) env->GetByteArrayElements(array, 0); + + QDataStream *qtStream = (QDataStream *) qtjambi_from_jlong(stream); + int count = qtStream->%QT_FUNCTION_NAME%(rawBuffer, length); + + env->ReleaseByteArrayElements(array, (jbyte *) rawBuffer, 0); + QTJAMBI_DEBUG_TRACE("(native) -> leaving: QDataStream::%FUNCTION_NAME%"); + return qMin(count, (int) length); + } + </template> + + <inject-code class="native"> + <insert-template name="core.qdatastream_readorwrite_bytes"> + <replace from="%FUNCTION_NAME%" to="readBytes"/> + <replace from="%QT_FUNCTION_NAME%" to="readRawData"/> + </insert-template> + <insert-template name="core.qdatastream_readorwrite_bytes"> + <replace from="%FUNCTION_NAME%" to="writeBytes"/> + <replace from="%QT_FUNCTION_NAME%" to="writeRawData"/> + </insert-template> + </inject-code> + </object-type> + + <object-type name="QAbstractFileEngine::UnMapExtensionOption"> + <modify-field name="address"> + <access modifier="private" /> + <rename to="address_private" /> + </modify-field> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QAbstractFileEngine_UnMapExtensionOption___" quote-before-line="}// class"/> + </inject-code> + </object-type> + + <object-type name="QAbstractFileEngine::MapExtensionReturn"> + <modify-field name="address"> + <access modifier="private" /> + <rename to="address_private" /> + </modify-field> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QAbstractFileEngine_MapExtensionReturn___" quote-before-line="}// class"/> + </inject-code> + </object-type> + + <object-type name="QAbstractFileEngine"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QAbstractFileEngine___" quote-before-line="}// class"/> + </inject-code> + </object-type> + + <object-type name="QTextStream"> + <extra-includes> + <include file-name="qt.QNativePointer" location="java"/> + </extra-includes> + + <template name="core.textstream_operator_shift_right"> + <insert-template name="core.stream_operator_shift_right"> + <replace from="%STREAM_TYPE" to="QTextStream"/> + </insert-template> + </template> + + <template name="core.textstream_operator_shift_right_primitive"> + <insert-template name="core.textstream_operator_shift_right"> + <replace from="%VALUE_FUNCTION" to="%TYPEValue"/> + </insert-template> + </template> + + <modify-function signature="operator<<(QBool)"> + <rename to="writeBoolean"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(char)"> + <modify-argument index="0" replace-value="this"/> + <rename to="writeByte"/> + </modify-function> + <modify-function signature="operator<<(signed int)"> + <rename to="writeInt"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(long long)"> + <rename to="writeLong"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(float)"> + <rename to="writeFloat"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(double)"> + <rename to="writeDouble"/> + <modify-argument index="0" replace-value="this"/> + </modify-function> + <modify-function signature="operator<<(signed short)"> + <rename to="writeShort_char"/> + <modify-argument index="0" replace-value="this"/> + <access modifier="private"/> + </modify-function> + + <modify-function signature="operator>>(char&)"> + <access modifier="private"/> + <modify-argument index="0" replace-value="this"/> + <rename to="operator_shift_right_byte"/> + </modify-function> + <modify-function signature="operator>>(signed short&)"> + <access modifier="private"/> + <modify-argument index="0" replace-value="this"/> + <rename to="operator_shift_right_short"/> + </modify-function> + <modify-function signature="operator>>(signed int&)"> + <access modifier="private"/> + <modify-argument index="0" replace-value="this"/> + <rename to="operator_shift_right_int"/> + </modify-function> + <modify-function signature="operator>>(long long&)"> + <access modifier="private"/> + <modify-argument index="0" replace-value="this"/> + <rename to="operator_shift_right_long"/> + </modify-function> + <modify-function signature="operator>>(float&)"> + <access modifier="private"/> + <modify-argument index="0" replace-value="this"/> + <rename to="operator_shift_right_float"/> + </modify-function> + <modify-function signature="operator>>(double&)"> + <access modifier="private"/> + <modify-argument index="0" replace-value="this"/> + <rename to="operator_shift_right_double"/> + </modify-function> + + <modify-function signature="setCodec(const char*)"> + <access modifier="private"/> + </modify-function> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QTextStream___" quote-before-line="}// class"/> + </inject-code> + + <inject-code class="native"> + extern "C" JNIEXPORT jstring JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_core_QTextStream_readString_1native) + (JNIEnv *env, jobject, jlong id) + { + QTJAMBI_DEBUG_TRACE("(native) entering: QTextStream::readString()"); + QTextStream *stream = (QTextStream *) qtjambi_from_jlong(id); + QString str; + (*stream) >> str; + jstring s = qtjambi_from_qstring(env, str); + QTJAMBI_DEBUG_TRACE("(native) -> leaving: QTextStream::readString()"); + return s; + } + + extern "C" JNIEXPORT void JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_core_QTextStream_writeString_1native) + (JNIEnv *env, jobject, jlong id, jstring str) + { + QTJAMBI_DEBUG_TRACE("(native) entering: QTextStream::writeString()"); + QString qstr = qtjambi_to_qstring(env, str); + QTextStream *stream = (QTextStream *) qtjambi_from_jlong(id); + (*stream) << qstr; + QTJAMBI_DEBUG_TRACE("(native) -> leaving: QTextStream::readString()"); + } + </inject-code> + </object-type> + <value-type name="QBitArray"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QBitArray___" quote-before-line="}// class"/> + </inject-code> + </value-type> + + <template name="convert_qtjambifuture_to_native"> + QtJambiFuture %out = %in != 0 ? (const QtJambiFuture& ) *(QtJambiFuture *)qtjambi_from_jlong(%in) : QtJambiFuture(); + </template> + <template name="convert_futurevoid_to_native"> + QtJambiVoidFuture %out = %in != 0 ? (const QtJambiVoidFuture& ) *(QtJambiVoidFuture *)qtjambi_from_jlong(%in) : QtJambiVoidFuture(); + </template> + + <value-type name="QFuture"> + <modify-function signature="operator==(const QFuture &)const"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFuture" /> + <conversion-rule class="native"> + <insert-template name="convert_qtjambifuture_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + </value-type> + + <value-type name="QtJambiFuture"> + <modify-function signature="QFuture(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFuture<T>" /> + <conversion-rule class="native"> + <insert-template name="convert_qtjambifuture_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + </value-type> + + <value-type name="QtJambiVoidFuture"> + <modify-function signature="QFuture(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFutureVoid" /> + <conversion-rule class="native"> + <insert-template name="convert_futurevoid_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + </value-type> + + <object-type name="QFutureWatcherBase"> + <inject-code class="shell-declaration"> + + // private, pure virtual and considered internal + // we need to reimplement them so it will compile + QFutureInterfaceBase dummyBase; + virtual const QFutureInterfaceBase &futureInterface() const { return dummyBase; } + virtual QFutureInterfaceBase &futureInterface() { return dummyBase; } + </inject-code> + </object-type> + + <object-type name="QFutureWatcher"> + <modify-function signature="setFuture(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFuture<T>" /> + <conversion-rule class="native"> + <insert-template name="convert_qtjambifuture_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + </object-type> + + <template name="future_function_in_futurewatcher"> + extern "C" JNIEXPORT jobject JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_core_QFutureWatcher__1_1qt_1future__J) + (JNIEnv *__jni_env, + jobject, + jlong __this_nativeId) + { + QTJAMBI_DEBUG_TRACE("(native) entering: QFutureWatcher::future() const"); + Q_UNUSED(__jni_env) + Q_UNUSED(__this_nativeId) + QtJambiShell_QFutureWatcher *__qt_this = (QtJambiShell_QFutureWatcher *) qtjambi_from_jlong(__this_nativeId); + QTJAMBI_EXCEPTION_CHECK(__jni_env); + Q_ASSERT(__qt_this); + QtJambiFuture __qt_return_value = __qt_this->future(); + + jobject __java_return_value = qtjambi_from_object(__jni_env, &__qt_return_value, "QFuture", "com/trolltech/qt/core/", true); + + QTJAMBI_DEBUG_TRACE("(native) -> leaving: QFutureWatcher::future() const"); + return __java_return_value; + } + </template> + <template name="futures_function_in_futuresynchronizer"> + extern "C" JNIEXPORT jobject JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_core_QFutureSynchronizer__1_1qt_1futures__J) + (JNIEnv *__jni_env, + jobject, + jlong __this_nativeId) + { + QTJAMBI_DEBUG_TRACE("(native) entering: QFutureSynchronizer::futures() const"); + Q_UNUSED(__jni_env) + Q_UNUSED(__this_nativeId) + QtJambiFutureSynchronizer *__qt_this = (QtJambiFutureSynchronizer *) qtjambi_from_jlong(__this_nativeId); + QTJAMBI_EXCEPTION_CHECK(__jni_env); + Q_ASSERT(__qt_this); + QList<QtJambiFuture> __qt_return_value = __qt_this->futures(); + + + jobject __java_return_value = qtjambi_arraylist_new(__jni_env, __qt_return_value.size()); + QList<QtJambiFuture> ::const_iterator __qt_return_value_end_it = __qt_return_value.constEnd(); + for (QList<QtJambiFuture> ::const_iterator __qt_return_value_it = __qt_return_value.constBegin(); __qt_return_value_it != __qt_return_value_end_it; ++__qt_return_value_it) { + QtJambiFuture __qt_tmp = *__qt_return_value_it; + jobject __java_tmp = qtjambi_from_object(__jni_env, &__qt_tmp, "QFuture", "com/trolltech/qt/core/", true); + QTJAMBI_EXCEPTION_CHECK(__jni_env); + qtjambi_collection_add(__jni_env, __java_return_value, __java_tmp); + } + QTJAMBI_EXCEPTION_CHECK(__jni_env); + QTJAMBI_EXCEPTION_CHECK(__jni_env); + QTJAMBI_DEBUG_TRACE("(native) -> leaving: QFutureSynchronizer::futures() const"); + return __java_return_value; + } + </template> + + <object-type name="QtJambiFutureWatcher"> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QFutureWatcher___" quote-before-line="}// class"/> + </inject-code> + <inject-code class="native"> + <insert-template name="future_function_in_futurewatcher" /> + </inject-code> + </object-type> + + <object-type name="QtJambiVoidFutureWatcher"> + <modify-function signature="setFuture(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFutureVoid" /> + <conversion-rule class="native"> + <insert-template name="convert_futurevoid_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + <inject-code> + <import-file name="typesystem_core-java.java" quote-after-line="class QFutureWatcherVoid___" quote-before-line="}// class"/> + </inject-code> + <inject-code class="native"> + <insert-template name="future_function_in_futurewatcher"> + <replace from="QFutureWatcher" to="QFutureWatcherVoid" /> + <replace from="QtJambiFuture" to="QtJambiVoidFuture" /> + <replace from=""QFuture"" to=""QFutureVoid"" /> + </insert-template> + </inject-code> + </object-type> + + <object-type name="QtJambiFutureSynchronizer"> + <modify-function signature="QFutureSynchronizer(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFuture<T>" /> + <conversion-rule class="native"> + <insert-template name="convert_qtjambifuture_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + <modify-function signature="addFuture(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFuture<T>" /> + <conversion-rule class="native"> + <insert-template name="convert_qtjambifuture_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + <modify-function signature="setFuture(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFuture<T>" /> + <conversion-rule class="native"> + <insert-template name="convert_qtjambifuture_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + <modify-function signature="futures()const" remove="all" /> + <inject-code class="native"> + <insert-template name="futures_function_in_futuresynchronizer" /> + </inject-code> + <inject-code class="java"> + <import-file name="typesystem_core-java.java" quote-after-line="class QFutureSynchronizer___" quote-before-line="}// class"/> + </inject-code> + </object-type> + <object-type name="QtJambiVoidFutureSynchronizer"> + <modify-function signature="QFutureSynchronizer(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFutureVoid" /> + <conversion-rule class="native"> + <insert-template name="convert_futurevoid_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + <modify-function signature="addFuture(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFutureVoid" /> + <conversion-rule class="native"> + <insert-template name="convert_futurevoid_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + <modify-function signature="setFuture(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFutureVoid" /> + <conversion-rule class="native"> + <insert-template name="convert_futurevoid_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + <modify-function signature="futures()const" remove="all" /> + <inject-code class="native"> + <insert-template name="futures_function_in_futuresynchronizer"> + <replace from="QFutureSynchronizer" to="QFutureSynchronizerVoid" /> + <replace from="QtJambiFutureSynchronizer" to="QtJambiVoidFutureSynchronizer" /> + <replace from="QtJambiFuture" to="QtJambiVoidFuture" /> + <replace from=""QFuture"" to=""QFutureVoid"" /> + </insert-template> + </inject-code> + <inject-code class="java"> + <import-file name="typesystem_core-java.java" quote-after-line="class QFutureSynchronizerVoid___" quote-before-line="}// class"/> + </inject-code> + </object-type> + + <object-type name="QtJambiFutureIterator"> + <modify-function signature="QFutureIterator(const QFuture &)"> + <modify-argument index="1"> + <replace-type modified-type="qt.core.QFuture<T>" /> + <conversion-rule class="native"> + <insert-template name="convert_qtjambifuture_to_native" /> + </conversion-rule> + </modify-argument> + </modify-function> + </object-type> + + <namespace-type name="QtConcurrent"> + <inject-code class="java"> + <import-file name="typesystem_core-java.java" quote-after-line="class QtConcurrent___" quote-before-line="}// class"/> + </inject-code> + </namespace-type> + +</typesystem>