@startuml
!include style.puml

box Sort LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant "s:SortCommand" as SortCommand LOGIC_COLOR
participant ":CommandResult" as CommandResult LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
end box

[-> LogicManager : execute("sort priority, name")
activate LogicManager

ref over LogicManager
    Similar to DeleteCommand's way 
    of generating a {certain}Command
end ref



LogicManager -> SortCommand : execute()
activate SortCommand
    
SortCommand -> Model : setComparator(field)
activate Model

loop [int 0..n]
    Model -> Model:s: new SortedList()
    Model -> Model:s.setComparator(field)
end

Model ->Model: new FilteredList(s)
Model --> SortCommand
deactivate Model

create CommandResult
SortCommand -> CommandResult
activate CommandResult

CommandResult --> SortCommand
deactivate CommandResult

SortCommand --> LogicManager : result
deactivate SortCommand

[<--LogicManager
deactivate LogicManager
@enduml
