From 1b1aac54765cf19fae5eac5791d19dadcd424e17 Mon Sep 17 00:00:00 2001 From: Eren Asker Date: Thu, 23 Nov 2023 17:15:43 +0100 Subject: [PATCH] Update developer documentation for staff Co-authored-by: Denis Natusch Co-authored-by: Simon Bruder --- .../asciidoc/developer_documentation.adoc | 8 +- src/main/asciidoc/models/design/staff.puml | 85 +++++++++---------- src/main/asciidoc/models/design/staff.svg | 4 +- 3 files changed, 44 insertions(+), 53 deletions(-) diff --git a/src/main/asciidoc/developer_documentation.adoc b/src/main/asciidoc/developer_documentation.adoc index 78ded32..dd488d8 100644 --- a/src/main/asciidoc/developer_documentation.adoc +++ b/src/main/asciidoc/developer_documentation.adoc @@ -295,10 +295,10 @@ image:models/design/staff.svg[class design diagram - Staff] [options="header"] |=== |Class/Enumeration |Description -|Staff |A class that represents staff members. It includes personal details and job information. -|StaffController |A Spring MVC Controller for managing staff-related operations such as adding, removing, and updating staff data. -|StaffDataInitializer |An Initalizer with primary purpose to create dummy data on application startup. -|StaffRepository |An extension of 'CrudRepository' to perform add, save, count, remove, and find by id operations specific to staff objects. +|Employee |A class that represents employees (staff members). It includes name, job type and an ID. +|StaffController |A Spring MVC Controller for handling staff-related operations such as adding, removing, and updating staff data. It interacts with StaffManagement. +|StaffManagement |A class that manages interactions and logic with StaffRepository. It provides methods to find, save/add, list, and delete staff members. +|StaffRepository |An extension of 'CrudRepository' that provides standard methods to perform CRUD operations on staff objects. |=== === Link between analysis and design diff --git a/src/main/asciidoc/models/design/staff.puml b/src/main/asciidoc/models/design/staff.puml index 577f673..a9683c8 100644 --- a/src/main/asciidoc/models/design/staff.puml +++ b/src/main/asciidoc/models/design/staff.puml @@ -3,68 +3,59 @@ skinparam linetype ortho skinparam groupInheritance 2 -package java.util { - class ArrayList - class Collection - class HashSet - class Optional - class Set +package Spring { + class CrudRepository + class Streamable } -package catering { -package staff { +package catering.staff { - class Staff { - - id: int - - surname: String + class Employee { - name: String - - job: String - + Staff(name: String, surname: String, job: String) - + getId(): int - + getSurname(): String + - id: Long + + Employee() + + Employee(name: String, job: JobType) + + getId(): Long + getName(): String - + getJob(): String - + setId(): void - + setSurname(): void - + setName(): void - + setJob(): void + + getJob(): JobType + + setName(name: String): void + + setJob(job: JobType): void + } + + Employee --> JobType : -job + + enum JobType { + COOK + SERVICE } class StaffController { + StaffController(staffRepository: StaffRepository) - + getStaff(model Model): String - + removeStaff(staffID: int, model Model): String - + addStaff(name: String, surname: String, job: String, model Model): String - + editStaff(id: int, model Model): String - + updateStaff(staff: Staff): String + + 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 } + StaffController --> StaffManagement : -staffManagement + StaffController ..> Employee - class StaffDataInitializer { - + StaffDataInitializer(staffRepository: StaffRepository) - + initialize(): void + class StaffManagement { + + StaffManagement(staffRepository: StaffRepository) + + findById(id: Long): Optional + + save(employee: Employee): Employee + + findAll(): Streamable + + delete(id: Long): void } + StaffManagement --> StaffRepository : -staffRepository - class StaffRepository { - + StaffRepository() - + addStaff(staff: Staff): boolean - + save(staff: Staff): void - + count(): long - + removeStaff(staffID: int) boolean - + getStaff(): Collection - + findById(id: int): Optional + interface StaffRepository { + + findAll(): Streamable } + StaffRepository --|> CrudRepository : <> + StaffRepository ..|> Streamable + StaffRepository o-- Employee } -} - -StaffRepository o-- Staff : -staff -StaffController --> StaffRepository : -staffRepository -StaffDataInitializer --> StaffRepository : -staffRepository -StaffRepository --> Set : -staff -StaffRepository ..> HashSet -StaffRepository ..> Collection -StaffRepository ..> Optional -StaffRepository ..> ArrayList -Staff -[hidden]- StaffRepository @enduml diff --git a/src/main/asciidoc/models/design/staff.svg b/src/main/asciidoc/models/design/staff.svg index 8fa9130..018cce9 100644 --- a/src/main/asciidoc/models/design/staff.svg +++ b/src/main/asciidoc/models/design/staff.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:157dd5e426efcf73a2c0b53e128f64ae94c0dac904a92fee52f193a1d5dee055 -size 26892 +oid sha256:faedcb3bb6b731e3c46d8edc7da5b0b6e8ab2875f42099053fa27bc3f5389d99 +size 25860