(define (arg-map->jvalue-array arg-map) (let ((args (make-jvalue-array (length arg-map)))) (fold (lambda (arg-mapping i) (case (cadr arg-mapping) ((boolean) (set-boolean-jvalue args i (car arg-mapping))) ((byte) (set-byte-jvalue args i (car arg-mapping))) ((char) (set-char-jvalue args i (car arg-mapping))) ((short) (set-short-jvalue args i (car arg-mapping))) ((int) (set-int-jvalue args i (car arg-mapping))) ((long) (set-long-jvalue args i (car arg-mapping))) ((float) (set-float-jvalue args i (car arg-mapping))) ((double) (set-double-jvalue args i (car arg-mapping))) ((java.lang.String) (set-object-jvalue args i (if (string? (car arg-mapping)) (jstring (car arg-mapping)) (car arg-mapping)))) (else (set-object-jvalue args i (car arg-mapping)))) (+ i 1)) 0 arg-map) args))