(require 'jde-gen-extra)
(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 <a href=\"mailto:" '(user-mail-address) "\">" (user-full-name) "</a>" '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 <code>" '(jde-gen-get-class-buffer-name) "</code> 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 <code>java.lang.Object<code> is called." 'n>
" */" 'n>
"public final boolean equals(Object o) {" 'n>
" return super.equals(o);" 'n>
"}" 'n>
'n>
"/**" 'n>
" * Ensure the hashCode method of <code>java.lang.Object<code> 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 <a href=\"mailto:" '(user-mail-address) "\">" (user-full-name) "</a>" '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 <code>" '(jde-gen-get-class-buffer-name) "</code> 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)))