@startuml
package com.iluwatar.threadpool {
  class App {
    - LOGGER : Logger {static}
    + App()
    + main(args : String[]) {static}
  }
  class CoffeeMakingTask {
    - TIME_PER_CUP : int {static}
    + CoffeeMakingTask(numCups : int)
    + toString() : String
  }
  class PotatoPeelingTask {
    - TIME_PER_POTATO : int {static}
    + PotatoPeelingTask(numPotatoes : int)
    + toString() : String
  }
  abstract class Task {
    - ID_GENERATOR : AtomicInteger {static}
    - id : int
    - timeMs : int
    + Task(timeMs : int)
    + getId() : int
    + getTimeMs() : int
    + toString() : String
  }
  class Worker {
    - LOGGER : Logger {static}
    - task : Task
    + Worker(task : Task)
    + run()
  }
}
Worker -->  "-task" Task
CoffeeMakingTask --|> Task 
PotatoPeelingTask --|> Task 
@enduml