[serde-*] Make data readers and writers AutoCloseable

This commit is contained in:
2025-08-03 20:36:28 +02:00
parent 1fc418970f
commit 7ce3aaac06
16 changed files with 117 additions and 63 deletions

View File

@@ -8,7 +8,7 @@ import org.jspecify.annotations.Nullable;
@Getter
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
public class DelegatingTweedDataVisitor implements TweedDataVisitor {
public class DelegatingTweedDataWriter implements TweedDataWriter {
protected final TweedDataVisitor delegate;
@Override
@@ -115,4 +115,11 @@ public class DelegatingTweedDataVisitor implements TweedDataVisitor {
public void visitDecoration(TweedDataDecoration decoration) {
delegate.visitDecoration(decoration);
}
@Override
public void close() throws Exception {
if (delegate instanceof AutoCloseable) {
((AutoCloseable) delegate).close();
}
}
}

View File

@@ -1,6 +1,6 @@
package de.siphalor.tweed5.dataapi.api;
public interface TweedDataReader {
public interface TweedDataReader extends AutoCloseable {
TweedDataToken peekToken() throws TweedDataReadException;
TweedDataToken readToken() throws TweedDataReadException;
}

View File

@@ -0,0 +1,4 @@
package de.siphalor.tweed5.dataapi.api;
public interface TweedDataWriter extends TweedDataVisitor, AutoCloseable {
}