/**
  * INTERNAL:
  * Adds a named native query to this class.
  *
  * @throws MappingException
  * @param array $queryMapping
  */
 public function addNamedNativeQuery(array $queryMapping)
 {
     if (!isset($queryMapping['name'])) {
         throw MappingException::nameIsMandatoryForQueryMapping($this->name);
     }
     if (isset($this->namedNativeQueries[$queryMapping['name']])) {
         throw MappingException::duplicateQueryMapping($this->name, $queryMapping['name']);
     }
     if (!isset($queryMapping['query'])) {
         throw MappingException::emptyQueryMapping($this->name, $queryMapping['name']);
     }
     if (!isset($queryMapping['resultClass']) && !isset($queryMapping['resultSetMapping'])) {
         throw MappingException::missingQueryMapping($this->name, $queryMapping['name']);
     }
     $queryMapping['isSelfClass'] = false;
     if (isset($queryMapping['resultClass'])) {
         if ($queryMapping['resultClass'] === '__CLASS__') {
             $queryMapping['isSelfClass'] = true;
             $queryMapping['resultClass'] = $this->name;
         } else {
             if (strlen($this->namespace) > 0 && strpos($queryMapping['resultClass'], '\\') === false) {
                 $queryMapping['resultClass'] = $this->namespace . '\\' . $queryMapping['resultClass'];
             }
         }
         $queryMapping['resultClass'] = ltrim($queryMapping['resultClass'], '\\');
     }
     $this->namedNativeQueries[$queryMapping['name']] = $queryMapping;
 }
 /**
  * INTERNAL:
  * Adds a named native query to this class.
  *
  * @param array $queryMapping
  *
  * @return void
  *
  * @throws MappingException
  */
 public function addNamedNativeQuery(array $queryMapping)
 {
     if (!isset($queryMapping['name'])) {
         throw MappingException::nameIsMandatoryForQueryMapping($this->name);
     }
     if (isset($this->namedNativeQueries[$queryMapping['name']])) {
         throw MappingException::duplicateQueryMapping($this->name, $queryMapping['name']);
     }
     if (!isset($queryMapping['query'])) {
         throw MappingException::emptyQueryMapping($this->name, $queryMapping['name']);
     }
     if (!isset($queryMapping['resultClass']) && !isset($queryMapping['resultSetMapping'])) {
         throw MappingException::missingQueryMapping($this->name, $queryMapping['name']);
     }
     $queryMapping['isSelfClass'] = false;
     if (isset($queryMapping['resultClass'])) {
         if ($queryMapping['resultClass'] === '__CLASS__') {
             $queryMapping['isSelfClass'] = true;
             $queryMapping['resultClass'] = $this->name;
         }
         $queryMapping['resultClass'] = $this->fullyQualifiedClassName($queryMapping['resultClass']);
         $queryMapping['resultClass'] = ltrim($queryMapping['resultClass'], '\\');
     }
     $this->namedNativeQueries[$queryMapping['name']] = $queryMapping;
 }