/**
  *
  * @param integer $gemeenteId
  * @param integer $sorteerVeld Zie de KVDgis_Crab2Gateway::STRAAT_SORT_ constanten.
  * @return array Een associatieve array met de volgende sleutels:
  * <ul>
  *  <li>straatnaam: Naam van de straat</li>
  *  <li>straatnaamId: Het Id van de straatnaam binnen crab.</li>
  *  <li>straatnaamLabel: Een label voor de straat ( straatnaam zonder eventuele suffixen ).</li>
  * </ul>
  * @throws InvalidArgumentException Indien er een ongeldig sorteerveld wordt opgegeven.
  * @throws RuntimeException Indien de straten niet geladen kunnen worden, meestal door een SOAP probleem.
  */
 public function listStraatnamenByGemeenteId($gemeenteId, $sorteerVeld = self::STRAAT_SORT_NAAM)
 {
     if ($sorteerVeld < 1 || $sorteerVeld > 6) {
         throw new InvalidArgumentException("De parameter sorteerVeld van de functie listStraatnamenByGemeenteId moet tussen 1 en 6 liggen!");
     }
     $functionParameters = func_get_args();
     $result = $this->_cache->cacheGet($this->getCacheName(__FUNCTION__), $functionParameters);
     if ($result != false) {
         return unserialize($result);
     }
     $params = new StdClass();
     $params->GemeenteId = (int) $gemeenteId;
     $params->SorteerVeld = (int) $sorteerVeld;
     $paramsWrapper = new SoapParam($params, "listStraatnamenByGemeenteId");
     try {
         $result = $this->_client->listStraatnamenByGemeenteId($paramsWrapper);
         $straatItems = $result->ListStraatnamenByGemeenteIdResult->StraatnaamItem;
     } catch (Exception $e) {
         throw new RuntimeException('Kon de lijst met straten niet laden wegens: ' . $e->getMessage());
     }
     $straatnamen = array();
     foreach ($straatItems as $straatnaam) {
         $straatnaamArray = array();
         $straatnaamArray['straatnaam'] = $straatnaam->Straatnaam;
         $straatnaamArray['straatnaamId'] = (int) $straatnaam->StraatnaamId;
         $straatnaamArray['straatnaamLabel'] = $straatnaam->StraatnaamLabel;
         $straatnamen[] = $straatnaamArray;
     }
     $this->_cache->cachePut($this->getCacheName(__FUNCTION__), $functionParameters, serialize($straatnamen));
     return $straatnamen;
 }