protected function loadResultMap($node)
{
$resultMap = $this->createResultMap($node);
//find extended result map.
if (strlen($extendMap = $resultMap->getExtends()) > 0) {
if (!$this->_manager->getResultMaps()->contains($extendMap)) {
$extendNode = $this->getElementByIdValue($this->_document, 'resultMap', $extendMap);
if ($extendNode !== null) {
$this->loadResultMap($extendNode);
}
}
if (!$this->_manager->getResultMaps()->contains($extendMap)) {
throw new TSqlMapConfigurationException('sqlmap_unable_to_find_parent_result_map', $node, $this->_configFile, $extendMap);
}
$superMap = $this->_manager->getResultMap($extendMap);
$resultMap->getColumns()->mergeWith($superMap->getColumns());
}
//add the result map
if (!$this->_manager->getResultMaps()->contains($resultMap->getID())) {
$this->_manager->addResultMap($resultMap);
}
}