/*
* 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.test.type;
import java.util.UUID;
import org.hibernate.ogm.datastore.map.impl.MapDatastoreProvider;
import org.hibernate.ogm.datastore.map.impl.MapDialect;
import org.hibernate.ogm.type.spi.GridType;
import org.hibernate.type.StandardBasicTypes;
import org.hibernate.type.Type;
/**
* @author Emmanuel Bernard <emmanuel@hibernate.org>
*/
public class OverridingTypeDialect extends MapDialect {
public OverridingTypeDialect(MapDatastoreProvider provider) {
super( provider );
}
@Override
public GridType overrideType(Type type) {
//all UUID properties are mapped with exploding type
if ( UUID.class.equals( type.getReturnedClass() ) ) {
return ExplodingType.INSTANCE;
}
//timestamp and time mapping are ignored, only raw dates are handled
if ( type == StandardBasicTypes.DATE ) {
return CustomDateType.INSTANCE;
}
return null;
}
}