* * 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:----jTmBcdp9ZYUYsLNdu36JMC4h1h79oWoIm/UEk9MEaV1F9VPDoSTirOGzRCP8UCNV7bj0DocPI3tuzudD59gps8fbbdw/qQvw9SYf2Cwwhdn+y3rMKhBaqhZqxVpSJp9xJqhzW1ghfYHTHWRQHMur1AfQ9j4/QnQOZDrjp6ouMt0MMEKroC25M0fe5BXMFo5RIuBSyi3FeFyJWwY0954W0HztpoxLlkdbqNPFDqhbxoEvALc4EDW3ZI4K4/WlFj/fF5dUHUbQO3FCI2bTSeUAum0U6CYpzxJGdzA34oAuykvZGqJzFlnWhSVFQlNIXVn4n1UggtuOU+dDqpq1NuwSOHrSj/0+5uF98b/W4TUXaT+KPezxorJKDiJJAS6Bv9aZqExXtXs1mGj9S41qdzdCO+ImZnXh6VLTQDGlhD1vDx00Xqy6lRt+uMFAOVCE6IHzpuY23Pb7buJmRcSF2SfrfZi8bpH+scKZ1D3yBfJxQ5DfWDW/XJdYWgGJyXzha1nDHSQ0cKML60LBdURzwLakeaQW2qnpsF1M9GyGAfmkZGaIYIN2ncalldnaP73nQBsu1cLmQhYcN7EVDCkt4N49omUj3YxysD+CmpjaAovTNo97TxwYkM7UE3NJhp/Fsc2Z+oR53TyEIhUFcqyhdxqgoFfXXyMpOrqJ3rz9E9+cFUg=----ATTACHMENT:----NTM2ODU3OTc4MTkyMjI0MSA1NTM1OTkyNTQ2MzMxODc5IDY3MDU4MjI3OTcxODk1NQ==