Module hw06

Class APhraseVisitor

java.lang.Object
provided.abcMusic.musicFW.APhraseVisitor
All Implemented Interfaces:
IPhraseVisitor

public abstract class APhraseVisitor extends Object implements IPhraseVisitor
Command-based implementation of IPhraseVisitor that uses IPhraseVisitorCmds stored in a hash table.
Author:
swong
  • Field Details

    • defaultCmd

      private IPhraseVisitorCmd defaultCmd
      The default command to use when caseAt is called with an ID that is not in the hashtable as a key.
    • cmds

      private Map<String,​IPhraseVisitorCmd> cmds
      The dictionary of commands, implemented using a hash table.
  • Constructor Details

    • APhraseVisitor

      public APhraseVisitor()
      Constructor that installs a default cmd that throws an IllegalArgumentException on any unknown host. * ---------------------------------------------- Abstract extended visitor implementation that uses a dictionary of commands to associate commands with host IDs.
    • APhraseVisitor

      public APhraseVisitor(IPhraseVisitorCmd defaultCmd)
      Constructor that sets the default cmd to the supplied cmd.
      Parameters:
      defaultCmd - the default cmd to use.
  • Method Details

    • caseAt

      public Object caseAt(String id, IPhrase host, Object... params)
      Runs the command associated with the given id, passing along the given host and vararg parameters. If there is no cmd associated with the given id in the dictionary, then use the default cmd.
      Specified by:
      caseAt in interface IPhraseVisitor
      Parameters:
      id - The ID value that identifies the host
      host - The host IPhrase object
      params - vararg list of parameters that might be used. Can be called with no input params.
      Returns:
      the result of executing the associated cmd.
    • addCmd

      public void addCmd(String id, IPhraseVisitorCmd cmd)
      Add the given command to the dictionary, associated with the given id value.
      Parameters:
      id - The id of the host that will use this command
      cmd - The command that will be run when the host calls for it.