@startuml
package com.iluwatar.balking {
  class App {
    - LOGGER : Logger {static}
    + App()
    + main(args : String[]) {static}
  }
  interface DelayProvider {
    + executeAfterDelay(long, TimeUnit, Runnable) {abstract}
  }
  class WashingMachine {
    - LOGGER : Logger {static}
    - delayProvider : DelayProvider
    - washingMachineState : WashingMachineState
    + WashingMachine()
    + WashingMachine(delayProvider : DelayProvider)
    + endOfWashing()
    + getWashingMachineState() : WashingMachineState
    + wash()
  }
  enum WashingMachineState {
    + ENABLED {static}
    + WASHING {static}
    + valueOf(name : String) : WashingMachineState {static}
    + values() : WashingMachineState[] {static}
  }
}
WashingMachine -->  "-washingMachineState" WashingMachineState
WashingMachine -->  "-delayProvider" DelayProvider
@enduml