From de29fa97f0183d759941121e64c7efc0a06441ab Mon Sep 17 00:00:00 2001 From: guilhermeblanco Date: Mon, 1 Mar 2010 04:27:17 +0000 Subject: [PATCH] [2.0][DDC-265] Partial support to inheritanceType in AnnotationExporter. Still needs to add the discriminator column. --- .../Export/Driver/AnnotationExporter.php | 23 +++++++++++++++++++ .../Tools/Export/Driver/annotation.tpl.php | 1 + 2 files changed, 24 insertions(+) diff --git a/lib/Doctrine/ORM/Tools/Export/Driver/AnnotationExporter.php b/lib/Doctrine/ORM/Tools/Export/Driver/AnnotationExporter.php index 76a94e51b..74bc8a3c9 100644 --- a/lib/Doctrine/ORM/Tools/Export/Driver/AnnotationExporter.php +++ b/lib/Doctrine/ORM/Tools/Export/Driver/AnnotationExporter.php @@ -297,6 +297,29 @@ class AnnotationExporter extends AbstractExporter return '@Table(' . implode(', ', $table) . ')'; } + private function _getInheritanceAnnotation($metadata) + { + if ($metadata->inheritanceType != ClassMetadataInfo::INHERITANCE_TYPE_NONE) { + switch ($metadata->inheritanceType) { + case ClassMetadataInfo::INHERITANCE_TYPE_JOINED: + $type = "JOINED"; + break; + + case ClassMetadataInfo::INHERITANCE_TYPE_SINGLE_TABLE: + $type = "SINGLE_TABLE"; + break; + + case ClassMetadataInfo::INHERITANCE_TYPE_TABLE_PER_CLASS: + $type = "TABLE_PER_CLASS"; + break; + } + + return '@InheritanceType("'.$type.'")'; + } + + return ''; + } + private function _getJoinColumnAnnotation(array $joinColumn) { $joinColumnAnnot = array(); diff --git a/lib/Doctrine/ORM/Tools/Export/Driver/annotation.tpl.php b/lib/Doctrine/ORM/Tools/Export/Driver/annotation.tpl.php index 2742eb757..5209b0544 100644 --- a/lib/Doctrine/ORM/Tools/Export/Driver/annotation.tpl.php +++ b/lib/Doctrine/ORM/Tools/Export/Driver/annotation.tpl.php @@ -16,6 +16,7 @@ use _getClassToExtendNamespace() ?>; * @Entity * _getTableAnnotation($metadata)."\n" ?> + * _getInheritanceAnnotation($metadata)."\n" ?> */ class _getClassName($metadata) ?>_extendsClass()): ?> extends _getClassToExtendName() ?>