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 package
                                              :if-exists :supersede))
(defmacro write-class-defs (&body defs)
  `(list
    ,@(mapcar (fw.lu:destructuring-lambda ((&key java-class dest name))
                `(write-class-def ,java-class ,dest ,name))
              defs)))


(defun run ()
  (write-class-defs
    (:java-class "org.apache.curator.framework.CuratorFramework"
     :name 'fwoar.lw-curator.ji.framework::class
     :dest "cf.lisp")

    (:java-class "org.apache.curator.framework.CuratorFrameworkFactory"
     :name 'fwoar.lw-curator.ji.cff::class
     :dest "cff.lisp")

    (:java-class "org.apache.curator.retry.BoundedExponentialBackoffRetry"
     :name 'fwoar.lw-curator.ji.bebr::class
     :dest "bebr.lisp")

    (:java-class "org.apache.curator.framework.api.GetChildrenBuilder"
     :name 'fwoar.lw-curator.ji.gcb::class
     :dest "gcb.lisp")

    (:java-class "org.apache.curator.framework.api.GetDataBuilder"
     :name 'fwoar.lw-curator.ji.gdb::class
     :dest "gdb.lisp")

    (:java-class "java.util.ArrayList"
     :name 'fwoar.lw-curator.ji.al::class
     :dest "al.lisp")))

#+fwoar.gen
(progn
  (run)
  (ql:quickload :lw-curator))