<?php
declare(strict_types=1);
/*
* This is part of the league/commonmark package.
*
* (c) Martin Hasoň <[email protected]>
* (c) Webuni s.r.o. <[email protected]>
* (c) Colin O'Dell <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace League\CommonMark\Extension\Table;
use League\CommonMark\Block\Element\AbstractBlock;
use League\CommonMark\Block\Element\AbstractStringContainerBlock;
use League\CommonMark\Block\Element\InlineContainerInterface;
use League\CommonMark\ContextInterface;
use League\CommonMark\Cursor;
final class Table extends AbstractStringContainerBlock implements InlineContainerInterface
{
/** @var TableSection */
private $head;
/** @var TableSection */
private $body;
/** @var \Closure */
private $parser;
public function __construct(\Closure $parser)
{
parent::__construct();
$this->appendChild($this->head = new TableSection(TableSection::TYPE_HEAD));
$this->appendChild($this->body = new TableSection(TableSection::TYPE_BODY));
$this->parser = $parser;
}
public function canContain(AbstractBlock $block): bool
{
return $block instanceof TableSection;
}
public function isCode(): bool
{
return false;
}
public function getHead(): TableSection
{
return $this->head;
}
public function getBody(): TableSection
{
return $this->body;
}
public function matchesNextLine(Cursor $cursor): bool
{
return call_user_func($this->parser, $cursor, $this);
}
public function handleRemainingContents(ContextInterface $context, Cursor $cursor): void
{
}
}