@startuml
start
: User enter findXYZ command;
: FindXYZCommandParser parses command;

if () then ([valid user input provided])
  :Create XYZContainsKeywords predicate;
  :Create findXYZ command;
  :Execute findXYZ Command;
  if () then ([all valid parameter provided])
     : Calls Model to show the queried XYZ entry;
     : Model interacts with AddressBook and filter the XYZ list;
     : Model display only the XYZ list;
     : Display success message;
  stop
  else ([invalid])
   : Throw CommandException;
   : Display invalid parameter error message;
   stop
  endif
else ([invalid])
  :Throw parse exception;
  :Display invalid command error message;
  stop
endif
@enduml