radarrplexorganizrnginxsonarrdashboardserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpc
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							85 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							85 lines
						
					
					
						
							2.1 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * This file is part of the Symfony package. | |
|  * | |
|  * (c) Fabien Potencier <fabien@symfony.com> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace Symfony\Component\CssSelector\Node; | |
| 
 | |
| /** | |
|  * Represents a "<selector>[<namespace>|<attribute> <operator> <value>]" 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 <jeanfrancois.simon@sensiolabs.com> | |
|  * | |
|  * @internal | |
|  */ | |
| class AttributeNode extends AbstractNode | |
| { | |
|     private $selector; | |
|     private $namespace; | |
|     private $attribute; | |
|     private $operator; | |
|     private $value; | |
| 
 | |
|     public function __construct(NodeInterface $selector, ?string $namespace, string $attribute, string $operator, ?string $value) | |
|     { | |
|         $this->selector = $selector; | |
|         $this->namespace = $namespace; | |
|         $this->attribute = $attribute; | |
|         $this->operator = $operator; | |
|         $this->value = $value; | |
|     } | |
| 
 | |
|     public function getSelector(): NodeInterface | |
|     { | |
|         return $this->selector; | |
|     } | |
| 
 | |
|     public function getNamespace(): ?string | |
|     { | |
|         return $this->namespace; | |
|     } | |
| 
 | |
|     public function getAttribute(): string | |
|     { | |
|         return $this->attribute; | |
|     } | |
| 
 | |
|     public function getOperator(): string | |
|     { | |
|         return $this->operator; | |
|     } | |
| 
 | |
|     public function getValue(): ?string | |
|     { | |
|         return $this->value; | |
|     } | |
| 
 | |
|     /** | |
|      * {@inheritdoc} | |
|      */ | |
|     public function getSpecificity(): Specificity | |
|     { | |
|         return $this->selector->getSpecificity()->plus(new Specificity(0, 1, 0)); | |
|     } | |
| 
 | |
|     /** | |
|      * {@inheritdoc} | |
|      */ | |
|     public function __toString(): string | |
|     { | |
|         $attribute = $this->namespace ? $this->namespace.'|'.$this->attribute : $this->attribute; | |
| 
 | |
|         return 'exists' === $this->operator | |
|             ? sprintf('%s[%s[%s]]', $this->getNodeName(), $this->selector, $attribute) | |
|             : sprintf("%s[%s[%s %s '%s']]", $this->getNodeName(), $this->selector, $attribute, $this->operator, $this->value); | |
|     } | |
| }
 | |
| 
 |