1 package hu.user.mediacube.integration.safedelete.services;
3 import hu.user.mediacube.integration.safedelete.ArchiveFileStatus;
4 import lombok.extern.log4j.Log4j2;
5 import org.apache.logging.log4j.Marker;
6 import org.apache.logging.log4j.MarkerManager;
7 import org.springframework.stereotype.Service;
9 import java.io.IOException;
10 import java.nio.file.Files;
11 import java.nio.file.Path;
12 import java.nio.file.attribute.BasicFileAttributes;
16 public class ArchiveStatusService {
17 private final Marker CSV_MARKER = MarkerManager.getMarker("CSV_MARKER");
19 public ArchiveFileStatus createStatus(Path filePath) throws IOException {
20 String fileName = filePath.getFileName().toString();
21 long length = filePath.toFile().length();
22 BasicFileAttributes attr = Files.readAttributes(filePath, BasicFileAttributes.class);
24 return ArchiveFileStatus.builder()
27 .creationTime(attr.creationTime())
28 .creationTime(attr.lastAccessTime())
29 .creationTime(attr.lastModifiedTime())
33 public void logHeader() {
34 log.info(CSV_MARKER, "timestamp;fileName;fileSize;creationTime;lastAccessTime;lastModifiedTime;metadataOnly;metadataExists;tsmFileExists;fileSizeEquals;hashEquals;canDelete;deleteSuccess;statusCleanupSuccess");
37 public void logStatus(ArchiveFileStatus status) {
38 log.info(CSV_MARKER, "{};{};{};{};{};{};{};{};{};{};{};{};{}",
41 status.getCreationTime(),
42 status.getLastAccessTime(),
43 status.getLastModifiedTime(),
44 status.isMetadataOnly(),
45 status.isMetadataExists(),
46 status.isTsmFileExists(),
47 status.isFileSizeEquals(),
48 status.isHashEquals(),
50 status.isDeleteSuccess(),
51 status.isStatusCleanupSuccess());