function _preCompile($sData)
 {
     $aContinentCodes = MAX_limitationsGetAFromS($sData);
     $aCountries = array();
     foreach ($aContinentCodes as $continentCode) {
         $aContinentCountries = $this->res[$continentCode];
         unset($aContinentCountries[0]);
         // Remove the name of the continent
         $aCountries = array_merge($aCountries, $aContinentCountries);
     }
     return parent::_preCompile(MAX_limitationsGetSFromA($aCountries));
 }
 /**
  * A private method to pre-compile limitaions.
  *
  * @access private
  * @param mixed $data An optional, expanded form delivery limitation.
  * @return string The delivery limitation in pre-compiled form, with any changes to the format
  *                of the data stored in the database having been made, ready to be used for
  *                either compiling the limitation into final form, or converting the limitation
  *                into SQL form.
  */
 function _preCompile($sData)
 {
     $aData = MAX_limitationsGeoCityUnserialize($sData);
     $sCountry = MAX_limitationsGetCountry($aData);
     MAX_limitationsSetCountry($aData, MAX_limitationsGetPreprocessedString($sCountry));
     $sCities = MAX_limitationsGetSCities($aData);
     $aCities = MAX_limitationsGetAFromS($sCities);
     $aCities = MAX_limitationsGetPreprocessedArray($aCities);
     MAX_limitationsSetSCities($aData, MAX_limitationsGetSFromA($aCities));
     return MAX_limitationsGeoCitySerialize($aData);
 }
 function testMax_limitationsGetSFromA()
 {
     $this->assertEqual('ab,cd,ef', MAX_limitationsGetSFromA(array('ab', 'cd', 'ef')));
     $this->assertEqual('', MAX_limitationsGetSFromA(array()));
     $this->assertEqual('', MAX_limitationsGetSFromA(null));
 }