languages = array_values(array_unique(array_map('strtolower', $languages))); $this->countries = array_values(array_unique(array_map('strtoupper', $countries))); $this->cachingPolicy = trim($cachingPolicy); $this->persistencePolicy = trim($persistencePolicy); $this->rateLimits = $rateLimits; $this->authentication = trim($authentication); } public function getLanguages(): array { return $this->languages; } public function getCountries(): array { return $this->countries; } public function getCachingPolicy(): string { return $this->cachingPolicy; } public function getPersistencePolicy(): string { return $this->persistencePolicy; } public function getRateLimits(): array { return $this->rateLimits; } public function getAuthentication(): string { return $this->authentication; } public function supportsLanguage(string $language): bool { $language = strtolower(trim($language)); return in_array('*', $this->languages, true) || in_array($language, $this->languages, true); } public function supportsCountry(string $country): bool { $country = strtoupper(trim($country)); return in_array('*', $this->countries, true) || in_array($country, $this->countries, true); } }