/*
* 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.datastore.neo4j.dialect.impl;
import java.util.HashMap;
import java.util.Map;
import org.hibernate.ogm.type.impl.StringCalendarDateType;
import org.hibernate.ogm.type.impl.StringDateTypeDescriptor;
import org.hibernate.ogm.type.spi.GridType;
import org.hibernate.type.StandardBasicTypes;
import org.hibernate.type.Type;
/**
* Container for methods used to obtain the {@link GridType} representation of a {@link Type}.
*
* @author Davide D'Alto <davide@hibernate.org>
*/
public abstract class BaseNeo4jTypeConverter {
private static final Map<Type, GridType> conversionMap = createGridTypeConversionMap();
protected static Map<Type, GridType> createGridTypeConversionMap() {
Map<Type, GridType> conversion = new HashMap<Type, GridType>();
conversion.put( StandardBasicTypes.CALENDAR, StringCalendarDateType.INSTANCE );
conversion.put( StandardBasicTypes.CALENDAR_DATE, StringCalendarDateType.INSTANCE );
conversion.put( StandardBasicTypes.DATE, StringDateTypeDescriptor.INSTANCE );
conversion.put( StandardBasicTypes.TIME, StringDateTypeDescriptor.INSTANCE );
conversion.put( StandardBasicTypes.TIMESTAMP, StringDateTypeDescriptor.INSTANCE );
return conversion;
}
/**
* Returns the {@link GridType} representing the {@link Type}.
*
* @param type the Type that needs conversion
* @return the corresponding GridType
*/
public GridType convert(Type type) {
return conversionMap.get( type );
}
}