diff options
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/ScanState.java')
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/ScanState.java | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/ScanState.java b/src/main/java/com/it_jaros/jscanner/ScanState.java index e3a4300..86c3615 100644 --- a/src/main/java/com/it_jaros/jscanner/ScanState.java +++ b/src/main/java/com/it_jaros/jscanner/ScanState.java @@ -1,5 +1,37 @@ package com.it_jaros.jscanner; +import java.util.ArrayList; import java.util.List; -public record ScanState(Counter counter, ProgressBar progressBar, List<ScanResult> scanResult) {} +public class ScanState { + private final Counter counter; + private final ProgressBar progressBar; + private final List<ScanResult> scanResult; + + public ScanState(Counter counter, ProgressBar progressBar) { + this.counter = counter; + this.progressBar = progressBar; + // scanResult can not be given from outside because this class controls full access to it + this.scanResult = new ArrayList<>(); + } + + public Counter getCounter() { + return counter; + } + + public ProgressBar getProgressBar() { + return progressBar; + } + + public void addScanResult(ScanResult newResult) { + synchronized (this.scanResult) { + this.scanResult.add(newResult); + } + } + + public List<ScanResult> getSnapshotOfScanResults() { + synchronized (scanResult) { + return List.copyOf(scanResult); + } + } +} |
