Wrapper JNI para a função C usando SWIG - qual deve ser o mapa de tipos?

Estou tentando criar o wrapper JNI para as seguintes funções em C:

int err = new_instance(const char* name, instance_t* instance);

name - entrada,instance - resultado

int err = get_value(const instance_t instance, int *val);

instance - entrada,val - resultado

Ondeinstance_t é definido como:

typedef void* instance_t;

Estou totalmente perdido no manual SWIG para Java, pois ele não suporta apenas parâmetros de entrada como o tipo de saída. Não tive nenhum problema com o wrapper Python (mostrado abaixo).

Qual é a maneira correta de usar o typemap no caso de Java?
// instance_t [argout]
%typemap(in, numinputs=0) instance_t* instance (instance_t temp = 0) {
    $1 = &temp;
}
%typemap(argout) instance_t *instance {
    %append_output(PyLong_FromLongLong((long long)* $1));
}
// instance_t [in]
%typemap(in) instance_t instance {
    $1 = (instance_t) PyLong_AsLongLong($input);
}

questionAnswers(1)

yourAnswerToTheQuestion