git.fiddlerwoaroof.com
Raw Blame History
(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")))