protected function createResultMap($node)
{
$resultMap = new TResultMap();
$this->setObjectPropFromNode($resultMap, $node);
//result nodes
foreach ($node->result as $result) {
$property = new TResultProperty($resultMap);
$this->setObjectPropFromNode($property, $result);
$resultMap->addResultProperty($property);
}
//create the discriminator
$discriminator = null;
if (isset($node->discriminator)) {
$discriminator = new TDiscriminator();
$this->setObjectPropFromNode($discriminator, $node->discriminator);
$discriminator->initMapping($resultMap);
}
foreach ($node->xpath('subMap') as $subMapNode) {
if ($discriminator === null) {
throw new TSqlMapConfigurationException('sqlmap_undefined_discriminator', $node, $this->_configFile, $subMapNode);
}
$subMap = new TSubMap();
$this->setObjectPropFromNode($subMap, $subMapNode);
$discriminator->addSubMap($subMap);
}
if ($discriminator !== null) {
$resultMap->setDiscriminator($discriminator);
}
return $resultMap;
}