/* * 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.Collections; 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 ThrowingMandatoryStrippedParametersTransformer implements ParametersTransformer { private static final Log log = LoggerFactory.make( Log.class ); private final Class<?> factoryClass; private final String parameterName; private final String expectedValue; ThrowingMandatoryStrippedParametersTransformer(Class<?> factoryClass, String parameterName, String expectedValue) { this.factoryClass = factoryClass; this.parameterName = parameterName; this.expectedValue = expectedValue; } @Override public Map<String, JsonElement> transform(Map<String, String> luceneParameters) { String actualValue = luceneParameters.remove( parameterName ); if ( !expectedValue.equals( actualValue ) ) { throw log.invalidAnalysisFactoryParameter( factoryClass, parameterName, expectedValue, actualValue ); } return Collections.emptyMap(); } @Override public String toString() { return new StringBuilder( getClass().getSimpleName() ) .append( "[" ) .append( factoryClass ) .append( "," ) .append( parameterName ) .append( "," ) .append( expectedValue ) .append( "]" ) .toString(); } }