1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 09:40:04 +08:00
SpaceVim/bundle/vim-javacomplete2/plugin/res/gen__class_singleton.tpl
2022-11-02 00:34:34 +08:00

25 lines
1.0 KiB
Smarty
Vendored

function! s:__class_singleton(class, options)
let result = "package ". a:options.package .";\n\n"
let result .= "public class ". a:options.name
if has_key(a:options, 'extends')
let result .= " extends ". a:options['extends']
endif
if has_key(a:options, 'implements')
let result .= " implements ". a:options['implements']
endif
let result .= " {\n"
for fieldKey in keys(get(a:options, 'fields', {}))
let field = a:options['fields'][fieldKey]
let result .= field['mod']. " ". field['type']. " ". field['name']. ";\n"
endfor
let name = a:options['name']
let result .= "\nprivate ". name. "() {\n\n}\n"
let result .= "\npublic static ". name. " getInstance() {\n"
let result .= "return ". name. "Holder.INSTANCE;\n"
let result .= "}\n"
let result .= "\nprivate static class ". name. "Holder {\n"
let result .= "private static final ". name. " INSTANCE = new ". name. "();\n"
let result .= "}\n"
return result . "\n}"
endfunction