Skip to content

Commit 9ad03f5

Browse files
committed
Add 'MonitoringResult' Object for combine monitoring time and monitoring results
1 parent 1f91ec9 commit 9ad03f5

File tree

3 files changed

+78
-19
lines changed

3 files changed

+78
-19
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package root.core.domain;
2+
3+
import java.text.SimpleDateFormat;
4+
import java.util.Date;
5+
import java.util.List;
6+
7+
import lombok.AllArgsConstructor;
8+
import lombok.Data;
9+
import root.utils.DateUtils;
10+
11+
@AllArgsConstructor
12+
@Data
13+
public class MonitoringResult<T> {
14+
private Date monitoringDate;
15+
private List<T> monitoringResults;
16+
17+
public MonitoringResult(List<T> monitoringResults) {
18+
this.monitoringDate = new Date();
19+
this.monitoringResults = monitoringResults;
20+
}
21+
22+
public String getMonitoringDay() {
23+
if(monitoringDate == null) {
24+
return null;
25+
}
26+
27+
return DateUtils.format(monitoringDate, "yyyyMMdd");
28+
}
29+
30+
public String getMonitoringTime() {
31+
if(monitoringDate == null) {
32+
return null;
33+
}
34+
35+
return DateUtils.format(monitoringDate, "HHmmss");
36+
}
37+
}

src/main/java/root/utils/DateUtils.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,4 +159,15 @@ public static String convertDateFormat(String fromFormat, String toFormat, Strin
159159
}
160160
return convertedDateString;
161161
}
162+
163+
/**
164+
* Date 객체를 포맷팅한다.
165+
*
166+
* @param date
167+
* @param toFormat
168+
* @return
169+
*/
170+
public static String format(Date date, String toFormat) {
171+
return new SimpleDateFormat(toFormat).format(date);
172+
}
162173
}

src/test/java/root/core/repository/implement/ReportRepositoryImplTest.java

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@
33
import java.io.BufferedWriter;
44
import java.io.File;
55
import java.io.FileWriter;
6+
import java.io.IOException;
67
import java.util.List;
78

89
import org.apache.commons.lang3.StringUtils;
910
import org.junit.jupiter.api.BeforeAll;
1011
import org.junit.jupiter.api.Test;
1112

13+
import root.core.domain.MonitoringResult;
1214
import root.core.domain.TableSpaceUsage;
1315
import root.utils.CsvUtils;
14-
import root.utils.DateUtils;
1516

1617
public class ReportRepositoryImplTest {
1718

@@ -26,16 +27,19 @@ public void writeReportFile_TableSpaceObj() {
2627
String filePath = "TableSpaceUsage";
2728
String fileName = "DB1";
2829
String fileExtension = ".csv";
29-
List<TableSpaceUsage> monitoringResult = List.of(
30-
new TableSpaceUsage("GGS_DATA", 17.67, 16.83, 95, .84),
30+
List<TableSpaceUsage> list = List.of(new TableSpaceUsage("GGS_DATA", 17.67, 16.83, 95, .84),
3131
new TableSpaceUsage("SYSTEM", 3.2, 2.9, 91, .3),
3232
new TableSpaceUsage("DAISO_INDX", 1080, 960.09, 89, 119.91),
33-
new TableSpaceUsage("DAISO_TBS", 2130, 1719.55, 81, 410.45)
34-
);
33+
new TableSpaceUsage("DAISO_TBS", 2130, 1719.55, 81, 410.45));
34+
35+
MonitoringResult<TableSpaceUsage> monitoringResult = new MonitoringResult<>(list);
36+
37+
File file = new File(rootDirectory + "/" + filePath + "/" + fileName + fileExtension);
38+
File parentDir = file.getParentFile();
39+
40+
String content = null;
3541

3642
try {
37-
File file = new File(rootDirectory + "/" + filePath + "/" + fileName + fileExtension);
38-
File parentDir = file.getParentFile();
3943

4044
boolean isNewFile = false;
4145
if (!file.exists()) {
@@ -44,26 +48,33 @@ public void writeReportFile_TableSpaceObj() {
4448
isNewFile = true;
4549
}
4650

47-
String content = null;
4851
if (isNewFile) { // 첫 파일작성인 경우 헤더 추가
4952
content = StringUtils.joinWith(",", "MONITORING_DATE", "MONITORING_TIME",
5053
CsvUtils.createCsvHeader(TableSpaceUsage.class));
5154
}
52-
53-
String now = DateUtils.getToday("yyyyMMddHHmmss");
54-
for (TableSpaceUsage t : monitoringResult) {
55-
String row = StringUtils.joinWith(",", now.substring(0, 8), now.substring(8),
56-
CsvUtils.createCsvRow(t, TableSpaceUsage.class));
55+
56+
String monitoringDay = monitoringResult.getMonitoringDay();
57+
String monitoringTime = monitoringResult.getMonitoringTime();
58+
for (Object t : monitoringResult.getMonitoringResults()) {
59+
String row = StringUtils.joinWith(",", monitoringDay, monitoringTime,
60+
CsvUtils.createCsvRow(t, t.getClass()));
5761
content = StringUtils.joinWith(System.lineSeparator(), content, row);
58-
}
59-
60-
BufferedWriter bw = new BufferedWriter(new FileWriter(file, true));
62+
}
63+
} catch (Exception e) {
64+
e.printStackTrace();
65+
}
66+
67+
if(content == null) {
68+
System.out.println(String.format("파일에 작성할 내용이 없습니다. 파일경로: %s", file.getPath()));
69+
return;
70+
}
71+
72+
try(BufferedWriter bw = new BufferedWriter(new FileWriter(file, true))) {
6173
bw.append(content);
6274
bw.flush();
6375
bw.close();
64-
65-
} catch (Exception e) {
76+
} catch (IOException e) {
6677
e.printStackTrace();
67-
}
78+
}
6879
}
6980
}

0 commit comments

Comments
 (0)