Files
gala-ki-spielwiese/quarkus-automaton/src/main/java/de/galabau/dateieingang/model/ProcessingContext.java

51 lines
1.7 KiB
Java
Raw Normal View History

package de.galabau.dateieingang.model;
import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
* Zustandsobjekt eines einzelnen ZIP-Verarbeitungslaufs.
* Wird zu Beginn jeder ZIP-Verarbeitung erstellt und durch die Pipeline-Steps angereichert.
*/
public class ProcessingContext {
/** Eindeutige Lauf-ID — wird als MDC-Feld {@code runId} gesetzt. */
public final UUID runId;
/** Originaler ZIP-Dateiname auf dem SFTP-Server, z.B. {@code export_2026-04-08.zip}. */
public final String zipFilename;
/** ZIP-Name ohne Endung, z.B. {@code export_2026-04-08}. Wird als OCI-Unterordner genutzt. */
public final String zipNameWithoutExt;
/** Startzeitpunkt des Laufs. */
public final LocalDateTime startTime;
/** Lokaler Pfad der heruntergeladenen ZIP-Datei. Gesetzt von {@code SftpService}. */
public Path localZipPath;
/** Lokales Verzeichnis mit entpackten Dateien. Gesetzt von {@code ZipExtractionService}. */
public Path localExtractDir;
/** Entpackte Dateien. Gesetzt von {@code ZipExtractionService}. */
public List<FileEntry> extractedFiles = new ArrayList<>();
/** {@code true} wenn der Marker erfolgreich in OCI hochgeladen wurde. */
public boolean markerUploaded = false;
/** Aktueller Verarbeitungsstatus. */
public ProcessingStatus status = ProcessingStatus.PENDING;
public ProcessingContext(UUID runId, String zipFilename) {
this.runId = runId;
this.zipFilename = zipFilename;
this.zipNameWithoutExt = zipFilename.endsWith(".zip")
? zipFilename.substring(0, zipFilename.length() - 4)
: zipFilename;
this.startTime = LocalDateTime.now();
}
}