136 lines
3.8 KiB
Plaintext
136 lines
3.8 KiB
Plaintext
@startuml
|
|
package com.iluwatar.layers.dto {
|
|
class CakeInfo {
|
|
+ cakeLayerInfos : List<CakeLayerInfo>
|
|
+ cakeToppingInfo : CakeToppingInfo
|
|
+ id : Optional<Long>
|
|
+ CakeInfo(cakeToppingInfo : CakeToppingInfo, cakeLayerInfos : List<CakeLayerInfo>)
|
|
+ CakeInfo(id : Long, cakeToppingInfo : CakeToppingInfo, cakeLayerInfos : List<CakeLayerInfo>)
|
|
+ calculateTotalCalories() : int
|
|
+ toString() : String
|
|
}
|
|
class CakeLayerInfo {
|
|
+ calories : int
|
|
+ id : Optional<Long>
|
|
+ name : String
|
|
+ CakeLayerInfo(id : Long, name : String, calories : int)
|
|
+ CakeLayerInfo(name : String, calories : int)
|
|
+ toString() : String
|
|
}
|
|
class CakeToppingInfo {
|
|
+ calories : int
|
|
+ id : Optional<Long>
|
|
+ name : String
|
|
+ CakeToppingInfo(id : Long, name : String, calories : int)
|
|
+ CakeToppingInfo(name : String, calories : int)
|
|
+ toString() : String
|
|
}
|
|
}
|
|
package com.iluwatar.layers.entity {
|
|
class Cake {
|
|
- id : Long
|
|
- layers : Set<CakeLayer>
|
|
- topping : CakeTopping
|
|
+ Cake()
|
|
+ addLayer(layer : CakeLayer)
|
|
+ getId() : Long
|
|
+ getLayers() : Set<CakeLayer>
|
|
+ getTopping() : CakeTopping
|
|
+ setId(id : Long)
|
|
+ setLayers(layers : Set<CakeLayer>)
|
|
+ setTopping(topping : CakeTopping)
|
|
+ toString() : String
|
|
}
|
|
class CakeLayer {
|
|
- cake : Cake
|
|
- calories : int
|
|
- id : Long
|
|
- name : String
|
|
+ CakeLayer()
|
|
+ CakeLayer(name : String, calories : int)
|
|
+ getCake() : Cake
|
|
+ getCalories() : int
|
|
+ getId() : Long
|
|
+ getName() : String
|
|
+ setCake(cake : Cake)
|
|
+ setCalories(calories : int)
|
|
+ setId(id : Long)
|
|
+ setName(name : String)
|
|
+ toString() : String
|
|
}
|
|
class CakeTopping {
|
|
- cake : Cake
|
|
- calories : int
|
|
- id : Long
|
|
- name : String
|
|
+ CakeTopping()
|
|
+ CakeTopping(name : String, calories : int)
|
|
+ getCake() : Cake
|
|
+ getCalories() : int
|
|
+ getId() : Long
|
|
+ getName() : String
|
|
+ setCake(cake : Cake)
|
|
+ setCalories(calories : int)
|
|
+ setId(id : Long)
|
|
+ setName(name : String)
|
|
+ toString() : String
|
|
}
|
|
}
|
|
package com.iluwatar.layers.view {
|
|
class CakeViewImpl {
|
|
- LOGGER : Logger {static}
|
|
- cakeBakingService : CakeBakingService
|
|
+ CakeViewImpl(cakeBakingService : CakeBakingService)
|
|
+ render()
|
|
}
|
|
interface View {
|
|
+ render() {abstract}
|
|
}
|
|
}
|
|
package com.iluwatar.layers.app {
|
|
class App {
|
|
- cakeBakingService : CakeBakingService {static}
|
|
+ App()
|
|
- initializeData(cakeBakingService : CakeBakingService) {static}
|
|
+ main(args : String[]) {static}
|
|
}
|
|
}
|
|
package com.iluwatar.layers.dao {
|
|
interface CakeDao {
|
|
}
|
|
interface CakeLayerDao {
|
|
}
|
|
interface CakeToppingDao {
|
|
}
|
|
}
|
|
package com.iluwatar.layers.service {
|
|
interface CakeBakingService {
|
|
+ bakeNewCake(CakeInfo) {abstract}
|
|
+ getAllCakes() : List<CakeInfo> {abstract}
|
|
+ getAvailableLayers() : List<CakeLayerInfo> {abstract}
|
|
+ getAvailableToppings() : List<CakeToppingInfo> {abstract}
|
|
+ saveNewLayer(CakeLayerInfo) {abstract}
|
|
+ saveNewTopping(CakeToppingInfo) {abstract}
|
|
}
|
|
class CakeBakingServiceImpl {
|
|
- context : AbstractApplicationContext
|
|
+ CakeBakingServiceImpl()
|
|
+ bakeNewCake(cakeInfo : CakeInfo)
|
|
+ getAllCakes() : List<CakeInfo>
|
|
- getAvailableLayerEntities() : List<CakeLayer>
|
|
+ getAvailableLayers() : List<CakeLayerInfo>
|
|
- getAvailableToppingEntities() : List<CakeTopping>
|
|
+ getAvailableToppings() : List<CakeToppingInfo>
|
|
+ saveNewLayer(layerInfo : CakeLayerInfo)
|
|
+ saveNewTopping(toppingInfo : CakeToppingInfo)
|
|
}
|
|
}
|
|
CakeInfo --> "-cakeLayerInfos" CakeLayerInfo
|
|
CakeInfo --> "-cakeToppingInfo" CakeToppingInfo
|
|
CakeViewImpl --> "-cakeBakingService" CakeBakingService
|
|
App --> "-cakeBakingService" CakeBakingService
|
|
Cake --> "-topping" CakeTopping
|
|
CakeLayer --> "-cake" Cake
|
|
CakeBakingServiceImpl ..|> CakeBakingService
|
|
CakeViewImpl ..|> View
|
|
@enduml |