code: public static MorphiaReference<?> decode(final Datastore datastore,
                                               final Mapper mapper,
                                               final MappedField mappedField,
                                               final Class paramType,
                                               final DBObject dbObject) {
          MorphiaReference reference = null;
          final List dbVal = (List) mappedField.getDbObjectValue(dbObject);
          if (dbVal != null) {
              final Class subType = mappedField.getTypeParameters().get(0).getSubClass();
              final MappedClass mappedClass = mapper.getMappedClass(subType);
  
              if (Set.class.isAssignableFrom(paramType)) {
                  reference = new SetReference(datastore, mappedClass, dbVal);
              } else {
                  reference = new ListReference(datastore, mappedClass, dbVal);
              }
          }
  
          return reference;
      }
docs: Decodes a document in to entities
  @param datastore the datastore
  @param mapper the mapper
  @param mappedField the MappedField
  @param paramType the type of the underlying entity
  @param dbObject the DBObject to decode
  @return the entities