/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.test.integration.wildfly.cdi.i18n; import java.util.HashMap; import java.util.Map; import java.util.Objects; import javax.inject.Singleton; /** * @author Yoann Rodiere */ @Singleton public class LocalizationService { private final Map<Pair<InternationalizedValue, Language>, String> localizationMap = new HashMap<>(); public LocalizationService() { register( InternationalizedValue.HELLO, Language.ENGLISH, "hello" ); register( InternationalizedValue.GOODBYE, Language.ENGLISH, "goodbye" ); register( InternationalizedValue.HELLO, Language.GERMAN, "hallo" ); register( InternationalizedValue.GOODBYE, Language.GERMAN, "auf wiedersehen" ); register( InternationalizedValue.HELLO, Language.FRENCH, "bonjour" ); register( InternationalizedValue.GOODBYE, Language.FRENCH, "au revoir" ); } private void register(InternationalizedValue value, Language language, String translation) { localizationMap.put( new Pair<>( value, language ), translation ); } public String localize(InternationalizedValue value, Language language) { return localizationMap.get( new Pair<>( value, language ) ); } private static class Pair<L, R> { private final L left; private final R right; public Pair(L left, R right) { super(); this.left = left; this.right = right; } @Override public boolean equals(Object obj) { if ( obj != null && obj.getClass() == getClass() ) { Pair<?, ?> other = (Pair<?, ?>) obj; return Objects.equals( left, other.left ) && Objects.equals( right, other.right ); } return false; } @Override public int hashCode() { return Objects.hash( left, right ); } } }