@startuml
package com.iluwatar.memento {
  class App {
    - LOGGER : Logger {static}
    + App()
    + main(args : String[]) {static}
  }
  class Star {
    - ageYears : int
    - massTons : int
    - type : StarType
    + Star(startType : StarType, startAge : int, startMass : int)
    ~ getMemento() : StarMemento
    ~ setMemento(memento : StarMemento)
    + timePasses()
    + toString() : String
  }
  -class StarMementoInternal {
    - ageYears : int
    - massTons : int
    - type : StarType
    - StarMementoInternal()
    + getAgeYears() : int
    + getMassTons() : int
    + getType() : StarType
    + setAgeYears(ageYears : int)
    + setMassTons(massTons : int)
    + setType(type : StarType)
  }
  interface StarMemento {
  }
  enum StarType {
    + DEAD {static}
    + RED_GIANT {static}
    + SUN {static}
    + SUPERNOVA {static}
    + UNDEFINED {static}
    + WHITE_DWARF {static}
    - title : String
    + toString() : String
    + valueOf(name : String) : StarType {static}
    + values() : StarType[] {static}
  }
}
StarMementoInternal -->  "-type" StarType
Star -->  "-type" StarType
StarMementoInternal ..+ Star
StarMementoInternal ..|> StarMemento 
@enduml