validCodes = $validCodes; } /** * @param string $text * * @return bool */ public function MatchPreCondition($text) { if (!$this->IsCurrencyLikeValue($text)) { return false; } if (!$this->IsValidCurrency($text)) { return false; } return true; } /** * @param string $value * * @return bool */ private function IsCurrencyLikeValue($value) { return (bool)preg_match('/^[A-Z]{3}$/', $value); } /** * @param string $value * * @return bool */ private function IsValidCurrency($value) { return in_array($value, $this->validCodes, true); } /** * @param array|BoundingBox[] $candidates * @param BoundingBoxCollection $boxes * * @return string|false */ public function Select(array $candidates, BoundingBoxCollection $boxes) { if (empty($candidates)) { return false; } // Einfach das erste Ergebnis zurückliefern; // In den PreConditions wurde schon sichergestellt dass es eine gültige Währung ist return $candidates[0]->GetData('text'); } }