/* * 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.elasticsearch.settings.impl.translation; import java.util.Map; import org.hibernate.search.elasticsearch.logging.impl.Log; import org.hibernate.search.util.logging.impl.LoggerFactory; import com.google.gson.JsonElement; class MapParameterValueTransformer implements ParameterValueTransformer { private static final Log log = LoggerFactory.make( Log.class ); private final Class<?> factoryClass; private final String parameterName; private final Map<String, JsonElement> translations; public MapParameterValueTransformer(Class<?> factoryClass, String parameterName, Map<String, JsonElement> translations) { this.factoryClass = factoryClass; this.parameterName = parameterName; this.translations = translations; } @Override public JsonElement transform(String parameterValue) { JsonElement translatedValue = translations.get( parameterValue ); if ( translatedValue == null ) { throw log.unsupportedAnalysisDefinitionParameterValue( factoryClass, parameterName, parameterValue ); } return translatedValue; } @Override public String toString() { return new StringBuilder( getClass().getSimpleName() ) .append( "[" ) .append( factoryClass ) .append( "," ) .append( parameterName ) .append( "," ) .append( translations ) .append( "]" ) .toString(); } }