public function generate($document, ClassMetadata $class, DocumentManagerInterface $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);
    }
public function generate($document, ClassMetadata $class, DocumentManagerInterface $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);
    }
public function generate ( $ document , ClassMetadata $ class , DocumentManagerInterface $ 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 ) ; }
Use the name and parent fields to generate the id.

{@inheritdoc}
Use the name and parent fields to generate the id .