(defun insert-accessor (type name longname)
(setq capitalName (concat (upcase (substring name 0 1)) (substring name 1 nil)))
(insert-string (concat "
/**
* " longname "を設定する。
* @param " name " " longname "
*/
public void set" capitalName "(" type " " name ") {
this." name " = " name ";
}
/**
* " longname "を取得する。
* @return " longname "
*/
public " type " get" capitalName "() {
return " name ";
}
"))
)
(defun insert-accessor-region ()
(interactive)
(setq text (car kill-ring))
(while (not (eq text nil))
(setq p (+ (string-match "\n" text) 1))
(setq l (substring text 0 p))
(setq text (substring text p nil))
(string-match " */\\*+ *\\([^ ]*\\) *\\*/" l)
(setq longname (match-string 1 l))
(setq p (+ (string-match "\n" text) 1))
(if (eq p nil) (setq p (- (length text) 1)))
(setq l (substring text 0 p))
(setq text (substring text p nil))
(string-match ".* \\([^ ]*\\) +\\([^ ]*\\)[=; ]" l)
(setq type (match-string 1 l))
(setq name (match-string 2 l))
(insert-accessor type name longname)
)
)
(global-set-key "\C-ca" 'insert-accessor-region)
|