mirror of
https://github.com/moodle/moodle.git
synced 2025-05-12 19:25:35 +02:00
130 lines
2.3 KiB
PHP
130 lines
2.3 KiB
PHP
<?php
|
||
|
||
namespace Sabberworm\CSS\Property;
|
||
|
||
use Sabberworm\CSS\Comment\Comment;
|
||
use Sabberworm\CSS\OutputFormat;
|
||
|
||
/**
|
||
* Class representing an `@charset` rule.
|
||
*
|
||
* The following restrictions apply:
|
||
* - May not be found in any CSSList other than the Document.
|
||
* - May only appear at the very top of a Document’s contents.
|
||
* - Must not appear more than once.
|
||
*/
|
||
class Charset implements AtRule
|
||
{
|
||
/**
|
||
* @var string
|
||
*/
|
||
private $sCharset;
|
||
|
||
/**
|
||
* @var int
|
||
*/
|
||
protected $iLineNo;
|
||
|
||
/**
|
||
* @var array<array-key, Comment>
|
||
*/
|
||
protected $aComments;
|
||
|
||
/**
|
||
* @param string $sCharset
|
||
* @param int $iLineNo
|
||
*/
|
||
public function __construct($sCharset, $iLineNo = 0)
|
||
{
|
||
$this->sCharset = $sCharset;
|
||
$this->iLineNo = $iLineNo;
|
||
$this->aComments = [];
|
||
}
|
||
|
||
/**
|
||
* @return int
|
||
*/
|
||
public function getLineNo()
|
||
{
|
||
return $this->iLineNo;
|
||
}
|
||
|
||
/**
|
||
* @param string $sCharset
|
||
*
|
||
* @return void
|
||
*/
|
||
public function setCharset($sCharset)
|
||
{
|
||
$this->sCharset = $sCharset;
|
||
}
|
||
|
||
/**
|
||
* @return string
|
||
*/
|
||
public function getCharset()
|
||
{
|
||
return $this->sCharset;
|
||
}
|
||
|
||
/**
|
||
* @return string
|
||
*/
|
||
public function __toString()
|
||
{
|
||
return $this->render(new OutputFormat());
|
||
}
|
||
|
||
/**
|
||
* @return string
|
||
*/
|
||
public function render(OutputFormat $oOutputFormat)
|
||
{
|
||
return "@charset {$this->sCharset->render($oOutputFormat)};";
|
||
}
|
||
|
||
/**
|
||
* @return string
|
||
*/
|
||
public function atRuleName()
|
||
{
|
||
return 'charset';
|
||
}
|
||
|
||
/**
|
||
* @return string
|
||
*/
|
||
public function atRuleArgs()
|
||
{
|
||
return $this->sCharset;
|
||
}
|
||
|
||
/**
|
||
* @param array<array-key, Comment> $aComments
|
||
*
|
||
* @return void
|
||
*/
|
||
public function addComments(array $aComments)
|
||
{
|
||
$this->aComments = array_merge($this->aComments, $aComments);
|
||
}
|
||
|
||
/**
|
||
* @return array<array-key, Comment>
|
||
*/
|
||
public function getComments()
|
||
{
|
||
return $this->aComments;
|
||
}
|
||
|
||
/**
|
||
* @param array<array-key, Comment> $aComments
|
||
*
|
||
* @return void
|
||
*/
|
||
public function setComments(array $aComments)
|
||
{
|
||
$this->aComments = $aComments;
|
||
}
|
||
}
|