/**
  * doLoad
  *
  * @param integer $id
  * @param StdClass $rs
  * @param KVDdo_AdrHuisnummer $huisnummer
  * @return KVDdo_AdrTerreinobject
  */
 public function doLoad($id, $rs, $huisnummer = null)
 {
     $domainObject = $this->_sessie->getIdentityMap()->getDomainObject(self::RETURNTYPE, $id);
     if ($domainObject !== null) {
         return $domainObject;
     }
     if (is_null($huisnummer)) {
         try {
             $huisnummer = $this->_sessie->getMapper("KVDdo_AdrHuisnummer")->findById($rs->huisnummer_id);
         } catch (KVDdom_DomainObjectNotFoundException $e) {
             $huisnummer = KVDdo_AdrHuisnummer::newNull();
         }
     }
     try {
         $center = new KVDgis_GeomPoint(self::EPSG_CODE, $rs->center_x, $rs->center_y);
     } catch (InvalidArgumentException $e) {
         $center = new KVDgis_GeomPoint();
     }
     return new KVDdo_AdrTerreinobject($id, $this->_sessie, $rs->aard, $huisnummer, $center);
 }
 /**
  * Zoek een terreinobject op basis van zijn id ( identificatorTerreinobject in Crab ).
  * @param string $id IdentificatorTerreinobject uit Crab.
  * @return KVDdo_AdrTerreinobjet
  * @todo herbekijken hoe het zit met het huisnummer
  * @throws <b>KVDdom_DomainObjectNotFoundException</b> Indien het object niet geladen kon worden.
  */
 public function findById($id)
 {
     $domainObject = $this->_sessie->getIdentityMap()->getDomainObject(self::RETURNTYPE, $id);
     if ($domainObject !== null) {
         return $domainObject;
     }
     try {
         $terreinArray = $this->_gateway->getTerreinobjectByIdentificatorTerreinobject($id);
     } catch (RuntimeException $e) {
         $message = "Kon het terreinobject niet laden omdat de crab service een fout gaf:\n " . $e->getMessage();
         throw new KVDdom_DomainObjectNotFoundException($message, 'KVDdo_AdrTerreinobject', $id);
     }
     $huisnummer = KVDdo_AdrHuisnummer::newNull();
     return $this->doLoad($id, $terreinArray, $huisnummer);
 }