20dc79a4452dc01d01faace8e180b9a66f747c89
[mediacube.git] /
1 package hu.user.mediacube.integration.safedelete.services;
2
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;
8
9 import java.io.IOException;
10 import java.nio.file.Files;
11 import java.nio.file.Path;
12 import java.nio.file.attribute.BasicFileAttributes;
13
14 @Log4j2
15 @Service
16 public class ArchiveStatusService {
17     private final Marker CSV_MARKER = MarkerManager.getMarker("CSV_MARKER");
18
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);
23
24         return ArchiveFileStatus.builder()
25                 .fileName(fileName)
26                 .fileSize(length)
27                 .creationTime(attr.creationTime())
28                 .creationTime(attr.lastAccessTime())
29                 .creationTime(attr.lastModifiedTime())
30                 .build();
31     }
32
33     public void logHeader() {
34         log.info(CSV_MARKER, "timestamp;fileName;fileSize;creationTime;lastAccessTime;lastModifiedTime;metadataOnly;metadataExists;tsmFileExists;fileSizeEquals;hashEquals;canDelete;deleteSuccess;statusCleanupSuccess");
35     }
36
37     public void logStatus(ArchiveFileStatus status) {
38         log.info(CSV_MARKER, "{};{};{};{};{};{};{};{};{};{};{};{};{}",
39                 status.getFileName(),
40                 status.getFileSize(),
41                 status.getCreationTime(),
42                 status.getLastAccessTime(),
43                 status.getLastModifiedTime(),
44                 status.isMetadataOnly(),
45                 status.isMetadataExists(),
46                 status.isTsmFileExists(),
47                 status.isFileSizeEquals(),
48                 status.isHashEquals(),
49                 status.isCanDelete(),
50                 status.isDeleteSuccess(),
51                 status.isStatusCleanupSuccess());
52     }
53 }