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

36 lines
1.4 KiB
Smarty
Vendored

function! s:__equals(class)
let result = "@Override\n"
let result .= "public boolean equals(Object o) {\n"
let result .= "if (this == o) return true;\n"
let result .= "if (o == null || getClass() != o.getClass()) return false;\n\n"
let result .= a:class.name ." object = (". a:class.name .") o;\n\n"
let idx = 0
for field in a:class.fields
if idx != len(a:class.fields) - 1
let result .= "if "
else
let result .= "return !"
endif
if index(g:J_PRIMITIVE_TYPES, field.type) > -1
if field.type == "double"
let result .= "(Double.compare(". field.name .", object.". field.name .") != 0)"
elseif field.type == "float"
let result .= "(Float.compare(". field.name .", object.". field.name .") != 0)"
else
let result .= "(". field.name ." != object.". field.name .")"
endif
elseif field.isArray
let result .= "(!java.util.Arrays.equals(". field.name .", object.". field.name ."))"
else
let result .= "(". field.name ." != null ? !". field.name .".equals(object.". field.name .") : object.". field.name ." != null)"
endif
if idx != len(a:class.fields) - 1
let result .= " return false;\n"
else
let result .= ";\n"
endif
let idx += 1
endfor
return result. "}"
endfunction'