package org.mongodb.morphia.converters;


import org.mongodb.morphia.mapping.MappedField;
import org.mongodb.morphia.mapping.MappingException;


Author:Uwe Schaefer, (us@thomas-daily.de), scotthernandez
/** * @author Uwe Schaefer, (us@thomas-daily.de) * @author scotthernandez */
public class CharacterConverter extends TypeConverter implements SimpleValueConverter {
Creates the Converter.
/** * Creates the Converter. */
public CharacterConverter() { super(char.class, Character.class); } @Override public Object decode(final Class targetClass, final Object fromDBObject, final MappedField optionalExtraInfo) { if (fromDBObject == null) { return null; } if (fromDBObject instanceof String) { final char[] chars = ((String) fromDBObject).toCharArray(); if (chars.length == 1) { return chars[0]; } else if (chars.length == 0) { return (char) 0; } } throw new MappingException("Trying to map multi-character data to a single character: " + fromDBObject); } @Override public Object encode(final Object value, final MappedField optionalExtraInfo) { return value == null || value.equals('\0') ? null : String.valueOf(value); } }