swt23w23/src/main/asciidoc/models/design/staff.puml

62 lines
1.4 KiB
Plaintext
Raw Normal View History

2023-11-08 16:36:48 +01:00
@startuml
skinparam linetype ortho
skinparam groupInheritance 2
package Spring {
class CrudRepository
class Streamable
2023-11-08 16:36:48 +01:00
}
package catering.staff {
2023-11-08 16:36:48 +01:00
class Employee {
2023-11-08 16:36:48 +01:00
- name: String
- id: Long
+ Employee()
+ Employee(name: String, job: JobType)
+ getId(): Long
2023-11-08 16:36:48 +01:00
+ getName(): String
+ getJob(): JobType
+ setName(name: String): void
+ setJob(job: JobType): void
}
Employee --> JobType : -job
enum JobType {
COOK
SERVICE
2023-11-08 16:36:48 +01:00
}
class StaffController {
+ StaffController(staffRepository: StaffRepository)
+ getStaff(model: Model): String
+ removeEmployee(employee: Employee, model: Model): String
+ addEmployee(name: String, job: JobType): String
+ editEmployee(employee: Employee, model Model): String
+ updateEmployee(employee: Employee, name: String, job: JobType): String
2023-11-08 16:36:48 +01:00
}
StaffController --> StaffManagement : -staffManagement
StaffController ..> Employee
class StaffManagement {
+ StaffManagement(staffRepository: StaffRepository)
+ findById(id: Long): Optional<Employee>
+ save(employee: Employee): Employee
+ findAll(): Streamable<Employee>
+ delete(id: Long): void
2023-11-08 16:36:48 +01:00
}
StaffManagement --> StaffRepository : -staffRepository
2023-11-08 16:36:48 +01:00
interface StaffRepository {
+ findAll(): Streamable<Employee>
2023-11-08 16:36:48 +01:00
}
StaffRepository --|> CrudRepository : <<extends>>
StaffRepository ..|> Streamable
StaffRepository o-- Employee
2023-11-08 16:36:48 +01:00
}
@enduml