summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-08-01 11:35:23 +0100
committerMichael Williamson <mike@zwobble.org>2026-08-01 11:35:23 +0100
commit21737feb18d88a2465ab0e07f2fb83cff702da4b (patch)
tree3535c213f81ac7e33b8a3c57b5d45de6745a21cc /src/main
parent7f09029743b7fcba940c4b52f467ae8ca072a727 (diff)
Extract generateAssertLessThanIntMax()
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java52
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"));
}