Here is a new template I'm using which seems generally useful. It
builds a for loop with an iterator and it "bound" to "foriter":
for (Iterator <var> = <coll>.iterator(); <var>iter.hasNext();)
{
<var>.next();
} // end of for (Iterator iter = dups.iterator(); iter.hasNext();)
The template prompts for <var> and <coll>. I hope you find it useful
enough to include in jde. If you'd prefer the submission in another
format (such as a compile jde-gen.el file, I'm happy to do that.
(defcustom jde-gen-cflow-for-iter
'(
"(if (jde-parse-comment-or-quoted-p)"
"'(l \"foriter\")"
"'(l '> \"for (Iterator \" (p \"variable: \" var) \" = \""
"(p \"collection: \" coll) \".iterator(); \""
"(s var) \".hasNext();\""
"\")\""
"(if jde-gen-k&r "
"()"
"'>'n)"
"\"{\"'>'n'>'r'n"
"(s var) \".next();\" '>'n'>"
"\"} // end of for (Iterator \" (s var) \" = \" (s coll) \".iterator(); \""
"(s var) \".hasNext();)\"'>'n'>)"
")"
)
"Skeleton for iterator statement. To insert the statement at point,
type foriter and then space. Note that abbrev mode must be
enabled. See `jde-enable-abbrev-mode' for more information."
:group 'jde-gen
:type '(repeat string)
:set '(lambda (sym val)
(tempo-define-template
"jde-for-iter"
(jde-gen-read-template val)
"foriter"
"Insert a Java for iterator statement"
'jde-tempo-tags)
(set-default sym val)))
(defun jde-gen-load-cflow-abbrevs ()
"Defines jde-mode abbrevs for the control flow templates."
(define-abbrev local-abbrev-table "if" "" 'tempo-template-jde-if 0)
(define-abbrev local-abbrev-table "else" "" 'tempo-template-jde-else 0)
(define-abbrev local-abbrev-table "ife" "" 'tempo-template-jde-if-else 0)
(define-abbrev local-abbrev-table "while" "" 'tempo-template-jde-while 0)
(define-abbrev local-abbrev-table "for" "" 'tempo-template-jde-for 0)
(define-abbrev local-abbrev-table "fori" "" 'tempo-template-jde-for-i 0)
(define-abbrev local-abbrev-table "foriter" "" 'tempo-template-jde-for-iter 0)
(define-abbrev local-abbrev-table "switch" "" 'tempo-template-jde-switch 0)
(define-abbrev local-abbrev-table "case" "" 'tempo-template-jde-case 0)
(define-abbrev local-abbrev-table "try" "" 'tempo-template-jde-try-catch 0)
(define-abbrev local-abbrev-table "catch" "" 'tempo-template-jde-catch 0)
(define-abbrev local-abbrev-table "tryf" "" 'tempo-template-jde-try-finally 0)
(define-abbrev local-abbrev-table "finally" "" 'tempo-template-jde-finally 0)
(define-abbrev local-abbrev-table "main" "" 'tempo-template-jde-main 0))
Cheers,
--
Robert