[ Index ] |
PHP Cross Reference of DokuWiki |
[Summary view] [Print] [Text view]
1 <?php 2 3 /* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12 namespace Symfony\Component\CssSelector\Node; 13 14 /** 15 * Represents a combined node. 16 * 17 * This component is a port of the Python cssselect library, 18 * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect. 19 * 20 * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com> 21 * 22 * @internal 23 */ 24 class CombinedSelectorNode extends AbstractNode 25 { 26 private $selector; 27 private $combinator; 28 private $subSelector; 29 30 public function __construct(NodeInterface $selector, string $combinator, NodeInterface $subSelector) 31 { 32 $this->selector = $selector; 33 $this->combinator = $combinator; 34 $this->subSelector = $subSelector; 35 } 36 37 public function getSelector(): NodeInterface 38 { 39 return $this->selector; 40 } 41 42 public function getCombinator(): string 43 { 44 return $this->combinator; 45 } 46 47 public function getSubSelector(): NodeInterface 48 { 49 return $this->subSelector; 50 } 51 52 /** 53 * {@inheritdoc} 54 */ 55 public function getSpecificity(): Specificity 56 { 57 return $this->selector->getSpecificity()->plus($this->subSelector->getSpecificity()); 58 } 59 60 public function __toString(): string 61 { 62 $combinator = ' ' === $this->combinator ? '<followed>' : $this->combinator; 63 64 return sprintf('%s[%s %s %s]', $this->getNodeName(), $this->selector, $combinator, $this->subSelector); 65 } 66 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body