public void fromDBObject(final DBObject dbObj, final MappedField mf, final Object targetEntity) {
   Object object = mf.getDbObjectValue(dbObj);
   if (object == null) {
     processMissingField(mf);
   } else {
     TypeConverter enc = getEncoder(mf);
     Object decodedValue = enc.decode(mf.getType(), object, mf);
     try {
       mf.setFieldValue(targetEntity, decodedValue);
     } catch (IllegalArgumentException e) {
       throw new MappingException(
           "Error setting value from converter ("
               + enc.getClass().getSimpleName()
               + ") for "
               + mf.getFullName()
               + " to "
               + decodedValue);
     }
   }
 }