class TableMapStore implements MapStore<String, Table> {

    @Override
    public void store(String key, Table value) {
        if (key == null || value == null || value.getName() == null) {
            throw new RuntimeException(String.format("Illegal Store Request - %s - %s", key, value));
        }
        logger.info("Storing key: " + key);
        try {
            elasticsearchConnection.getClient().prepareIndex()
                    .setIndex(TABLE_META_INDEX)
                    .setType(TABLE_META_TYPE)
                    .setConsistencyLevel(WriteConsistencyLevel.ALL)
                    .setSource(objectMapper.writeValueAsString(value))
                    .setId(key)
                    .setRefresh(true)
                    .execute()
                    .actionGet();
        } catch (JsonProcessingException e) {
            throw new RuntimeException("Error saving meta: ", e);
        }
    }

    public  TableMapStore(ElasticsearchConnection elasticsearchConnection);

}