diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-08-01 11:35:23 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-08-01 11:35:23 +0100 |
| commit | 21737feb18d88a2465ab0e07f2fb83cff702da4b (patch) | |
| tree | 3535c213f81ac7e33b8a3c57b5d45de6745a21cc | |
| parent | 7f09029743b7fcba940c4b52f467ae8ca072a727 (diff) | |
Extract generateAssertLessThanIntMax()
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java index 6bbd93b..b12f8d5 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java @@ -367,19 +367,9 @@ public class JavaTransient0Generator implements Generator { NativeTypes.INT_64 )); - statements.add(new JavaIfStatement( - new JavaBinaryOperation( - JavaBinaryOperator.GREATER_THAN, - new JavaRef(bytesLengthVariableName), - new JavaStaticFieldAccess(JavaTypeRef.INT_BOXED, JavaIdentifier.of("MAX_VALUE")) - ), - new JavaBlock(List.of( - new JavaThrowStatement(new JavaNewExpression( - JavaTypeRef.IO_EXCEPTION, - List.of(new JavaStringLiteral("Strings longer than Integer.MAX_VALUE are not supported")) - )) - )), - new JavaBlock(List.of()) + statements.add(generateAssertLessThanIntMax( + bytesLengthVariableName, + "Strings longer than Integer.MAX_VALUE are not supported" )); statements.add(new JavaLocalVariableDeclaration( @@ -916,19 +906,9 @@ public class JavaTransient0Generator implements Generator { statements.addAll(generateDecode(size, NativeTypes.INT_64)); - statements.add(new JavaIfStatement( - new JavaBinaryOperation( - JavaBinaryOperator.GREATER_THAN, - new JavaRef(size), - new JavaStaticFieldAccess(JavaTypeRef.INT_BOXED, JavaIdentifier.of("MAX_VALUE")) - ), - new JavaBlock(List.of( - new JavaThrowStatement(new JavaNewExpression( - JavaTypeRef.IO_EXCEPTION, - List.of(new JavaStringLiteral("Lists longer than Integer.MAX_VALUE are not supported")) - )) - )), - new JavaBlock(List.of()) + statements.add(generateAssertLessThanIntMax( + size, + "Lists longer than Integer.MAX_VALUE are not supported" )); statements.add(new JavaLocalVariableDeclaration( @@ -1233,6 +1213,26 @@ public class JavaTransient0Generator implements Generator { ); } + private static JavaIfStatement generateAssertLessThanIntMax( + JavaIdentifier bytesLengthVariableName, + String errorMessage + ) { + return new JavaIfStatement( + new JavaBinaryOperation( + JavaBinaryOperator.GREATER_THAN, + new JavaRef(bytesLengthVariableName), + new JavaStaticFieldAccess(JavaTypeRef.INT_BOXED, JavaIdentifier.of("MAX_VALUE")) + ), + new JavaBlock(List.of( + new JavaThrowStatement(new JavaNewExpression( + JavaTypeRef.IO_EXCEPTION, + List.of(new JavaStringLiteral(errorMessage)) + )) + )), + new JavaBlock(List.of()) + ); + } + private JavaPackageName namespaceToJavaTransient0PackageName(NamespaceName namespaceName) { return this.javaGenerator.namespaceToJavaPackageName(namespaceName).add(JavaIdentifier.of("transient0")); } |
