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 |