Package com.io7m.idstore.server.internal.admin

# Class IdACmdAbstract<T extends IdCommandContext<R,IdAdminSession>,C extends IdProtocolMessageType,R extends IdProtocolMessageType>

java.lang.Object
com.io7m.idstore.server.internal.admin.IdACmdAbstract<T,C,R>

Type Parameters:
  `T` - The type of command contexts
  `C` - The type of accepted commands
  `R` - The type of responses

All Implemented Interfaces:
  `IdCommandExecutorType<IdAdminSession,T,C,R>`

Direct Known Subclasses:
  `IdACmdAdminBanCreate`, `IdACmdAdminBanDelete`, `IdACmdAdminBanGet`, `IdACmdAdminCreate`, `IdACmdAdminDelete`, `IdACmdAdminEmailAdd`, `IdACmdAdminEmailRemove`, `IdACmdAdminGet`, `IdACmdAdminGetByEmail`, `IdACmdAdminPermissionGrant`, `IdACmdAdminPermissionRevoke`, `IdACmdAdminSearchBegin`, `IdACmdAdminSearchByEmailBegin`, `IdACmdAdminSearchByEmailNext`, `IdACmdAdminSearchByEmailPrevious`, `IdACmdAdminSearchNext`, `IdACmdAdminSearchPrevious`, `IdACmdAdminSelf`, `IdACmdAdminUpdate`, `IdACmdAuditSearchBegin`, `IdACmdAuditSearchNext`, `IdACmdAuditSearchPrevious`, `IdACmdUserBanCreate`, `IdACmdUserBanDelete`, `IdACmdUserBanGet`, `IdACmdUserCreate`, `IdACmdUserDelete`, `IdACmdUserEmailAdd`, `IdACmdUserEmailRemove`, `IdACmdUserGet`, `IdACmdUserGetByEmail`, `IdACmdUserLoginHistory`, `IdACmdUserSearchBegin`, `IdACmdUserSearchByEmailBegin`, `IdACmdUserSearchByEmailNext`, `IdACmdUserSearchByEmailPrevious`, `IdACmdUserSearchNext`, `IdACmdUserSearchPrevious`, `IdACmdUserUpdate`

public abstract class IdACmdAbstract<T extends IdCommandContext<R,IdAdminSession>,C extends IdProtocolMessageType,R extends IdProtocolMessageType> extends Object implements IdCommandExecutorType<IdAdminSession,T,C,R>
The abstract base command class.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `IdACmdAbstract()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final R`
  `execute(T context, C command)`
  Execute a command.
  `protected abstract R`
  `executeActual(T context, C command)`

  ### Methods inherited from class java.lang.Object

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

- ## Constructor Details

  - ### IdACmdAbstract

    protected IdACmdAbstract()

- ## Method Details

  - ### execute

    public final R execute(T context, C command) throws IdCommandExecutionFailure, IOException, InterruptedException
    Description copied from interface: `IdCommandExecutorType`
    Execute a command.
    Specified by:
      `execute` in interface `IdCommandExecutorType<IdAdminSession,T extends IdCommandContext<R,IdAdminSession>,C extends IdProtocolMessageType,R extends IdProtocolMessageType>`
    Parameters:
      `context` - The execution context
      `command` - The command
    Returns:
      The result of execution
    Throws:
      `IdCommandExecutionFailure` - On errors
      `IOException`
      `InterruptedException`

  - ### executeActual

    protected abstract R executeActual(T context, C command) throws IdValidityException, IdException, IdCommandExecutionFailure
    Throws:
      `IdValidityException`
      `IdException`
      `IdCommandExecutionFailure`