org.mongodb.morphia.geo.GeometryQueryConverter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of morphia Show documentation
Show all versions of morphia Show documentation
Java Object Document Mapper for MongoDB
The newest version!
package org.mongodb.morphia.geo;
import com.mongodb.BasicDBObject;
import org.mongodb.morphia.converters.SimpleValueConverter;
import org.mongodb.morphia.converters.TypeConverter;
import org.mongodb.morphia.mapping.MappedField;
import org.mongodb.morphia.mapping.Mapper;
/**
* Converts Point objects into DBObjects for querying only. When saving entities with Points in, this converter should not be used.
*/
public class GeometryQueryConverter extends TypeConverter implements SimpleValueConverter {
/**
* Create a new converter. Registers itself to convert Point classes.
*
* @param mapper the Mapper is required as this converter delegates other type encoding back to the mapper
*/
public GeometryQueryConverter(final Mapper mapper) {
super.setMapper(mapper);
}
@Override
public Object decode(final Class targetClass, final Object fromDBObject, final MappedField optionalExtraInfo) {
throw new UnsupportedOperationException("Should never have to decode a query object");
}
@Override
public Object encode(final Object value, final MappedField optionalExtraInfo) {
Object encode = getMapper().getConverters().encode(((Geometry) value));
return new BasicDBObject("$geometry", encode);
}
}