package org.ccsds.moims.smc.core.action.structures;

/** The ActionDefinition structure holds the definition structure of an action.  */
public class ActionDefinition extends org.ccsds.moims.smc.common.common.structures.Definition {

  public ActionDefinition(org.ccsds.moims.smc.core.check.structures.Severity severity, org.ccsds.moims.smc.common.common.structures.DefinitionKeyList arguments) {
    this.severity = severity;
    this.arguments = arguments;
  }

  public ActionDefinition() { }

  public static final org.ccsds.moims.smc.mal.api.structures.MALString MAL_CLASS_ID = new org.ccsds.moims.smc.mal.api.structures.MALString("CAD");

  /** Severity of the Action. **/
  private org.ccsds.moims.smc.core.check.structures.Severity severity;

  /** The list of argument identifiers that this Action shall require. **/
  private org.ccsds.moims.smc.common.common.structures.DefinitionKeyList arguments;

  /** Severity of the Action. **/
  public org.ccsds.moims.smc.core.check.structures.Severity getSeverity() {
    return severity;
  }

  /** Severity of the Action. **/
  public void setSeverity(org.ccsds.moims.smc.core.check.structures.Severity severity) {
    this.severity = severity;
  }

  /** The list of argument identifiers that this Action shall require. **/
  public org.ccsds.moims.smc.common.common.structures.DefinitionKeyList getArguments() {
    return arguments;
  }

  /** The list of argument identifiers that this Action shall require. **/
  public void setArguments(org.ccsds.moims.smc.common.common.structures.DefinitionKeyList arguments) {
    this.arguments = arguments;
  }

  public void encode(org.ccsds.moims.smc.mal.api.structures.MALEncoder encoder) throws org.ccsds.moims.smc.mal.api.structures.MALException {
    encoder.encodeElement(severity);
    encoder.encodeElement(arguments);
  }

  public void decode(org.ccsds.moims.smc.mal.api.structures.MALDecoder decoder) throws org.ccsds.moims.smc.mal.api.structures.MALException {
    severity = (org.ccsds.moims.smc.core.check.structures.Severity) decoder.decodeElement();
    arguments = (org.ccsds.moims.smc.common.common.structures.DefinitionKeyList) decoder.decodeElement();
  }

  public org.ccsds.moims.smc.mal.api.structures.MALString getShortName() {
    return MAL_CLASS_ID;
  }

}