-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathProjectManagementSystem.java
More file actions
42 lines (38 loc) · 1.55 KB
/
ProjectManagementSystem.java
File metadata and controls
42 lines (38 loc) · 1.55 KB
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
package org.lab;
import org.lab.repository.*;
import org.lab.service.*;
public record ProjectManagementSystem(
UserService userService,
ProjectService projectService,
MilestoneService milestoneService,
TicketService ticketService,
BugReportService bugReportService,
ProjectSummaryService projectSummaryService
) {
public static ProjectManagementSystem withDefault() {
var userRepository = new UserRepository();
var projectRepository = new ProjectRepository();
var milestoneRepository = new MilestoneRepository();
var ticketRepository = new TicketRepository();
var bugReportRepository = new BugReportRepository();
var userService = new UserService(userRepository);
var projectService = new ProjectService(projectRepository, userService);
var milestoneService = new MilestoneService(milestoneRepository, ticketRepository, projectService);
var ticketService = new TicketService(ticketRepository, milestoneRepository, projectService);
var bugReportService = new BugReportService(bugReportRepository, projectService);
var projectSummaryService = new ProjectSummaryService(
projectService,
ticketRepository,
bugReportRepository,
milestoneRepository
);
return new ProjectManagementSystem(
userService,
projectService,
milestoneService,
ticketService,
bugReportService,
projectSummaryService
);
}
}