@startuml skinparam linetype ortho skinparam groupInheritance 2 package Spring { interface Model class Sort } package Salespoint { interface Catalog << T > Product >> interface DataInitializer interface Inventory << T > InventoryItem >> class Product class Quantity } package catering.catalog { interface CateringCatalog { + DEFAULT_SORT : Sort + findByType(type, sort : Sort) : Iterable + findByEventType(type) : Iterable } CateringCatalog --o CatalogController : "-catalog" CateringCatalog ..> Catalog : " Product" class CatalogController { + CatalogController() + eventcateringCatalog(model : Model) : String + partyserviceCatalog(model : Model) : String + mobilebreakfast(model : Model) : String + rentacookCatalog(model : Model) : String } CatalogController --> Inventory : "- inventory" CatalogController ..> Model : "use" class Consumable { wholesalePrice retailPrice promotionPrice [0..1] } Consumable --|> Product class Rentable { pricePerHour } Rentable --|> Product } @enduml