Skip to content

Commit 4a2275a

Browse files
feat: integrate ProjectJsonReaderWriter into ProjectRepository
Refactor `ProjectRepository` to utilize `ProjectJsonReaderWriter` for JSON-based project persistence. Load projects on initialization and write changes to JSON upon modifications.
1 parent 0c98b69 commit 4a2275a

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/main/java/com/preponderous/parpt/repo/ProjectRepository.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,33 @@
88

99
@Repository
1010
public class ProjectRepository {
11-
private final List<Project> projects = new ArrayList<>();
11+
private final List<Project> projects;
12+
private final ProjectJsonReaderWriter projectJsonReaderWriter;
13+
14+
public ProjectRepository(ProjectJsonReaderWriter projectJsonReaderWriter) {
15+
this.projectJsonReaderWriter = projectJsonReaderWriter;
16+
this.projects = projectJsonReaderWriter.readJson();
17+
}
1218

1319
public List<Project> findAll() {
1420
return new ArrayList<>(projects);
1521
}
1622

1723
public void clear() {
1824
projects.clear();
25+
projectJsonReaderWriter.writeJson(projects);
1926
}
2027

2128
public void add(Project project) throws NameTakenException {
2229
if (projects.stream().anyMatch(p -> p.getName().equals(project.getName()))) {
2330
throw new NameTakenException("Project with the same name already exists");
2431
}
2532
projects.add(project);
33+
projectJsonReaderWriter.writeJson(projects);
2634
}
2735

2836
public Project findByName(String projectName) throws ProjectNotFoundException {
29-
Project retrievedProject = projects.stream()
37+
Project retrievedProject = projects.stream()
3038
.filter(project -> project.getName().equals(projectName))
3139
.findFirst()
3240
.orElse(null);
@@ -47,4 +55,4 @@ public ProjectNotFoundException(String message) {
4755
super(message);
4856
}
4957
}
50-
}
58+
}

0 commit comments

Comments
 (0)