diff -r 000000000000 -r 7f95f8617b0b vendor/symfony/src/Symfony/Component/CssSelector/Node/ClassNode.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/symfony/src/Symfony/Component/CssSelector/Node/ClassNode.php Sat Sep 24 15:40:41 2011 +0200 @@ -0,0 +1,59 @@ + + * + * 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\XPathExpr; + +/** + * ClassNode represents a "selector.className" node. + * + * This component is a port of the Python lxml library, + * which is copyright Infrae and distributed under the BSD license. + * + * @author Fabien Potencier + */ +class ClassNode implements NodeInterface +{ + protected $selector; + protected $className; + + /** + * The constructor. + * + * @param NodeInterface $selector The XPath Selector + * @param string $className The class name + */ + public function __construct($selector, $className) + { + $this->selector = $selector; + $this->className = $className; + } + + /** + * {@inheritDoc} + */ + public function __toString() + { + return sprintf('%s[%s.%s]', __CLASS__, $this->selector, $this->className); + } + + /** + * {@inheritDoc} + */ + public function toXpath() + { + $selXpath = $this->selector->toXpath(); + $selXpath->addCondition(sprintf("contains(concat(' ', normalize-space(@class), ' '), %s)", XPathExpr::xpathLiteral(' '.$this->className.' '))); + + return $selXpath; + } +}