<?php

namespace Dalten\RuianToUir\Converter;

use Dalten\RuianToUir\Converter\Result\ResultInterface;

/**
 * Rozhraní pro jednotlivé převaděče.
 */
interface ConverterInterface
{
    /**
     * Zjišťuje, zda tato třída dokáže obsloužit daný element.
     *
     * @param \XMLReader $document instance readeru s kurzorem na testovaném prvku
     *
     * @return bool Obsluhuje tato třída daný prvek?
     */
    public function accepts(\XMLReader $document): bool;

    /**
     * Převádí informace z prvku pod kurzorem do formátu UIR.
     *
     * @param \XMLReader $document instance readeru s kurzorem na testovaném prvku
     *
     * @return ResultInterface data ve formátu UIR
     */
    public function convert(\XMLReader $document): ResultInterface;

    /**
     * Vrátí název converteru.
     *
     * @return string název converteru
     */
    public function getName(): string;
}
