/**
  * @param string $nodePathOrIdentifier
  * @return PropertyConditionGenerator
  */
 public function isDescendantNodeOf($nodePathOrIdentifier)
 {
     if (preg_match(UuidValidator::PATTERN_MATCH_UUID, $nodePathOrIdentifier) === 1) {
         $node = $this->getNodeByIdentifier($nodePathOrIdentifier);
         if ($node === null) {
             return new FalseConditionGenerator();
         }
         $nodePath = $node->getPath();
     } else {
         $nodePath = rtrim($nodePathOrIdentifier, '/');
     }
     $propertyConditionGenerator1 = new PropertyConditionGenerator('path');
     $propertyConditionGenerator2 = new PropertyConditionGenerator('path');
     return new DisjunctionGenerator(array($propertyConditionGenerator1->like($nodePath . '/%'), $propertyConditionGenerator2->equals($nodePath)));
 }
 /**
  * @param string $term
  * @return PropertyConditionGenerator
  */
 public function titleStartsWith($term)
 {
     $propertyConditionGenerator = new PropertyConditionGenerator('title');
     return $propertyConditionGenerator->like($term . '%');
 }