/**
  * @return XMLALevel Level (must not be null)
  */
 public function getLevel(DOMElement $row)
 {
     if ($this->xmlaLevel != null) {
         return $this->xmlaLevel;
     }
     $levelUniqueName = XMLAUtil::stringElement($row, 'LEVEL_UNIQUE_NAME');
     $levelsByUname = $this->getCube($row)->levelsByUname;
     $level = isset($levelsByUname[$levelUniqueName]) ? $levelsByUname[$levelUniqueName] : null;
     if ($level == null) {
         // Apparently, the code has requested a member that has
         // not been queried yet. We must force the initialization
         // of the dimension tree first.
         $dimensionUniqueName = XMLAUtil::stringElement($row, 'DIMENSION_UNIQUE_NAME');
         $parsedUniqueName = XMLAUtil::parseUniqueName($dimensionUniqueName);
         $dimensionName = $parsedUniqueName[0];
         //print $dimensionName;
         $dimension = $this->getCube($row)->getDimensions()->get($dimensionName);
         foreach ($dimension->getHierarchies() as $hierarchy) {
             $hierarchy->getLevels()->size();
         }
         // Now we attempt to resolve again
         $level = $this->getCube($row)->levelsByUname[$levelUniqueName];
     }
     return $level;
 }