isValidNodename() 공개 메소드

Check if this node name is valid. Returns null if valid, an exception otherwise.
public isValidNodename ( string $nodeName ) : PHPCR\RepositoryException | null
$nodeName string The node local name
리턴 PHPCR\RepositoryException | null
예제 #1
0
 /**
  * Use the name and parent fields to generate the id
  *
  * {@inheritDoc}
  */
 public function generate($document, ClassMetadata $class, DocumentManager $dm, $parent = null)
 {
     if (null === $parent) {
         $parent = $class->parentMapping ? $class->getFieldValue($document, $class->parentMapping) : null;
     }
     $name = $class->nodename ? $class->getFieldValue($document, $class->nodename) : null;
     $id = $class->getFieldValue($document, $class->identifier);
     if (empty($id)) {
         if (empty($name) && empty($parent)) {
             throw IdException::noIdentificationParameters($document, $class->parentMapping, $class->nodename);
         }
         if (empty($parent)) {
             throw IdException::noIdNoParent($document, $class->parentMapping);
         }
         if (empty($name)) {
             throw IdException::noIdNoName($document, $class->nodename);
         }
     }
     // use assigned ID by default
     if (empty($parent) || empty($name)) {
         return $id;
     }
     if ($exception = $class->isValidNodename($name)) {
         throw IdException::illegalName($document, $class->nodename, $name);
     }
     // determine ID based on the path and the node name
     return $this->buildName($document, $class, $dm, $parent, $name);
 }
예제 #2
0
 /**
  * @depends testClassName
  */
 public function testIsValidNodename(ClassMetadata $cm)
 {
     $this->assertInstanceOf('PHPCR\\RepositoryException', $cm->isValidNodename(''));
     $this->assertInstanceOf('PHPCR\\RepositoryException', $cm->isValidNodename('a:b:c'));
     $this->assertInstanceOf('PHPCR\\RepositoryException', $cm->isValidNodename('a:'));
     $this->assertInstanceOf('PHPCR\\RepositoryException', $cm->isValidNodename(':a'));
     $this->assertInstanceOf('PHPCR\\RepositoryException', $cm->isValidNodename(':'));
     $this->assertInstanceOf('PHPCR\\RepositoryException', $cm->isValidNodename('x/y'));
     $this->assertNull($cm->isValidNodename('a:b'));
     $this->assertNull($cm->isValidNodename('b'));
 }