class MongoDbAccessMetadataImpl extends MongoDbAccess {

    @Override
    public String getInfo() {
        final StringBuilder builder = new StringBuilder();
        // get a list of the collections in this database and print them out
        final MongoIterable<String> collectionNames = getMongoDatabase().listCollectionNames();
        for (final String s : collectionNames) {
            builder.append(s);
            builder.append('\n');
        }
        for (final MetadataCollections coll : MetadataCollections.values()) {
            if (coll != null && coll.getCollection() != null) {
                @SuppressWarnings("unchecked")
                final ListIndexesIterable<Document> list =
                    coll.getCollection().listIndexes();
                for (final Document dbObject : list) {
                    builder.append(coll.getName()).append(' ').append(dbObject).append('\n');
                }
            }
        }
        return builder.toString();
    }

    public  MongoDbAccessMetadataImpl(MongoClient mongoClient, String dbname, boolean recreate,
        ElasticsearchAccessMetadata esClient, List<Integer> tenants);
    @VisibleForTesting public  MongoDbAccessMetadataImpl(MongoClient mongoClient, String dbname, boolean recreate,
        ElasticsearchAccessMetadata esClient);

}