diff options
author | Stuart Sierra <mail@stuartsierra.com> | 2008-12-13 21:59:56 +0000 |
---|---|---|
committer | Stuart Sierra <mail@stuartsierra.com> | 2008-12-13 21:59:56 +0000 |
commit | 5f9aa01a9a5cd4dd829d76fe4cf861cacee3ae44 (patch) | |
tree | cf9c50bc3498cc6eb31d4ceb23c520f5e5923c1b /src/clojure/contrib/enum | |
parent | 244e9e02d7d97d6456c6c6033a4c26b7f5ed2619 (diff) |
Removed old namespace-is-directory files.
Diffstat (limited to 'src/clojure/contrib/enum')
-rw-r--r-- | src/clojure/contrib/enum/enum.clj | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/src/clojure/contrib/enum/enum.clj b/src/clojure/contrib/enum/enum.clj deleted file mode 100644 index 33ca2d23..00000000 --- a/src/clojure/contrib/enum/enum.clj +++ /dev/null @@ -1,46 +0,0 @@ -;;; enum.clj -- Java enum classes in Clojure - -;; by Stuart Sierra, http://www.stuartsierra.com/ -;; May 29, 2008 - -;; Copyright (c) 2008 Stuart Sierra. All rights reserved. The use and -;; distribution terms for this software are covered by the Common -;; Public License 1.0 (http://www.opensource.org/licenses/cpl1.0.php) -;; which can be found in the file CPL.TXT at the root of this -;; distribution. By using this software in any fashion, you are -;; agreeing to be bound by the terms of this license. You must not -;; remove this notice, or any other, from this software. - - -;; This file helps define Java Enums, introduced in Java 1.5. Use it -;; when you need to define an enum to pass to a Java method. -;; -;; This file depends on genclass.clj in the Clojure distribution. - - -(clojure/ns clojure.contrib.enum) - -(defmacro defenum - "Generates and loads a subclass of java.lang.Enum, then - defs symbols as enumerated instances of that class. - - Example: (defenum my.package.MyEnum FOO BAR) - ;; FOO and BAR are now instances of MyEnum - - Java equivalent: enum MyEnum { FOO, BAR }; - - Caveats: - 1. The generated class has no values() method. - 2. The generated class returns false for Class.isEnum(). - 3. Enum.valueOf(Class, String) will not work. - 4. Redefining an enum is allowed, but enumeration resets - to zero." - [class & symbols] - ;; Can't load a class twice, so check first: - (try (. Class (forName (str class))) - (catch java.lang.ClassNotFoundException e - (gen-and-load-class (str class) :extends java.lang.Enum))) - (cons 'do - (map (fn [sym val] - `(def ~sym (new ~class ~(str sym) ~val))) - symbols (iterate inc 0)))) |