/* * 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.dialect.query.spi; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.engine.spi.TypedValue; import org.hibernate.ogm.type.spi.GridType; import org.hibernate.ogm.type.spi.TypeTranslator; /** * Represents a value and its grid type.the selection criteria of a query. Modelled after {@code TypedValue} in * Hibernate ORM. * * @author Gunnar Morling */ public class TypedGridValue { private final GridType type; private final Object value; public TypedGridValue(GridType type, Object value) { this.type = type; this.value = value; } public static TypedGridValue fromOrmTypedValue(TypedValue typedValue, TypeTranslator typeTranslator, SessionFactoryImplementor factory) { GridType gridType = typeTranslator.getType( typedValue.getType() ); Object backendValue = gridType.convertToBackendType( typedValue.getValue(), factory ); return new TypedGridValue( gridType, backendValue ); } public GridType getType() { return type; } public Object getValue() { return value; } }