diff options
| author | 2026-08-12 13:24:27 +0200 | |
|---|---|---|
| committer | 2026-08-12 13:50:46 +0200 | |
| commit | ff14e0fc4e3fe4f5b8a67640d28850064661d7ab (patch) | |
| tree | f141a2d34d902d344207cfbbc6ac614ec1b3840d /src/main/java/com/it_jaros/jscanner/scan/engine/PollState.java | |
| parent | 540b09b1a019f95a9322a6d19e8928369bb20fcb (diff) | |
Major refactoring of package structure
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/scan/engine/PollState.java')
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/scan/engine/PollState.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/scan/engine/PollState.java b/src/main/java/com/it_jaros/jscanner/scan/engine/PollState.java new file mode 100644 index 0000000..54ec767 --- /dev/null +++ b/src/main/java/com/it_jaros/jscanner/scan/engine/PollState.java @@ -0,0 +1,13 @@ +package com.it_jaros.jscanner.scan.engine; + +/** + * A sealed interface representing the three possible outcomes of a CompletionService + * poll operation: successful result, task failure, or not ready yet. + * Makes error handling explicit — Failure and Unavailable are distinct and compile-time + * required to handle via exhaustiveness checking in switch statements. + */ +public sealed interface PollState<T> { + record Success<T>(T value) implements PollState<T> {} + record Failure<T>(Throwable error) implements PollState<T> {} + record Unavailable<T>() implements PollState<T> {} +} |
