<?php


namespace r7r\cms\sys\textprocessors;

/**
 * LegacyTextprocessor is used to wrap an old-style textprocessor into an Textprocessor object.
 */
class LegacyTextprocessor implements Textprocessor
{
    /** @var callable */
    private $fx;

    /** @var bool */
    private $visible_in_backend;

    public function __construct(callable $fx, $visible_in_backend)
    {
        $this->fx = $fx;
        $this->visible_in_backend = (bool)$visible_in_backend;
    }

    public function apply(string $input): string
    {
        return (string)call_user_func($this->fx, $input);
    }

    public function showInBackend(): bool
    {
        return $this->visible_in_backend;
    }
}