From 1c6f1f79d011579a158e87459040075331b636b7 Mon Sep 17 00:00:00 2001 From: wei <> Date: Mon, 12 Jun 2006 03:10:47 +0000 Subject: Minor updates. --- .../SQLMap/Configuration/TConfigDeserialize.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'framework/DataAccess/SQLMap/Configuration/TConfigDeserialize.php') diff --git a/framework/DataAccess/SQLMap/Configuration/TConfigDeserialize.php b/framework/DataAccess/SQLMap/Configuration/TConfigDeserialize.php index 9a44d1ec..ee8f1744 100644 --- a/framework/DataAccess/SQLMap/Configuration/TConfigDeserialize.php +++ b/framework/DataAccess/SQLMap/Configuration/TConfigDeserialize.php @@ -111,6 +111,7 @@ class TConfigDeserialize $property->initialize($sqlMap, $resultMap); $resultMap->addResultProperty($property); } + $discriminator = null; if(isset($node->discriminator)) { @@ -118,18 +119,24 @@ class TConfigDeserialize $this->loadConfiguration($discriminator, $node->discriminator, $file); $discriminator->initMapping($sqlMap, $resultMap); } + + + foreach($node->subMap as $subMapNode) { - if(is_null($discriminator)) - throw new TSqlMapConfigurationException( - 'sqlmap_undefined_discriminator', $resultMap->getID(), $file); - $subMap = new TSubMap; - $this->loadConfiguration($subMap, $subMapNode, $file); - $discriminator->add($subMap); + if(isset($subMapNode['value'])) + { + if(is_null($discriminator)) + throw new TSqlMapConfigurationException( + 'sqlmap_undefined_discriminator', $resultMap->getID(), $file); + + $subMap = new TSubMap; + $this->loadConfiguration($subMap, $subMapNode, $file); + $discriminator->add($subMap); + } } if(!is_null($discriminator)) $resultMap->setDiscriminator($discriminator); - return $resultMap; } -- cgit v1.2.3