Doctrine\ODM\MongoDB\Tools\DocumentGenerator::generateDocumentDocBlock PHP Method

generateDocumentDocBlock() private method

private generateDocumentDocBlock ( ClassMetadataInfo $metadata )
$metadata Doctrine\ODM\MongoDB\Mapping\ClassMetadataInfo
    private function generateDocumentDocBlock(ClassMetadataInfo $metadata)
    {
        $lines = array();
        $lines[] = '/**';
        $lines[] = ' * ' . $metadata->name;
        if ($this->generateAnnotations) {
            $lines[] = ' *';
            if ($metadata->isMappedSuperclass) {
                $lines[] = ' * @ODM\\MappedSuperclass';
            } elseif ($metadata->isEmbeddedDocument) {
                $lines[] = ' * @ODM\\EmbeddedDocument';
            } elseif ($metadata->isQueryResultDocument) {
                $lines[] = ' * @ODM\\QueryResultDocument';
            } else {
                $lines[] = ' * @ODM\\Document';
            }
            $document = array();
            if (!$metadata->isMappedSuperclass && !$metadata->isEmbeddedDocument && !$metadata->isQueryResultDocument) {
                if ($metadata->collection) {
                    $document[] = ' *     collection="' . $metadata->collection . '"';
                }
                if ($metadata->customRepositoryClassName) {
                    $document[] = ' *     repositoryClass="' . $metadata->customRepositoryClassName . '"';
                }
            }
            if ($metadata->indexes) {
                $indexes = array();
                $indexLines = array();
                $indexLines[] = ' *     indexes={';
                foreach ($metadata->indexes as $index) {
                    $keys = array();
                    foreach ($index['keys'] as $key => $value) {
                        $keys[] = '"' . $key . '"="' . $value . '"';
                    }
                    $options = array();
                    foreach ($index['options'] as $key => $value) {
                        $options[] = '"' . $key . '"="' . $value . '"';
                    }
                    $indexes[] = '@ODM\\Index(keys={' . implode(', ', $keys) . '}, options={' . implode(', ', $options) . '})';
                }
                $indexLines[] = "\n *         " . implode(",\n *         ", $indexes);
                $indexLines[] = "\n *     }";
                $document[] = implode(null, $indexLines);
            }
            if ($document) {
                $lines[count($lines) - 1] .= '(';
                $lines[] = implode(",\n", $document);
                $lines[] = ' * )';
            }
            if (!empty($metadata->lifecycleCallbacks)) {
                $lines[] = ' * @ODM\\HasLifecycleCallbacks';
            }
            $methods = array('generateInheritanceAnnotation', 'generateDiscriminatorFieldAnnotation', 'generateDiscriminatorMapAnnotation', 'generateDefaultDiscriminatorValueAnnotation', 'generateChangeTrackingPolicyAnnotation');
            foreach ($methods as $method) {
                if ($code = $this->{$method}($metadata)) {
                    $lines[] = ' * ' . $code;
                }
            }
        }
        $lines[] = ' */';
        return implode("\n", $lines);
    }