@startuml
skinparam monochrome true
skinparam packageStyle rectangle
skinparam shadowing false

autonumber

'hide footbox
participant ":{NameOfUC}Controller" as CTRL
participant "ApplicationSession" as APPSESSIONC
participant "appSession\n:ApplicationSession" as APPSESSIONI
participant "currentSession\n:UserSession" as CURSESSION

activate CTRL
[o-> CTRL : create()
    CTRL -> APPSESSIONC : getinstance()

    activate APPSESSIONC
        APPSESSIONC --> CTRL : appSession
    deactivate APPSESSIONC

    CTRL -> APPSESSIONI : getCurrentSession()
    activate APPSESSIONI
        APPSESSIONI --> CTRL : currentSession
    deactivate APPSESSIONI

    CTRL -> CURSESSION : isLoggedInWithRole(USER_ROLE)
    activate CURSESSION
        CURSESSION --> CTRL : answer
    deactivate CURSESSION

    alt answer = true
        CTRL -> CTRL : doesOtherThing()
        activate CTRL
            [o<-- CTRL : ok
        deactivate CTRL
        autonumber stop
        CTRL -[#white]> CURSESSION
        autonumber resume
    else
        |||
        [o<-- CTRL : illegalStateException("Not Authorized")
        |||
    end alt

deactivate CTRL

@enduml