/**
   * Avalia a condição <code>boolean</code> para processar ou não a ação.
   *
   * @throws <code>IllegalArgumentException</code> caso não tenha ação e/ou condição <code>boolean
   *     </code> vinculada.
   */
  @Override
  protected void action() {
    if (action == null) {
      throw new IllegalArgumentException(
          "Indique a Ação que deve ser executada, utilize o método addAction.");
    }

    if (expression == null) {
      throw new IllegalArgumentException(
          "Indique a expressão condicional da Ação, utilize o método addConditional.");
    }

    if (expression.conditional()) {
      action.actionPerformed();
    }
  }