<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

namespace Kufer\KuferTools\Basis\Markieren;

abstract class MarkierenUseCase extends \Kufer\KuferTools\Basis\UseCase\ToolUseCase
{
  abstract protected function getActionlink();

  abstract protected function getLabel1();

  abstract protected function getLabel2();

  public function __construct($request)
  {
    parent::__construct($request, new MarkierenResponse());
  }

  public function action()
  {
    return $this->getResponse();
  }

  protected function getResponse()
  {
    $this->response->toolId = $this->getToolId();
    $this->response->action = $this->getActionlink();
    $this->response->label1 = $this->getLabel1();
    $this->response->label2 = $this->getLabel2();

    return $this->response;
  }
}

class MarkierenRequest
{
}

class MarkierenResponse extends \Kufer\KuferTools\Basis\UseCase\ToolResponse
{
  public $toolId;
  public $action;
  public $label1;
  public $label2;
}