protected function set__minStarRating($value)
 {
     $value = (double) $value;
     $this->minStarRating = MathUtils::bound(MathUtils::roundHalf($value), self::STAR_RATING_MIN, self::STAR_RATING_MAX);
     if (isset($this->maxStarRating) && $this->minStarRating > $this->maxStarRating) {
         $this->minStarRating = $this->maxStarRating;
     }
 }
 /**
  * Will match SEARCH_RADIUS_* constants. 
  * Will also convert human-like units (e.g. m, mile, or miles) to values that correspond with SEARCH_RADIUS_* automatically. 
  * If the unit was changed from its previous setting, automatically converts `searchRadius` from the old unit to the new unit. 
  * @param string $value
  */
 protected function set__searchRadiusUnit($value = null)
 {
     $originalValue = $this->searchRadiusUnit;
     $value = strtoupper(trim((string) $value));
     if (!$value) {
         $this->searchRadiusUnit = self::SEARCH_RADIUS_MILES;
     } else {
         if (in_array($value, array(self::SEARCH_RADIUS_KILOMETERS, self::SEARCH_RADIUS_MILES))) {
             $this->searchRadiusUnit = $value;
         } else {
             if (preg_match('/^m(ile(s)*)?$/i', $value)) {
                 $this->searchRadiusUnit = self::SEARCH_RADIUS_MILES;
             } else {
                 if (preg_match('/^k(ilomet(er|re)(s)*)?$/i', $value)) {
                     $this->searchRadiusUnit = self::SEARCH_RADIUS_KILOMETERS;
                 }
             }
         }
     }
     if (isset($this->searchRadius) && $originalValue != $this->searchRadiusUnit) {
         if ($this->searchRadiusUnit === self::SEARCH_RADIUS_MILES) {
             $this->set__searchRadius(MathUtils::kilometersToMiles($this->searchRadius));
         } else {
             $this->set__searchRadius(MathUtils::milesToKilometers($this->searchRadius));
         }
     }
 }