/
ExerciseDAO.java
124 lines (109 loc) · 3.77 KB
/
ExerciseDAO.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/**
*
* @author Megan
*/
public class ExerciseDAO extends ExerciseDAO {
public ExerciseDAO(ExerciseDAO fileName, ExerciseDAO myList) {
this.fileName = fileName;
this.myList = myList;
}
private final String fileName;
protected final List<Exercise> myList;
public ExerciseDAO() {
this("empdata.txt");
}
public ExerciseDAO(String fileName) {
this.fileName = fileName;
this.myList = new ArrayList<>();
try {
Files.createFile(Paths.get(fileName));
} catch (FileAlreadyExistsException fae) {
;
} catch (IOException ioe) {
System.out.println("Create file error with " + ioe.getMessage());
}
readList();
}
public void createRecord(Exercise member) {
myList.add(member);
writeList();
}
public Exercise retrieveRecord(int id) {
for (Exercise member : myList) {
if (member.getId() == id) {
return member;
}
}
return null;
}
public void updateRecord(Exercise updatedExercise) {
for (Exercise member : myList) {
if (member.getId() == updatedExercise.getId()) {
member.setMemberNumber(updatedExercise.getMemberNumber());
member.setexcerciseType(updatedExercise.getexcerciseType());
member.setDate(updatedExercise.getDate());
member.setTime(updatedExercise.getTime());
break;
}
}
writeList();
}
public void deleteRecord(int id) {
for (Exercise member : myList) {
if (member.getId() == id) {
myList.remove(member);
break;
}
}
writeList();
}
public void deleteRecord(Exercise member) {
myList.remove(member);
writeList();
}
protected void readList() {
Path path = Paths.get(fileName);
try (BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8)) {
String line;
while ((line = reader.readLine()) != null) {
String[] data = line.split(",");
int id = Integer.parseInt(data[0]);
String Member = data[1];
String Exercise = data[2];
String Date = data[3];
double Time = Double.parseDouble(data[4]);
String Comments = data[5];
Exercise member = new Exercise(id, Member, Exercise, Date, Time, Comments);
myList.add(member);
}
} catch (IOException ioe) {
System.out.println("Read file error with " + ioe.getMessage());
}
}
protected void writeList() {
Path path = Paths.get(fileName);
try (BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {
for (Exercise member : myList) {
writer.write(String.format("%d,%s,%s,%s,%.2f\n",
member.getId(),
member.getMemberNumber(),
member.getexcerciseType(),
member.getDate(),
member.getTime(),
member.getComments());
}
} catch (IOException ioe) {
System.out.println("Write file error with " + ioe.getMessage());
}
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
myList.stream().forEach((member) -> {
sb.append(String.format("%5d : %s, %s, %s, %.2f\n", member.getId(),
member.getMemberNumber(), member.getexcerciseType(),
member.getDate(), member.getTime()));
});
return sb.toString();
}
}