
io.quarkus.hibernate.validator.runtime.locale.AbstractLocaleResolver Maven / Gradle / Ivy
package io.quarkus.hibernate.validator.runtime.locale;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
import org.hibernate.validator.spi.messageinterpolation.LocaleResolver;
import org.hibernate.validator.spi.messageinterpolation.LocaleResolverContext;
abstract class AbstractLocaleResolver implements LocaleResolver {
protected abstract Map> getHeaders();
@Override
public Locale resolve(LocaleResolverContext context) {
Optional> localePriorities = getAcceptableLanguages();
if (!localePriorities.isPresent()) {
return null;
}
List resolvedLocales = Locale.filter(localePriorities.get(), context.getSupportedLocales());
if (resolvedLocales.size() > 0) {
return resolvedLocales.get(0);
}
return null;
}
private Optional> getAcceptableLanguages() {
Map> httpHeaders = getHeaders();
if (httpHeaders != null) {
List acceptLanguageList = httpHeaders.get("Accept-Language");
if (acceptLanguageList != null && !acceptLanguageList.isEmpty()) {
return Optional.of(Locale.LanguageRange.parse(acceptLanguageList.get(0)));
}
}
return Optional.empty();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy