mirror of
https://github.com/st-tu-dresden-praktikum/swt23w23
synced 2024-07-19 21:04:36 +02:00
Update Developerdocumentation
This commit is contained in:
parent
f808c2497d
commit
41edcf5bf7
|
@ -49,8 +49,11 @@ package catering.catalog {
|
|||
interface CateringCatalog {
|
||||
+ DEFAULT_SORT : Sort
|
||||
+ findByCategories()
|
||||
+ findRentablesByCategories()
|
||||
+ findConsumablesByCategories()
|
||||
+ findByCategories(category : OrderType)
|
||||
+ findRentables() : Streamable<Rentable>
|
||||
+ findConsumables() : Streamable<Consumable>
|
||||
+ findRentablesByCategoriesContains(category : String) : Streamable<Rentable>
|
||||
+ findConsumablesByCategoriesContains(category : String) : Streamable<Consumable>
|
||||
}
|
||||
CateringCatalog --|> Catalog
|
||||
|
||||
|
@ -60,7 +63,6 @@ package catering.catalog {
|
|||
+ Consumable(name : String, retailPrice : MonetaryAmount, wholesalePrice : MonetaryAmount, promotionPrice : Optional<MonetaryAmount>, Set<OrderType> categories, metric : Metric) : Consumable
|
||||
+ getPrice() : MonetaryAmount
|
||||
+ getRetailPrice() : MonetaryAmount
|
||||
+ setRetailPrice(price : MonetaryAmount) : void
|
||||
+ getPromotionPrice(): Optional<MonetaryAmount>
|
||||
+ setPromotionPrice(price : Optional<MonetaryAmount>)
|
||||
+ getWholesalePrice() : MonetaryAmount
|
||||
|
@ -74,17 +76,22 @@ package catering.catalog {
|
|||
|
||||
class Rentable {
|
||||
- wholesalePrice : MonetaryAmount
|
||||
- pricePerHour : MonetaryAmount
|
||||
+ Rentable(name : String, pricePerHour : MonetaryAmount, wholesalePrice : MonetaryAmount, Set<OrderType> categories, metric : Metric) : Rentable
|
||||
+ getWholesalePrice() : MonetaryAmount
|
||||
+ setWholesalePrice(price : MonetaryAmount)
|
||||
+ getRetailPrice() : MonetaryAmount
|
||||
+ getPriceForTime(hours : int) : MonetaryAmount
|
||||
+ hashCode() : int
|
||||
+ equals(obj Object) : boolean
|
||||
}
|
||||
Rentable --|> Product
|
||||
Rentable ..> java.util.Set
|
||||
Rentable ..> catering.order.OrderType
|
||||
|
||||
class CatalogDataInitializer {
|
||||
- rentableCatalog : RentableCatalog
|
||||
- consumableCatalog : ConsumableCatalog
|
||||
- cateringCatalog : CateringCatalog
|
||||
+ CatalogDataInitializer(cateringCatalog : CateringCatalog)
|
||||
+ initialize()
|
||||
}
|
||||
CatalogDataInitializer ..|> DataInitializer
|
||||
|
|
|
@ -25,7 +25,9 @@ package catering {
|
|||
|
||||
package inventory {
|
||||
class InventoryController {
|
||||
+ InventoryController(inventory : UniqueInventory)
|
||||
- inventory : UniqueInventory<UniqueInventoryItem>
|
||||
- cateringCatalog : CateringCatalog
|
||||
+ InventoryController(inventory : UniqueInventory, cateringCatalog : CateringCatalog)
|
||||
+ list(model : Model) : String
|
||||
+ edit(model : Model, pid : Product) : String
|
||||
+ edit(model : Model, pid : Product, form : InventoryMutateForm) : String
|
||||
|
@ -51,6 +53,8 @@ package catering {
|
|||
InventoryController .u.> Spring.Model
|
||||
|
||||
class InventoryInitializer {
|
||||
- inventory : UniqueInventory<UniqueInventoryItem>
|
||||
- cateringCatalog : CateringCatalog
|
||||
+ InventoryInitializer(inventory : UniqueInventory, catalog : CateringCatalog)
|
||||
+ initialize() : void
|
||||
}
|
||||
|
@ -61,9 +65,53 @@ package catering {
|
|||
InventoryInitializer .u.> Salespoint.UniqueInventoryItem
|
||||
InventoryInitializer .u.> Spring.Assert
|
||||
|
||||
class InventoryMutateForm
|
||||
class ConsumableMutateForm
|
||||
class RentableMutateForm
|
||||
class InventoryMutateForm {
|
||||
- name : String
|
||||
- quantity : long
|
||||
- retailPrice : double
|
||||
- orderTypes : Set<OrderType>
|
||||
- metric : Metric
|
||||
+ InventoryMutateForm()
|
||||
+ getName() : String
|
||||
+ getquantity() : long
|
||||
+ getRetailPrice() : double
|
||||
+ getMetric() : Metric
|
||||
+ setName(name : String) : void
|
||||
+ getOrderTypes() : Set<OrderType>
|
||||
+ setQuantity(quantity : long) : void
|
||||
+ setRetailPrice(retailPrice Double) : void
|
||||
+ setOrderTypes(orderTypes : Set<OrderType>) : void
|
||||
+ setMetric(metric : Metric) : void
|
||||
+ InventoryMutateForm forProductType(type : Class<T>) : static
|
||||
+ InventoryMutateForm of(item UniqueInventoryItem ) : static
|
||||
+ toProduct() : Product
|
||||
+ modifyProduct(product : Product) : void
|
||||
+ modifyProductPrimitive(product : Product) : void
|
||||
+ orderTypesFromCategories(categories : Streamable<String>) : Set<OrderType>
|
||||
+ supportedMetrics() : Collection<Metric>
|
||||
}
|
||||
|
||||
class ConsumableMutateForm {
|
||||
- wholesalePrice : double
|
||||
- promotionPrice : double
|
||||
+ getWholeSalePrice() : double
|
||||
+ getPromotionPrice() : Optional<Double>
|
||||
+ setWholesalePrice(wholesalePrice : double) : void
|
||||
+ setPromotionPrice(promotionPrice: Optional<Double>) : void
|
||||
+ toProduct() : Product
|
||||
+ ConsumableMutateForm(item : UniqueInventoryItem) : static
|
||||
+ modifyProductPrimitive(product : Product) : void
|
||||
}
|
||||
|
||||
class RentableMutateForm{
|
||||
- wholesalePrice : double
|
||||
+ getWholesalePrice() : double
|
||||
+ setWholesalePrice(wholesalePrice : double) : void
|
||||
+ RentableMutateForm of(item : UniqueInventoryItem) : static
|
||||
+ toProduct() : Product
|
||||
+ modifyProductPrimitive(product : Product) : void
|
||||
}
|
||||
|
||||
ConsumableMutateForm <|-- InventoryMutateForm
|
||||
RentableMutateForm <|-- InventoryMutateForm
|
||||
|
||||
|
|
|
@ -30,21 +30,26 @@ package catalog {
|
|||
|
||||
package order {
|
||||
class OrderController {
|
||||
+OrderController(oM: OrderManagement<CustomOrder>, cOR: CustomOrderRepository, inv: UniqueInventory<UniqueInventoryItem>, cat: CateringCatalog, stM: StaffManagement)
|
||||
-orderManagement : OrderManagement<CustomOrder>
|
||||
-customOrderRepository : CustomOrderRepository
|
||||
-inventory : UniqueInventory<UniqueInventoryItem>
|
||||
-catalog : CateringCatalog
|
||||
-staffManagement : StaffManagement
|
||||
+OrderController(orderManagement: OrderManagement<CustomOrder>, customOrderRepository: CustomOrderRepository, inventory: UniqueInventory<UniqueInventoryItem>, catalog: CateringCatalog, staffManagement: StaffManagement)
|
||||
+orders(model: Model, userAccount: Optional<UserAccount>): String
|
||||
+orders(model: Model): String
|
||||
+orders(model: Model, String day): String
|
||||
~initializeCart(): CustomCart
|
||||
+ordersForAdmin(model: Model, form: OrderQueryForm): String
|
||||
+ordersForAdmin(model: Model, String day): String
|
||||
+initializeCart(): CustomCart
|
||||
+event(model: Model, cart: CustomCart): String
|
||||
+addEmployeeToCart(empId: long, cart: CustomCart): String
|
||||
+removeEmployeeFromCart(empId: long, cart: CustomCart): String
|
||||
+addEmployeeToCart(employeeId: long, cart: CustomCart): String
|
||||
+removeEmployeeFromCart(employeeId: long, cart: CustomCart): String
|
||||
+removeOrder(orderId: Order.OrderIdentifier, userAccount: Optional<UserAccount>): String
|
||||
+addProduct(product: Product, number: int, cart: CustomCart): String
|
||||
+removeProduct(itemId: String, cart: CustomCart): String
|
||||
+changeDate(start: LocalDate, startHour: Optional<Integer>, finish: LocalDate, finishHour: Optional<Integer>, cart: CustomCart): String
|
||||
+checkout(cart: CustomCart, userAccount: Optional<UserAccount>): String
|
||||
+changeOrderType(orderType: String, cart: CustomCart): String
|
||||
+{static}findFreeAmountInInterval(product: Rentable, start: LocalDatetime, finish: LocalDatetime, inv: UniqueInventory<UniqueInventoryItem>, cOR: CustomOrderRepository): Quantity
|
||||
+{static}findFreeAmountInInterval(product: Rentable, start: LocalDatetime, finish: LocalDatetime, inventory: UniqueInventory<UniqueInventoryItem>, customOrderRepository: CustomOrderRepository): Quantity
|
||||
+calender(model: Model): String
|
||||
+invoice(model: Model, userAccount: UserAccount, order: Order): String
|
||||
}
|
||||
|
@ -54,31 +59,70 @@ package order {
|
|||
}
|
||||
|
||||
class CustomCart {
|
||||
-staff : Set<Employee>
|
||||
-orderType : OrderType
|
||||
-start : LocalDateTime
|
||||
-finish : LocalDateTime
|
||||
-formatterPattern: String
|
||||
+CustomCart(orderType: OrderType, start: LocalDateTime, finish: LocalDateTime)
|
||||
+addEmployee(employee: Employee): boolean
|
||||
+getStaff() : Set<Employee>
|
||||
+removeEmployee(employee: Employee): boolean
|
||||
+addStaffTo(order: CustomOrder): CustomOrder
|
||||
+addRentablesTo(order: CustomOrder, inv: UniqueInventory<UniqueInventoryItem>): CustomOrder
|
||||
+addRentablesToOrder(order: CustomOrder, inventory: UniqueInventory<UniqueInventoryItem>): CustomOrder
|
||||
+getOrderType() : OrderType
|
||||
+setOrderType(orderType : OrderType) : void
|
||||
+getStart() : LocalDateTime
|
||||
+setStart(start: LocalDateTime ) : void
|
||||
+getDurationInHours(): int
|
||||
+getFinish() : LocalDateTime
|
||||
+setFinish(finish : LocalDateTime) : void
|
||||
+getFormatterPattern() : String
|
||||
+getPrice(): MonetaryAmount
|
||||
+clear()
|
||||
+clear() : void
|
||||
}
|
||||
|
||||
class CustomOrder {
|
||||
-id: Long
|
||||
-staff: Set<Employee>
|
||||
-orderType: OrderType
|
||||
-start: LocalDateTime
|
||||
-finish: LocalDateTime
|
||||
-invoiceAvailable: boolean
|
||||
-formatterPattern: String
|
||||
+CustomOrder()
|
||||
+CustomOrder(identifier: UserAccount.UserAccountIdentifier, cart: CustomCart)
|
||||
+getDurationInSeconds(): long
|
||||
+CustomOrder()
|
||||
-getDurationInSeconds(start: LocalDateTime, finish: LocalDateTime): long
|
||||
-getDurationInHours(start: LocalDateTime, finish: LocalDateTime): long
|
||||
+getDurationInHours() : long
|
||||
-{static}min(a: LocalDateTime, b: LocalDateTime): LocalDateTime
|
||||
-{static}max(a: LocalDateTime, b: LocalDateTime): LocalDateTime
|
||||
+getDurationInSecondsDuringMonth(month: YearMonth): long
|
||||
+addEmployee(employee: Employee): boolean
|
||||
+getStaff() : Set<Employee>
|
||||
+getOrderType() : OrderType
|
||||
+getStart() : LocalDateTime
|
||||
+getFormattedStart() : String
|
||||
+getFinish() : LocalDateTime
|
||||
+getFormattedFinish() : String
|
||||
+isInvoiceAvailable() : boolean
|
||||
+setInvoiceAvailable() : void
|
||||
+hashCode() : int
|
||||
+equals(obj: Object) : boolean
|
||||
}
|
||||
|
||||
class OrderQueryForm{
|
||||
- orderStatus : Optional<OrderStatus>
|
||||
+ getOrderStatus() : Optional<OrderStatus>
|
||||
+ setOrderStatus(orderStatus : Optional<OrderStatus>) : void
|
||||
+ OrderQueryForm of(order: CustomOrder)) : static
|
||||
}
|
||||
|
||||
enum OrderType {
|
||||
RENT_A_COOK
|
||||
EVENT_CATERING
|
||||
MOBILE_BREAKFAST
|
||||
PARTY_SERVICE
|
||||
+toHumanReadable(): String
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,47 +20,67 @@ package catering.order {
|
|||
}
|
||||
|
||||
package catering.orderCatalog {
|
||||
class OrderCatalogController {
|
||||
+ OrderCatalogController()
|
||||
class CatalogController {
|
||||
- catalogEntryRepository : CustomCatalogEntryRepository
|
||||
- productMap : Map<Product, Quantity>
|
||||
- formCatalogEntry : CustomCatalogEntry
|
||||
- inventory : UniqueInventory<UniqueInventoryItem>
|
||||
+ CatalogController(catalogEntryRepository : CustomCatalogEntryRepository, inventory : UniqueInventory<UniqueInventoryItem>)
|
||||
+ catalog(model : Model) : String
|
||||
+ configureCatalog(model : Model) : String
|
||||
+ catalogAdd(eventType : OrderCatalogEntry.EventType, minimumTimePeriod : int, totalCost : int, model : Model) : String
|
||||
+ editCatalog(model : Model) : String
|
||||
+ addCatalogEntry(eventType : OrderCatalogEntry.EventType, minimumTimePeriod : int, totalCost : int, model : Model) : String
|
||||
+ removeEntry(catalogEntryID : int) : String
|
||||
+ addProduct(name : String, amount : int, cost : double) : String
|
||||
+ addProduct(product : Product, number : int) : String
|
||||
+ removeProduct(id : String, model : Model) : String
|
||||
+ addTime(minimumTimePeriod : int, eventType : OrderCatalogEntry.EventType, products : Collection<Salespoint.Product>, model : Model) : String
|
||||
+ addTime(minimumTimePeriod : int, eventType : eventType, products : Map<String, Integer>, model : Model) : String
|
||||
+ chooseEvent(events : String) : String
|
||||
}
|
||||
|
||||
class OrderCatalogEntry {
|
||||
+ OrderCatalogEntry()
|
||||
class CustomCatalogEntry {
|
||||
- id : long
|
||||
- eventType : OrderType
|
||||
- products : Map<String, Quantity>
|
||||
- minimumTimePeriod : int
|
||||
- totalCost : int
|
||||
+ CustomCatalogEntry(eventType : OrderType, products : Map<String, Quantity>, minimumTimePeriod : int, totalCost : int)
|
||||
+ CustomCatalogEntry()
|
||||
+ getId() : int
|
||||
+ getEventType() : EventType
|
||||
+ getProducts() : Collection<Salespoint.Product>
|
||||
+ getEventType() : OrderType
|
||||
+ getProducts() : Map<String, Quantity>
|
||||
+ getMinimumTimePeriod() : int
|
||||
+ getTotalCost() : int
|
||||
+ setEventType(eventType : EventType) : void
|
||||
+ setEventType(eventType : OrderType) : void
|
||||
+ addProduct(name : String, count : Quantity) : void
|
||||
+ setProducts(products Map<String, Quantity>) : void
|
||||
+ setMinimumTimePeriod(timePeriod : int) : void
|
||||
+ setTotalCost(totalCost : int) : void
|
||||
+ addProduct(name : String, count : Integer) : void
|
||||
+ hashCode() : int
|
||||
+ equals(obj : Object) : boolean
|
||||
}
|
||||
|
||||
class OrderCatalogEntryRepository {
|
||||
+ OrderCatalogEntryRepository()
|
||||
+ addCatalogEntry(catalogEntry : OrderCatalogEntry) : boolean
|
||||
+ removeCatalogEntry(catalogEntryID : int) : boolean
|
||||
+ getCatalogEntries() : Set<OrderCatalogEntries>
|
||||
interface CustomCatalogEntryRepository {
|
||||
+ findAll() : Streamable<CustomCatalogEntry>
|
||||
}
|
||||
|
||||
class CustomCatalogEntryDataInitializer {
|
||||
- catalogEntryRepository : CustomCatalogEntryRepository
|
||||
+ CustomCatalogEntryDataInitializer(catalogEntryRepository : CustomCatalogEntryRepository)
|
||||
+ initialize() : void
|
||||
}
|
||||
}
|
||||
|
||||
OrderCatalogEntryRepository o---> OrderCatalogEntry
|
||||
OrderCatalogController ...> OrderCatalogEntryRepository
|
||||
OrderCatalogEntryRepository --|> Spring.CrudRepository
|
||||
OrderCatalogController ...> Salespoint.Product
|
||||
OrderCatalogController ..> Spring.Model
|
||||
OrderCatalogController ...> Salespoint.Cash
|
||||
OrderCatalogController ...> Salespoint.Quantity
|
||||
OrderCatalogController ...> Salespoint.UserAccount
|
||||
OrderCatalogEntry ...> catering.order.EventType
|
||||
CustomCatalogEntryRepository --|> Spring.CrudRepository
|
||||
CatalogController ...> Salespoint.Product
|
||||
CatalogController ..> Spring.Model
|
||||
CatalogController ...> Salespoint.Cash
|
||||
CatalogController ...> Salespoint.Quantity
|
||||
CatalogController ...> Salespoint.UserAccount
|
||||
CustomCatalogEntry ...> catering.order.EventType
|
||||
CustomCatalogEntryDataInitializer --> "1" catering.catalog.CateringCatalog : "-cateringCatalog"
|
||||
CustomCatalogEntryDataInitializer .u.|> Salespoint.DataInitializer
|
||||
CustomCatalogEntryDataInitializer .u.> Salespoint.Quantity
|
||||
CustomCatalogEntryDataInitializer -u-> "1" Salespoint.UniqueInventory : "-inventory"
|
||||
CustomCatalogEntryDataInitializer .u.> Salespoint.UniqueInventoryItem
|
||||
CustomCatalogEntryDataInitializer .u.> Spring.Assert
|
||||
|
||||
@enduml
|
||||
|
|
|
@ -27,8 +27,10 @@ package catering.staff {
|
|||
|
||||
class Employee {
|
||||
- name: String
|
||||
- job : JobType
|
||||
- id: Long
|
||||
+ Employee()
|
||||
- wage : MonetaryAmount
|
||||
# Employee()
|
||||
+ Employee(name: String, job: JobType, wage: MonetaryAmount)
|
||||
+ getId(): Long
|
||||
+ getName(): String
|
||||
|
@ -37,6 +39,8 @@ package catering.staff {
|
|||
+ setName(name: String): void
|
||||
+ setJob(job: JobType): void
|
||||
+ setWage(wage: Double): void
|
||||
+ hashCode() : int
|
||||
+ equals(obj : Objects) : boolean
|
||||
}
|
||||
|
||||
Employee --> JobType : -job
|
||||
|
@ -48,11 +52,12 @@ package catering.staff {
|
|||
}
|
||||
|
||||
class StaffController {
|
||||
+ StaffController(staffRepository: StaffRepository)
|
||||
- staffManagement : StaffManagement
|
||||
+ StaffController(staffManagement : StaffManagement)
|
||||
+ getStaff(model: Model, month:Optional<YearMonth>): String
|
||||
+ getStaff(model: Model, form: StaffForm, month:Optional<YearMonth>): String
|
||||
+ removeEmployee(employee: Employee, model: Model): String
|
||||
+ addEmployee(form:StaffForm, result:Errors, model: Model): String
|
||||
+ removeEmployee(employee: Employee, model: Model): String
|
||||
+ editEmployee(employee: Employee, model Model): String
|
||||
+ editEmployee(model Model, form:StaffForm): String
|
||||
+ updateEmployee(employee: Employee, form:StaffForm): String
|
||||
|
@ -66,7 +71,9 @@ package catering.staff {
|
|||
StaffController ..> EURO
|
||||
|
||||
class StaffManagement {
|
||||
+ StaffManagement(staffRepository: StaffRepository, orderManagement:OrderManagement<CustomOrder>)
|
||||
- staffManagement : StaffRepository
|
||||
- orderManagement : OrderManagement<CustomOrder>
|
||||
+ StaffManagement(staffRepository: StaffRepository, orderManagement:OrderManagement<CustomOrder>)
|
||||
+ findById(id: Long): Optional<Employee>
|
||||
+ save(employee: Employee): Employee
|
||||
+ findAll(): Streamable<Employee>
|
||||
|
@ -87,7 +94,9 @@ package catering.staff {
|
|||
|
||||
class StaffForm {
|
||||
- name: String
|
||||
+ StaffForm(): void
|
||||
- job : JobType
|
||||
- wage : double
|
||||
+ StaffForm()
|
||||
+ getName(): String
|
||||
+ getJob(): JobType
|
||||
+ getWage(): Double
|
||||
|
|
|
@ -26,31 +26,34 @@ package catering.users {
|
|||
class User {
|
||||
- address : String
|
||||
- fullName : String
|
||||
- userAccount : UserAccount
|
||||
- User()
|
||||
+ User(userAccount : UserAccount, address : String, fullName : String)
|
||||
+ User()
|
||||
+ getAddress() : String
|
||||
+ setAddress(address:String) : String
|
||||
+ getFullName() : String
|
||||
+ setFullName(fullName:String) : String
|
||||
+ getUsername() : String
|
||||
+ setUsername(username:String) : boolean
|
||||
+ getFullName() : String
|
||||
+ setFullName(fullName:String) : String
|
||||
+ getUserAccount() : UserAccount
|
||||
+ getId() : UserIdentifier
|
||||
+ isEnabled() : boolean
|
||||
+ hasRole(role:String) : boolean
|
||||
+ equals(obj:Object) : boolean
|
||||
+ hashCode() : int
|
||||
+ equals(obj:Object) : boolean
|
||||
}
|
||||
User ..> WebDataBinder
|
||||
User --> UserAccount : "-userAccount"
|
||||
User --|> AbstractAggregateRoot : <<extends>>
|
||||
|
||||
class UserController {
|
||||
- userManagement : UserManagement
|
||||
+ UserController(userManagement: UserManagement)
|
||||
- initProfileBinder(binder : WebDataBinder) : void
|
||||
- initRegistrationBinder(binder : WebDataBinder) : void
|
||||
- initAdminBinder(binder : WebDataBinder) : void
|
||||
+ unauthorized() : String
|
||||
+ register() : String
|
||||
+ register(model:Model)) : String
|
||||
+ register(form:RegistrationForm,result:Errors) : String
|
||||
+ loginPage() : String
|
||||
+ viewProfile(model:Model,userAccount:UserAccount) : String
|
||||
|
@ -70,41 +73,53 @@ package catering.users {
|
|||
UserController ..> WebDataBinder
|
||||
|
||||
class UserManagement {
|
||||
- user : UserRepository
|
||||
- userAccounts : UserAccountManagement
|
||||
+ UserManagement(users:UserRepository,userAccounts:UserAccountManagement)
|
||||
+ createCustomer(name:String, password:String, address:String) : User
|
||||
+ createAdmin(name:String, password:String, address:String,fullName:String) : User
|
||||
+ createCustomer(name:String, password:String, address:String, fullName : String) : User
|
||||
+ createAdmin(name:String, password:String, address:String) : User
|
||||
+ save(user:User) : User
|
||||
+ setPassword(password : String, userAccount : UserAccount) : boolean
|
||||
+ getUsers() : UserRepository
|
||||
+ disableUserAccount(userAccount:UserAccount) : void
|
||||
+ getUserByAccount(userAccount:UserAccount) : Optional<User>
|
||||
+ getUserByName(username : String) : Optional<User>
|
||||
}
|
||||
UserManagement --> UserAccountManagement : "-userAccounts"
|
||||
UserManagement --> UserRepository : "-users"
|
||||
UserManagement ..> User
|
||||
|
||||
class UserDataInitalizer {
|
||||
- LOG : Logger
|
||||
- userManagement : UserManagement
|
||||
+ UserDataInitalizer(userManagement : UserManagement)
|
||||
- userAccountManagement : UserAccountManagement
|
||||
+ UserDataInitalizer(userManagement : UserManagement, userAccountManagement : UserAccountManagement)
|
||||
+ initalize() : void
|
||||
}
|
||||
UserDataInitalizer --> UserManagement : "-userManagement"
|
||||
UserDataInitalizer ..|> DataInitalizer
|
||||
|
||||
class UserRepository {
|
||||
+ findAll() : Streamable<User>
|
||||
}
|
||||
|
||||
UserRepository --|> CrudRepository : <<extends>>
|
||||
UserRepository ..|> Streamable
|
||||
UserRepository o-- User
|
||||
|
||||
class UserForm {
|
||||
- username: String
|
||||
- password: String
|
||||
- address: String
|
||||
- password: String
|
||||
+ UserForm(username:String,address:String,fullName:String,password:String)
|
||||
+ getUsername() : String
|
||||
+ getAddress() : String
|
||||
+ getFullName() : String
|
||||
+ getPassword() : String
|
||||
+ abstract class UserFormWithPassword()
|
||||
+ abstract class RegistrationForm()
|
||||
+ abstract class ProfileForm()
|
||||
}
|
||||
|
||||
class FormValidator {
|
||||
supports(c:Class<?>) : boolean
|
||||
validate(o:Object,e:Errors) : void
|
||||
|
|
Loading…
Reference in a new issue