(defpackage :fwoar.lw-curator.generate-ji-definitions (:use :cl ) (:export )) (in-package :fwoar.lw-curator.generate-ji-definitions) (defun jinterface-dest (dest) (merge-pathnames (parse-namestring dest) (asdf:component-pathname (asdf:find-component :lw-curator "jinterface")))) (defun write-class-def (java-class-name dest package) (lw-ji:write-java-class-definitions-to-file java-class-name (jinterface-dest dest) :prefix "" :lisp-name nil :create-defpackage t :package-name package :if-exists :overwrite)) (defmacro write-class-defs (&body defs) `(progn ,@(mapcar (fw.lu:destructuring-lambda ((&key java-class dest package)) `(write-class-def ,java-class ,dest ,package)) defs))) (defun run () (write-class-defs (:java-class "org.apache.curator.framework.CuratorFramework" :package :fwoar.lw-curator.ji.framework :dest "cf.lisp") (:java-class "org.apache.curator.framework.api.GetChildrenBuilder" :package :fwoar.lw-curator.ji.gcb :dest "gcb.lisp") (:java-class "org.apache.curator.framework.api.GetDataBuilder" :package :fwoar.lw-curator.ji.gdb :dest "gdb.lisp") (:java-class "java.util.ArrayList" :package :fwoar.lw-curator.ji.al :dest "al.lisp")))