@Override public Object decode(Class targetClass, Object fromDBObject, MappedField optionalExtraInfo) { if (fromDBObject == null) return null; BasicDBList rawList = (BasicDBList) fromDBObject; AxisList axisList = new AxisList(); for (Object obj : rawList) { DBObject dbObj = (DBObject) obj; axisList.add((Axis) getMapper().fromDBObject(optionalExtraInfo.getSubClass(), dbObj, getMapper().createEntityCache())); } return axisList; }