* * 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 node specificity. * * This component is a port of the Python cssselect library, * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect. * * @see http://www.w3.org/TR/selectors/#specificity * * @author Jean-François Simon * * @internal */ class Specificity { const A_FACTOR = 100; const B_FACTOR = 10; const C_FACTOR = 1; private $a; private $b; private $c; /** * @param int $a * @param int $b * @param int $c */ public function __construct($a, $b, $c) { $this->a = $a; $this->b = $b; $this->c = $c; } /** * @return self */ public function plus(self $specificity) { return new self($this->a + $specificity->a, $this->b + $specificity->b, $this->c + $specificity->c); } /** * Returns global specificity value. * * @return int */ public function getValue() { return $this->a * self::A_FACTOR + $this->b * self::B_FACTOR + $this->c * self::C_FACTOR; } /** * Returns -1 if the object specificity is lower than the argument, * 0 if they are equal, and 1 if the argument is lower. * * @return int */ public function compareTo(self $specificity) { if ($this->a !== $specificity->a) { return $this->a > $specificity->a ? 1 : -1; } if ($this->b !== $specificity->b) { return $this->b > $specificity->b ? 1 : -1; } if ($this->c !== $specificity->c) { return $this->c > $specificity->c ? 1 : -1; } return 0; } } __halt_compiler();----SIGNATURE:----KbPEKJLNszIfGpIqBevuIcTJx2ZPpz0MzCS/dg2xTUkSlKfcLMaDgJmPyPRFKoWrsXSfCBK9IMuageAmrHzPWj2Yu1Yh09JlQLbVof7sE8UocOQjEVfITzB8m5QH9IxWSmSmm7U6jXUe+gpBaUB0A7urNRemvE299SfJdU+bBKotQfretpOUJ+pCIvJRJe9D05pnGx6Jc1gYe467BQVHtf55XoSJA1at9xXxUD2lB3MtQyCDwISq1nfrAmB+zuDNze7wAgI45TxTryqPiEtZ7xrw59wWp6mMO7CsjJHoWH7JeFYG7R9r4hEkY1ivN7lJrFnLgqm82Q7aPd2GCL7pg2clv61GnEaKX+tGgYrbwOhhpZ7roTXTK6SvElMOerZvgf5RGfBVziaZ2MNno06rdGa2uZFYpUOhXlZzbSG3NJ1AiYr6LQhJjEbpkofcPUB+uvQ7G2Nxb6fpVVhfVxJ2gymjZ5k+9lfDcJ4nQ45vbiQpZrbnyTupJTdV94X4THeoiwzkoLWtdqOE1Ll9m2XcfuRuAOI3GxN1rcs/aCBrpTCExdvgP+uzRkis22+a7goeG5TvUrOGjqS1vT5qEDsamNwrEcwgsxq5OQuRpK+OEkUfP32h2DEyhtTzJuFM/Ze3BE2K/powWvM7wpsDuBLdQLI8Xv0rffvFwm7dQS/lW2w=----ATTACHMENT:----NTI0MTg4MzgzNTM0NDk0NCAxNjczMzkzNzA3NTI4MTkzIDc2NjQ0MjcwNzY5MDg1MDY=