/**
  * @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 $tagLabel
  * @return PropertyConditionGenerator
  */
 public function isLabeled($tagLabel)
 {
     $propertyConditionGenerator = new PropertyConditionGenerator('label');
     return $propertyConditionGenerator->equals($tagLabel);
 }
 /**
  * @param string $collectionTitle
  * @return PropertyConditionGenerator
  */
 public function isTitled($collectionTitle)
 {
     $propertyConditionGenerator = new PropertyConditionGenerator('title');
     return $propertyConditionGenerator->equals($collectionTitle);
 }
 /**
  * @param string $mediaType
  * @return PropertyConditionGenerator
  */
 public function hasMediaType($mediaType)
 {
     $propertyConditionGenerator = new PropertyConditionGenerator('resource.mediaType');
     return $propertyConditionGenerator->equals($mediaType);
 }