PDF convertor * distributed under the OSL-3.0 License * * @package Html2pdf * @author Laurent MINGUET * @copyright 2017 Laurent MINGUET */ namespace Spipu\Html2Pdf\Parsing; /** * Class Node * * Represent an DOM node in the document */ class Node { /** * @var string */ private $name; /** * @var array */ private $params; /** * @var bool */ private $close; /** * @var bool */ private $autoClose; /** * @var int */ private $line; /** * @param string $name * @param array $params * @param bool $close * @param bool $autoClose */ public function __construct($name, $params, $close, $autoClose = false) { $this->setName($name); $this->setParams($params); $this->setClose($close); $this->setAutoClose($autoClose); } /** * @return mixed */ public function getName() { return $this->name; } /** * @param string $name */ public function setName($name) { $this->name = $name; } /** * @return array */ public function getParams() { return $this->params; } /** * @param string $key * @param mixed $default * * @return null */ public function getParam($key, $default = null) { if (array_key_exists($key, $this->params)) { return $this->params[$key]; } return $default; } /** * Get a style * @param string $key * @param string|null $default * * @return string|null */ public function getStyle($key, $default = null) { $styles = $this->getParam('style', []); if (array_key_exists($key, $styles)) { return $styles[$key]; } return $default; } /** * @param string $key * @param mixed $value * * @return mixed */ public function setParam($key, $value) { return $this->params[$key] = $value; } /** * @param array $params */ public function setParams($params) { $this->params = $params; } /** * @return bool */ public function isClose() { return $this->close; } /** * @param bool $close */ public function setClose($close) { $this->close = (bool) $close; } /** * @return bool */ public function isAutoClose() { return $this->autoClose; } /** * @param $autoClose */ public function setAutoClose($autoClose) { $this->autoClose = (bool) $autoClose; } /** * @return int */ public function getLine() { return $this->line; } /** * @param int $line */ public function setLine($line) { $this->line = $line; } }