100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @startuml
 | |
| package com.iluwatar.builder {
 | |
|   class App {
 | |
|     - LOGGER : Logger {static}
 | |
|     + App()
 | |
|     + main(args : String[]) {static}
 | |
|   }
 | |
|   enum Armor {
 | |
|     + CHAIN_MAIL {static}
 | |
|     + CLOTHES {static}
 | |
|     + LEATHER {static}
 | |
|     + PLATE_MAIL {static}
 | |
|     - title : String
 | |
|     + toString() : String
 | |
|     + valueOf(name : String) : Armor {static}
 | |
|     + values() : Armor[] {static}
 | |
|   }
 | |
|   enum HairColor {
 | |
|     + BLACK {static}
 | |
|     + BLOND {static}
 | |
|     + BROWN {static}
 | |
|     + RED {static}
 | |
|     + WHITE {static}
 | |
|     + toString() : String
 | |
|     + valueOf(name : String) : HairColor {static}
 | |
|     + values() : HairColor[] {static}
 | |
|   }
 | |
|   enum HairType {
 | |
|     + BALD {static}
 | |
|     + CURLY {static}
 | |
|     + LONG_CURLY {static}
 | |
|     + LONG_STRAIGHT {static}
 | |
|     + SHORT {static}
 | |
|     - title : String
 | |
|     + toString() : String
 | |
|     + valueOf(name : String) : HairType {static}
 | |
|     + values() : HairType[] {static}
 | |
|   }
 | |
|   class Hero {
 | |
|     - armor : Armor
 | |
|     - hairColor : HairColor
 | |
|     - hairType : HairType
 | |
|     - name : String
 | |
|     - profession : Profession
 | |
|     - weapon : Weapon
 | |
|     - Hero(builder : Builder)
 | |
|     + getArmor() : Armor
 | |
|     + getHairColor() : HairColor
 | |
|     + getHairType() : HairType
 | |
|     + getName() : String
 | |
|     + getProfession() : Profession
 | |
|     + getWeapon() : Weapon
 | |
|     + toString() : String
 | |
|   }
 | |
|   class Builder {
 | |
|     - armor : Armor
 | |
|     - hairColor : HairColor
 | |
|     - hairType : HairType
 | |
|     - name : String
 | |
|     - profession : Profession
 | |
|     - weapon : Weapon
 | |
|     + Builder(profession : Profession, name : String)
 | |
|     + build() : Hero
 | |
|     + withArmor(armor : Armor) : Builder
 | |
|     + withHairColor(hairColor : HairColor) : Builder
 | |
|     + withHairType(hairType : HairType) : Builder
 | |
|     + withWeapon(weapon : Weapon) : Builder
 | |
|   }
 | |
|   enum Profession {
 | |
|     + MAGE {static}
 | |
|     + PRIEST {static}
 | |
|     + THIEF {static}
 | |
|     + WARRIOR {static}
 | |
|     + toString() : String
 | |
|     + valueOf(name : String) : Profession {static}
 | |
|     + values() : Profession[] {static}
 | |
|   }
 | |
|   enum Weapon {
 | |
|     + AXE {static}
 | |
|     + BOW {static}
 | |
|     + DAGGER {static}
 | |
|     + SWORD {static}
 | |
|     + WARHAMMER {static}
 | |
|     + toString() : String
 | |
|     + valueOf(name : String) : Weapon {static}
 | |
|     + values() : Weapon[] {static}
 | |
|   }
 | |
| }
 | |
| Hero -->  "-profession" Profession
 | |
| Builder ..+ Hero
 | |
| Hero -->  "-armor" Armor
 | |
| Builder -->  "-hairColor" HairColor
 | |
| Builder -->  "-weapon" Weapon
 | |
| Builder -->  "-hairType" HairType
 | |
| Hero -->  "-hairColor" HairColor
 | |
| Builder -->  "-profession" Profession
 | |
| Hero -->  "-weapon" Weapon
 | |
| Hero -->  "-hairType" HairType
 | |
| Builder -->  "-armor" Armor
 | |
| @enduml |