diff options
| author | 2026-07-02 12:45:18 +0200 | |
|---|---|---|
| committer | 2026-07-09 09:59:28 +0200 | |
| commit | e7c1ff527b171f76260efd0f69f8d3f4f7360123 (patch) | |
| tree | f2baa25eca484918b3311e120b40394355112f50 /src/main/java/com/it_jaros/jscanner/ScanState.java | |
| parent | 53ad9b193e3c5fd2324edeca838e5a8e4cce7ed1 (diff) | |
Changed scanstate to class that now owns completetly the Result List and
does not allow modifications outside of defined methods. -> thread safe
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); + } + } +} |
