2018-07-11 15:47:36 +02:00
|
|
|
package eu.eudat.elastic.repository;
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import eu.eudat.elastic.criteria.Criteria;
|
|
|
|
import eu.eudat.elastic.entities.ElasticEntity;
|
|
|
|
import org.elasticsearch.client.Client;
|
|
|
|
import org.elasticsearch.client.RestClient;
|
|
|
|
import org.elasticsearch.client.RestHighLevelClient;
|
2020-01-16 16:46:24 +01:00
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
2018-07-11 15:47:36 +02:00
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Created by ikalyvas on 7/5/2018.
|
|
|
|
*/
|
|
|
|
public abstract class ElasticRepository<T extends ElasticEntity,C extends Criteria> implements Repository<T,C> {
|
2020-01-16 16:46:24 +01:00
|
|
|
private static final Logger logger = LoggerFactory.getLogger(ElasticRepository.class);
|
2018-07-11 15:47:36 +02:00
|
|
|
private RestHighLevelClient client;
|
|
|
|
|
|
|
|
public RestHighLevelClient getClient() {
|
|
|
|
return client;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ElasticRepository(RestHighLevelClient client) {
|
|
|
|
this.client = client;
|
|
|
|
}
|
|
|
|
|
|
|
|
public <T> T transformFromString(String value, Class<T> tClass) {
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
T item = null;
|
|
|
|
try {
|
|
|
|
item = mapper.readValue(value, tClass);
|
|
|
|
} catch (IOException e) {
|
2020-01-16 16:46:24 +01:00
|
|
|
logger.error(e.getMessage(), e);
|
2018-07-11 15:47:36 +02:00
|
|
|
}
|
|
|
|
return item;
|
|
|
|
}
|
|
|
|
}
|