@startuml package com.iluwatar.servant { class App { - LOGGER : Logger {static} - jenkins : Servant {static} - travis : Servant {static} + App() + main(args : String[]) {static} + scenario(servant : Servant, compliment : int) {static} } class King { - complimentReceived : boolean - isDrunk : boolean - isHappy : boolean - isHungry : boolean + King() + changeMood() + getDrink() + getFed() + getMood() : boolean + receiveCompliments() } class Queen { - complimentReceived : boolean - isDrunk : boolean - isFlirty : boolean - isHappy : boolean - isHungry : boolean + Queen() + changeMood() + getDrink() + getFed() + getMood() : boolean + receiveCompliments() + setFlirtiness(f : boolean) } ~interface Royalty { + changeMood() {abstract} + getDrink() {abstract} + getFed() {abstract} + getMood() : boolean {abstract} + receiveCompliments() {abstract} } class Servant { + name : String + Servant(name : String) + checkIfYouWillBeHanged(tableGuests : List) : boolean + feed(r : Royalty) + giveCompliments(r : Royalty) + giveWine(r : Royalty) } } App --> "-jenkins" Servant King ..|> Royalty Queen ..|> Royalty @enduml