code: public static <T, K> JacksonDBCollection<T, K> wrap(DBCollection dbCollection, Class<T> type, Class<K> keyType, ObjectMapper objectMapper) {
          return new JacksonDBCollection<T, K>(dbCollection, objectMapper.constructType(type),
                  objectMapper.constructType(keyType), objectMapper, null);
      }
docs: Wraps a DB collection in a JacksonDBCollection, using the given object mapper.
  
  JacksonDBCollection requires a specially configured object mapper to work.  It does not automatically configure
  the object mapper passed into this method, because the same object mapper might be passed into multiple calls to
  this method.  Consequently, it is up to the caller to ensure that the object mapper has been configured for use
  by JacksonDBCollection.  This can be done by passing the object mapper to
  {@link MongoJacksonMapperModule#configure(org.codehaus.jackson.map.ObjectMapper)}.
  
  @param dbCollection The DB collection to wrap
  @param type         The type of objects to deserialise to
  @param objectMapper The ObjectMapper to configure.
  @return The wrapped collection