From 21737feb18d88a2465ab0e07f2fb83cff702da4b Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 1 Aug 2026 11:35:23 +0100 Subject: Extract generateAssertLessThanIntMax() --- .../javatransient0/JavaTransient0Generator.java | 52 +++++++++++----------- 1 file changed, 26 insertions(+), 26 deletions(-) (limited to 'src/main/java/org/zwobble') 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")); } -- cgit v1.2.3