* * 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:----jJp4JUPCFKBmVEY2R3dE/Xeix6uf5V1ZAwy4JU1JPAgHyWPLT9Z382WcIRyw1sbpiz+9o6JPSAXiCJaFCWfgSTCwLMuI62e92giYwc4KQQOzm5fsK2EbXTAJHYUhH+DI7DNw4LpY9d6neutPYgUPXSWem6hpVyY+F+SMBEJnBcwoWsBwWIrKj0S45FfDjJptoYkK2GjlhmKLEHyoyhqP0t3uQPbicC3lKHWH1o05HIpKPYEauUIQYpmToMZrUf5ht2uddJgNWVSUA3llY2qaUPeJRbvCNq0Zv97TzlJWfaNbeguB2gKHkU9qo4qgNlagQVgCKjyUsdP+mmZxwjXvsPTY7+rNUEfsark5pO5Zdo8k78tPdCCzbybscgEFbutEsuD/w5OzBVMIs5K2yoljWmNVhHlBkNOm1rWzMBLa3wUrhw05mdh2musEl3jYXZaeZD0Qd96+fJqtS/lATkY11YKQqPWCpnRzwClmdzEmVwwYPuZ5gK3/q/w/OSmOiBvChJKlDFv8MEMNLsiMQzDzwvYB1E2XCMKy+7XKfBgwohVrNBe+lZ5zVPi9OcInWV0E0EX3wSEuVMck0JoWuTSiRx6+FjEDDnpwrhmx+q5rFbp0lf8/TOAquafhT/fwJkOWH6ixoRqm2yMdQHroHqVhXtvTaLGYAGwdUdtGpgyrOkM=----ATTACHMENT:----MTY2NjU0NDcwOTUwOTEzMSAyNjc1MjU3MzI1ODUyNjgzIDE4MTc1MDQwODQ0NzQzODM=