Im attempting to create a named class inside another namespace like
this:

(ns ide.handlers
  (:import [org.eclipse.ui.commands AbstractHandler]))


(defmacro new-handler-class [n event & body]
 `(do
      (ns ~n
        (:gen-class :extends
~'org.eclipse.ui.commands.AbstractHandler :init ~'init))
      (defn ~'-init [] [[][]])
      (defn ~'-execute [~'this ~event]
        ~...@body)))

(new-handler-class ide.KeyTest _
  (.print System/out "HI"))

However, when i (compile 'ide.handlers) it generate a class named
KeyTest$_init_307.class along with KeyTest.class.
When i attempt to launch, i get the following error

Caused by: java.io.FileNotFoundException: Could not locate ide/
KeyTest__init.class or ide/KeyTest.clj on classpath:

So, apparently i need a KeyTest_init instead of a KeyTest$_init_307?
Why in the heck is KeyTest.class not referring to the KeyTest
$_init_307?  How do i get this to work? I don't want to create a new
file per class name. And renaming the file doesn't work, i guess the
class name is stored inside somewhere.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to