/* * Hibernate OGM, Domain model persistence for NoSQL datastores * * 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.ogm.query.spi; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import org.hibernate.engine.spi.TypedValue; /** * Common base functionality for {@link QueryParserService} implementations. * * @author Gunnar Morling */ public abstract class BaseQueryParserService implements QueryParserService { /** * Unwraps the given named parameters if they are wrapped into {@link TypedValue}s. * * @param namedParameters the original named parameters * @return the unwrapped named parameters */ protected Map<String, Object> unwrap(Map<String, Object> namedParameters) { Map<String, Object> unwrapped = new HashMap<String, Object>( namedParameters.size() ); for ( Entry<String, Object> entry : namedParameters.entrySet() ) { Object value = entry.getValue(); unwrapped.put( entry.getKey(), value instanceof TypedValue ? ( (TypedValue) value ).getValue() : value ); } return unwrapped; } }