# Class CAShellCmdAbstract

java.lang.Object
com.io7m.cardant.shell.internal.CAShellCmdAbstract

All Implemented Interfaces:
  `CAShellCmdType, com.io7m.quarrel.core.QCommandOrGroupType, com.io7m.quarrel.core.QCommandType`

Direct Known Subclasses:
  `CAShellCmdAbstractCR, CAShellCmdBookmarkList, CAShellCmdBookmarkLogin, CAShellCmdBookmarkPut, CAShellCmdBookmarkRemove, CAShellCmdFileGet, CAShellCmdFilePut, CAShellCmdFilesRecent, CAShellCmdHelp, CAShellCmdLogin, CAShellCmdLogout, CAShellCmdRolesAssign, CAShellCmdRolesGet, CAShellCmdRolesRevoke, CAShellCmdSelf, CAShellCmdSet, CAShellCmdSyntaxList, CAShellCmdSyntaxShow, CAShellCmdTypePackageSchema, CAShellCmdVersion`

public abstract class CAShellCmdAbstract extends Object implements CAShellCmdType
The abstract command implementation.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `CAShellCmdAbstract(com.io7m.repetoir.core.RPServiceDirectoryType inServices, com.io7m.quarrel.core.QCommandMetadata inMetadata)`
  Construct a command.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected final CAClientType`
  `client()`
  `protected final Duration`
  `commandTimeout()`
  `protected final CAFormatterType`
  `formatter()`
  `protected final Duration`
  `loginTimeout()`
  `protected final CAShellLoginTracker`
  `loginTracker()`
  `final com.io7m.quarrel.core.QCommandMetadata`
  `metadata()`
  `protected final CAShellOptions`
  `options()`
  `protected final CAPreferencesServiceType`
  `preferences()`
  `protected final void`
  `setCommandTimeoutRecent(Duration inCommandTimeoutRecent)`
  `protected final void`
  `setLoginTimeoutRecent(Duration inLoginTimeoutRecent)`
  `protected final CAStrings`
  `strings()`
  `protected final org.jline.terminal.Terminal`
  `terminal()`
  `final String`
  `toString()`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface CAShellCmdType

  `completer`

  ### Methods inherited from interface com.io7m.quarrel.core.QCommandOrGroupType

  `isHidden`

  ### Methods inherited from interface com.io7m.quarrel.core.QCommandType

  `onExecute, onListNamedParameters, onListPositionalParameters`

- ## Constructor Details

  - ### CAShellCmdAbstract

    protected CAShellCmdAbstract(com.io7m.repetoir.core.RPServiceDirectoryType inServices, com.io7m.quarrel.core.QCommandMetadata inMetadata)
    Construct a command.
    Parameters:
      `inServices` - The service directory
      `inMetadata` - The metadata

- ## Method Details

  - ### client

    protected final CAClientType client()

  - ### preferences

    protected final CAPreferencesServiceType preferences()

  - ### options

    protected final CAShellOptions options()

  - ### loginTracker

    protected final CAShellLoginTracker loginTracker()

  - ### strings

    protected final CAStrings strings()

  - ### loginTimeout

    protected final Duration loginTimeout()

  - ### commandTimeout

    protected final Duration commandTimeout()

  - ### setLoginTimeoutRecent

    protected final void setLoginTimeoutRecent(Duration inLoginTimeoutRecent)

  - ### setCommandTimeoutRecent

    protected final void setCommandTimeoutRecent(Duration inCommandTimeoutRecent)

  - ### toString

    public final String toString()
    Overrides:
      `toString` in class `Object`

  - ### metadata

    public final com.io7m.quarrel.core.QCommandMetadata metadata()
    Specified by:
      `metadata` in interface `com.io7m.quarrel.core.QCommandOrGroupType`

  - ### terminal

    protected final org.jline.terminal.Terminal terminal()

  - ### formatter

    protected final CAFormatterType formatter()