X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/6a7e0d652b1d40a397e1c1386d500101796676c4..381c9395747a04672acba395e0bd14332d1a9db9:/lib-php/TokenCountry.php diff --git a/lib-php/TokenCountry.php b/lib-php/TokenCountry.php index 518c0a31..3f93f45e 100644 --- a/lib-php/TokenCountry.php +++ b/lib-php/TokenCountry.php @@ -1,4 +1,12 @@ sCountryCode = $sCountryCode; } + public function getId() + { + return $this->iId; + } + + /** + * Check if the token can be added to the given search. + * Derive new searches by adding this token to an existing search. + * + * @param object $oSearch Partial search description derived so far. + * @param object $oPosition Description of the token position within + the query. + * + * @return True if the token is compatible with the search configuration + * given the position. + */ + public function isExtendable($oSearch, $oPosition) + { + return !$oSearch->hasCountry() + && $oPosition->maybePhrase('country') + && $oSearch->getContext()->isCountryApplicable($this->sCountryCode); + } + + /** + * Derive new searches by adding this token to an existing search. + * + * @param object $oSearch Partial search description derived so far. + * @param object $oPosition Description of the token position within + the query. + * + * @return SearchDescription[] List of derived search descriptions. + */ + public function extendSearch($oSearch, $oPosition) + { + $oNewSearch = $oSearch->clone($oPosition->isLastToken() ? 1 : 6); + $oNewSearch->setCountry($this->sCountryCode); + + return array($oNewSearch); + } + public function debugInfo() { return array( @@ -26,4 +74,9 @@ class Country 'Info' => $this->sCountryCode ); } + + public function debugCode() + { + return 'C'; + } }