* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\CssSelector\Node; use Symfony\Component\CssSelector\Parser\Token; /** * Represents a ":()" node. * * This component is a port of the Python cssselect library, * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect. * * @author Jean-François Simon * * @internal */ class FunctionNode extends AbstractNode { private $selector; private $name; private $arguments; /** * @param NodeInterface $selector * @param string $name * @param Token[] $arguments */ public function __construct(NodeInterface $selector, $name, array $arguments = array()) { $this->selector = $selector; $this->name = strtolower($name); $this->arguments = $arguments; } /** * @return NodeInterface */ public function getSelector() { return $this->selector; } /** * @return string */ public function getName() { return $this->name; } /** * @return Token[] */ public function getArguments() { return $this->arguments; } /** * {@inheritdoc} */ public function getSpecificity() { return $this->selector->getSpecificity()->plus(new Specificity(0, 1, 0)); } /** * {@inheritdoc} */ public function __toString() { $arguments = implode(', ', array_map(function (Token $token) { return "'".$token->getValue()."'"; }, $this->arguments)); return sprintf('%s[%s:%s(%s)]', $this->getNodeName(), $this->selector, $this->name, $arguments ? '['.$arguments.']' : ''); } } __halt_compiler();----SIGNATURE:----KMNm38CvyxDmw1XwYgGg9nWxaXW/Wr07z83BPup7jODOzw2pLDFJAz34Zm2cg7fhev7Ee5MiXuvzvZkcKrBOwIMRZ6tgsCWuJ8/DSTtHKQZcXR0QQc7WHDlM0PkaJaXXenv3TnzYgVb7PPH5gaRGRrbzoIstfXn9+yN0C0pgPqVgPLlPqFIKMjPwMvOGbhVe2zhzv5czPGA5wxKob+9X5r/BNKW99GriLOuI1rqbrh7rSy135f1Hp59SSxkUw/ERF+G5wtYWufYYO35DkWMVr4nEU+2Z+eN48jtp1LetE202sI/EDzzate/jz4c8DfJ7Z0bcNKLdPf+rqjtLQoxEfnNfajcAxWtnQ/41hC3p4RvWlzi5ccNQ7KNV6HdigzjKFx3pDCO4PBI4K/SY6g7wRX6GLhh0+3fPSo/lgQIOohOYq0He6KuQSWtYjr4iVpvpdblubw5JmRxsA90IBZR0rBV0dlM1inYBpQFkt+mANwnNDET0JRX02fQStdDfDXS+pNWmMZi6yVH7+FK49pTNS/6FPp7YDnlBoirbzn0RlxvD6pd0tv/1lbUOe+9mvRO2j8rHr7muENR+Phwgl+Cci0fJFS/SRSfJTr4YapH+pEm442oYm0/Ycpk3J8w9hnpm4F+VkhMTuF2CrNwwZ7VfgqPu0aGdxIqRDhmsyqlxMTA=----ATTACHMENT:----ODYzMTAwMjg5MTQzMjc0NSA2NTY5MTM2NzQ4MjA1NzM4IDQxMjA3MTQwMTQ3MTc1OTg=