|
1 | 1 | import re |
2 | | -from dataclasses import dataclass |
3 | | -from typing import List, Optional |
4 | | - |
5 | | -JAVA_KEYWORDS = { |
6 | | - "abstract", "assert", "boolean", "break", "byte", "case", "catch", |
7 | | - "char", "class", "const", "continue", "default", "do", "double", |
8 | | - "else", "enum", "extends", "final", "finally", "float", "for", |
9 | | - "goto", "if", "implements", "import", "instanceof", "int", |
10 | | - "interface", "long", "native", "new", "package", "private", |
11 | | - "protected", "public", "return", "short", "static", "strictfp", |
12 | | - "super", "switch", "synchronized", "this", "throw", "throws", |
13 | | - "transient", "try", "void", "volatile", "while" |
14 | | -} |
15 | | - |
16 | | -JAVA_BUILTIN_TYPES = { |
17 | | - "Boolean", "Byte", "Character", "Double", "Float", "Integer", "List", "Long", "Short", |
18 | | - "Class", "Object", "String", "Void" |
19 | | -} |
20 | | - |
21 | | -JAVA_LITERALS = { |
22 | | - "null", "true", "false" |
23 | | -} |
24 | | - |
25 | | -indent_lvl1 = " " |
26 | | -indent_lvl2 = indent_lvl1 * 2 |
27 | | -indent_lvl3 = indent_lvl1 * 3 |
28 | | -return_indent = " " |
29 | | - |
30 | | - |
31 | | -@dataclass |
32 | | -class Field: |
33 | | - name: str |
34 | | - type: str |
35 | | - description: Optional[str] = None |
| 2 | +from typing import List |
| 3 | + |
| 4 | +from src.java_model import JAVA_KEYWORDS, JAVA_BUILTIN_TYPES, JAVA_LITERALS, indent_lvl1, indent_lvl2, indent_lvl3, \ |
| 5 | + return_indent, Field |
36 | 6 |
|
37 | 7 |
|
38 | 8 | def generate_fields_block(fields: List[Field]) -> str: |
@@ -129,7 +99,8 @@ def generate_equals(class_name: str, fields: List[Field]) -> str: |
129 | 99 | if i == 0: |
130 | 100 | equals.append(f"{indent_lvl2}return Objects.equals({getter_name}(), that.{getter_name}()){semicolon}") |
131 | 101 | else: |
132 | | - equals.append(f"{indent_lvl2}{return_indent}&& Objects.equals({getter_name}(), that.{getter_name}()){semicolon}") |
| 102 | + equals.append( |
| 103 | + f"{indent_lvl2}{return_indent}&& Objects.equals({getter_name}(), that.{getter_name}()){semicolon}") |
133 | 104 | equals.append(f"{indent_lvl1}}}") |
134 | 105 |
|
135 | 106 | return "\n".join(equals) |
@@ -186,4 +157,3 @@ def _validate_java_identifier(name: str) -> None: |
186 | 157 |
|
187 | 158 | if not re.match(r"^[A-Za-z_][A-Za-z0-9_]*$", name): |
188 | 159 | raise ValueError(f"Invalid Java identifier: '{name}'") |
189 | | - |
0 commit comments