File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -138,17 +138,25 @@ def generate_hash_code(fields: List[Field]) -> str:
138138 hash_code = [
139139 "" ,
140140 f"{ indent_lvl1 } @Override" ,
141- f"{ indent_lvl1 } public int hashCode() {{" ,
142- f"{ indent_lvl2 } return Objects.hash("
141+ f"{ indent_lvl1 } public int hashCode() {{"
143142 ]
144143
145144 for i , field in enumerate (fields ):
146145 _validate_java_identifier (field .name )
147146 getter_name = "get" + field .name [0 ].upper () + field .name [1 :]
148147 comma = "," if i < (len (fields ) - 1 ) else ""
149- hash_code .append (f"{ indent_lvl2 } { getter_name } (){ comma } " )
150148
151- hash_code .append (f"{ indent_lvl2 } );" )
149+ if len (fields ) == 1 :
150+ hash_code .append (f"{ indent_lvl2 } return Objects.hash({ getter_name } ());" )
151+ elif len (fields ) > 1 and i == 0 :
152+ hash_code .append (f"{ indent_lvl2 } return Objects.hash(" )
153+ hash_code .append (f"{ indent_lvl2 } { getter_name } (){ comma } " )
154+ elif len (fields ) > 1 and i == (len (fields ) - 1 ):
155+ hash_code .append (f"{ indent_lvl2 } { getter_name } (){ comma } " )
156+ hash_code .append (f"{ indent_lvl2 } );" )
157+ else :
158+ hash_code .append (f"{ indent_lvl2 } { getter_name } (){ comma } " )
159+
152160 hash_code .append (f"{ indent_lvl1 } }}" )
153161
154162 return "\n " .join (hash_code )
Original file line number Diff line number Diff line change @@ -155,6 +155,16 @@ def test_generate_hash_code():
155155 assert generate_hash_code (attributes ) == expected
156156
157157
158+ def test_generate_hash_code_one_field ():
159+ attr = field_exampleAttribute_int
160+ expected = """
161+ @Override
162+ public int hashCode() {
163+ return Objects.hash(getExampleAttribute());
164+ }"""
165+ assert generate_hash_code ([attr ]) == expected
166+
167+
158168def test_generate_hash_code_invalid_name ():
159169 for name in illegal_names :
160170 attr = Field (name = name , type = "String" )
You can’t perform that action at this time.
0 commit comments