;; -*- emacs-lisp -*- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; $Id: templates.el,v 1.7 2005/08/02 19:34:55 ole Exp $ ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; collection of code templates ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'jde-gen-extra) ;; ask for parameters (setq tempo-interactive t) (defconst jde-java-buffer-header (list "/*" 'n " * " '(file-name-nondirectory buffer-file-name) 'n " *" 'n " * Copyright (c) 2004 Ole Arndt, all rights reserved." 'n " *" 'n " * Author: " '(user-full-name) " <" '(user-mail-address) ">" 'n " * Created " '(current-time-string) 'n " */" 'n 'n ) ) (defun jde-gen-java-buffer-header () (cons 'l jde-java-buffer-header)) (defalias 'jde-gen-buffer-header (tempo-define-template "java-buffer-header"jde-java-buffer-header "buffer-header" "Generate a copyright header for java source buffers.")) (defconst jde-gen-enumeration-list (list "/**" 'n> " * A typesave enumeration class." 'n> " *" 'n> " * @author " (user-full-name) "" 'n> " * @version $Id: templates.el,v 1.7 2005/08/02 19:34:55 ole Exp $" 'n> " */" 'n> "public abstract class " '(jde-gen-get-class-buffer-name) " implements java.io.Serializable {" 'n> "private final transient String name;" 'n> 'n> "/**" 'n> " * Constructs a new " '(jde-gen-get-class-buffer-name) " with "'n> " * a name." 'n> " * @param name the name o the enumeration." 'n> " */" 'n> "protected " '(jde-gen-get-class-buffer-name) "(String name) {" 'n> "this.name = name;" 'n> "}" 'n> 'n> "/**" 'n> " * Example abstract operation." 'n> " */" 'n> "public abstract void eval();" 'n> 'n> "// Inner classes as instances" 'n> 'n> "public static final ONE = new " '(jde-gen-get-class-buffer-name) "(\"one\") {" 'n> "public void eval() {" 'n> "}" 'n> "};" 'n> 'n> "// Handle identity and serialisation" 'n> 'n> "/**" 'n> " * Return the name." 'n> " */" 'n> "public final String toString() {" 'n> "return name;" 'n> "}" 'n> 'n> "/**" 'n> " * Ensure the equals method of java.lang.Object is called." 'n> " */" 'n> "public final boolean equals(Object o) {" 'n> " return super.equals(o);" 'n> "}" 'n> 'n> "/**" 'n> " * Ensure the hashCode method of java.lang.Object is called." 'n> " */" 'n> "public final int hashCode() {" 'n> " return super.hashCode();" 'n> "}" 'n> 'n> "private static int nextId = 0;" 'n> "private final int id = nextId++;" 'n> "private static final " '(jde-gen-get-class-buffer-name) "[] instances = { ONE };" 'n> "Object readResolve() throws java.io.ObjectStreamException {" 'n> " return instances[id];" 'n> "}" 'n> "} // " '(jde-gen-get-class-buffer-name) 'n> )) (defalias 'jde-gen-enumeration (tempo-define-template "enumeration" jde-gen-enumeration-list "enumeration" "Generate an enumeration skeleton.")) (defalias 'jde-gen-enumeration-buffer (tempo-define-template "enumeration-buffer" (list '(jde-gen-java-buffer-header) (cons 'l jde-gen-enumeration-list) '(jde-package-update)) "enumeration-buffer" "Generate an enumeration skeleton buffer.")) (defconst jde-gen-derived-enumeration-list (list "/**" 'n> " * A typesave enumeration class." 'n> " *" 'n> " * @author " (user-full-name) "" 'n> " * @version $Id: templates.el,v 1.7 2005/08/02 19:34:55 ole Exp $" 'n> " */" 'n> "public abstract class " '(jde-gen-get-class-buffer-name) " " '(jde-gen-get-extend-class) "{" 'n> 'n> "/**" 'n> " * Constructs a new " '(jde-gen-get-class-buffer-name) " with "'n> " * a name." 'n> " * @param name The name of the enumeration." 'n> " */" 'n> "protected " '(jde-gen-get-class-buffer-name) "(String name) {" 'n> "super(name);" 'n> "}" 'n> 'n> 'n> "// Inner classes as instances" 'n> 'n> "public static final ONE = new " '(jde-gen-get-class-buffer-name) "(\"one\") {" 'n> "};" 'n> 'n> "private static int nextId = 0;" 'n> "private final int id = nextId++;" 'n> "private static final " '(jde-gen-get-class-buffer-name) "[] instances = { ONE };" 'n> "Object readResolve() throws java.io.ObjectStreamException {" 'n> " return instances[id];" 'n> "}" 'n> "} // " '(jde-gen-get-class-buffer-name) 'n> )) (defalias 'jde-gen-derived-enumeration (tempo-define-template "derived-enumeration" jde-gen-derived-enumeration-list "derived-enumeration" "Generate an derived-enumeration skeleton.")) (defalias 'jde-gen-derived-enumeration-buffer (tempo-define-template "derived-enumeration-buffer" (list '(jde-gen-java-buffer-header) (cons 'l jde-gen-derived-enumeration-list) '(jde-package-update)) "derived-enumeration-buffer" "Generate an derived-enumeration skeleton buffer.")) (unless (fboundp 'jde-gen-class-name) (defun jde-gen-class-name () (jde-gen-get-class-buffer-name)))