summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/jscanner/ScanState.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/ScanState.java')
-rw-r--r--src/main/java/com/it_jaros/jscanner/ScanState.java34
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);
+ }
+ }
+}