<typesystem package="com.trolltech.examples.generator" default-superclass="com.trolltech.qt.QtJambiObject"> <load-typesystem name=":/trolltech/generator/typesystem_core.txt" generate="no" /> <load-typesystem name=":/trolltech/generator/typesystem_gui.txt" generate="no" /> <template name="from_nativepointer_to_value_type"> public final %RETURN_TYPE% %FUNCTION_NAME%() { return %RETURN_TYPE%.fromNativePointer(%ORIGINAL_FUNCTION_NAME%()); } </template> <namespace-type name="Game"> <include file-name="gamenamespace.h" location="local" /> </namespace-type> <enum-type name="Game::AnimationType" extensible="yes" /> <enum-type name="Game::ObjectFlag" flags="Game::ObjectFlags" /> <enum-type name="Game::WalkingDirection" /> <enum-type name="Game::ActionType" extensible="yes"> <reject-enum-value name="Take" /> </enum-type> <interface-type name="AbstractGameObject"> <modify-function signature="perform(Game::ActionType,AbstractGameObject**,int)"> <modify-argument index="2"> <replace-type modified-type="com.trolltech.examples.generator.AbstractGameObjectInterface[]" /> <conversion-rule class="shell"> jobjectArray %out = qtjambi_from_interface_array(__jni_env, %in, %3, "AbstractGameObjectInterface", "AbstractGameObject$ConcreteWrapper", "com/trolltech/examples/generator/"); </conversion-rule> <conversion-rule class="native"> QVector<AbstractGameObject *> gameObjects; int arrayLength = __jni_env->GetArrayLength((jarray) %in); for (int i=0; i<arrayLength; ++i) { jobject javaGameObject = __jni_env->GetObjectArrayElement((jobjectArray) %in, i); QtJambiLink *link = QtJambiLink::findLink(__jni_env, javaGameObject); AbstractGameObject *gameObject = (AbstractGameObject* ) qtjambi_to_interface(__jni_env, link, "AbstractGameObjectInterface", "com/trolltech/examples/generator/", "__qt_cast_to_AbstractGameObject"); gameObjects.append(gameObject); } AbstractGameObject **%out = gameObjects.data(); </conversion-rule> </modify-argument> <modify-argument index="3"> <remove-argument /> <conversion-rule class="shell"> // intentionally empty </conversion-rule> <conversion-rule class="native"> int %out = __jni_env->GetArrayLength((jarray) %2); </conversion-rule> </modify-argument> </modify-function> </interface-type> <object-type name="GameAction" polymorphic-base="yes"> <modify-function signature="clone() const"> <modify-argument index="return"> <define-ownership class="shell" owner="c++" /> </modify-argument> </modify-function> </object-type> <object-type name="GameAnimation" /> <object-type name="GameGrammar"> <modify-function signature="addVerb(const QString &, GameAction *)"> <modify-argument index="2"> <define-ownership class="java" owner="c++" /> </modify-argument> </modify-function> </object-type> <object-type name="GameObject"> <modify-function signature="rposition()"> <access modifier="private" /> <rename to="rposition_private" /> </modify-function> <inject-code> <insert-template name="from_nativepointer_to_value_type"> <replace from="%RETURN_TYPE%" to="Point3D" /> <replace from="%FUNCTION_NAME%" to="rposition" /> <replace from="%ORIGINAL_FUNCTION_NAME%" to="rposition_private" /> </insert-template> </inject-code> <modify-function signature="setAnimation(GameAnimation *)"> <modify-argument index="1"> <define-ownership class="java" owner="c++" /> </modify-argument> </modify-function> </object-type> <object-type name="LookAction" polymorphic-id-expression="%1->type() == Game::Look"/> <object-type name="PickUpAction" polymorphic-id-expression="%1->type() == Game::PickUp"/> <object-type name="UseAction" polymorphic-id-expression="%1->type() == Game::Use"/> <object-type name="GameScene"> <extra-includes> <include file-name="QStyleOptionGraphicsItem" location="global" /> </extra-includes> <modify-function signature="setEgoObject(AbstractGameObject *)"> <modify-argument index="1"> <define-ownership class="java" owner="c++" /> </modify-argument> </modify-function> <modify-function signature="addGameObject(AbstractGameObject *)"> <modify-argument index="1"> <define-ownership class="java" owner="c++" /> </modify-argument> </modify-function> </object-type> <value-type name="Point3D"> <modify-function signature="rx()"> <remove /> </modify-function> <modify-function signature="ry()"> <remove /> </modify-function> <modify-function signature="rz()"> <remove /> </modify-function> </value-type> <suppress-warning text="*GameObject::enum_1*" /> <suppress-warning text="*class 'GameAction' inherits from polymorphic class 'GameAction'*" /> </typesystem>