diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java | 16 |
1 files changed, 15 insertions, 1 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 2dff24b..78cbca4 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 @@ -362,13 +362,27 @@ 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(new JavaLocalVariableDeclaration( Optional.empty(), bytesVariableName, Optional.of(new JavaMethodCall( new JavaRef(INPUT_STREAM_NAME), JavaIdentifier.of("readNBytes"), - // TODO: handle very long strings List.of(new JavaCast(JavaTypeRef.INT, new JavaRef(bytesLengthVariableName))) )) )); |
