Loading src/main/java/es/redmic/elasticsearchlib/geodata/repository/RGeoDataESRepository.java +18 −44 Original line number Diff line number Diff line Loading @@ -2,23 +2,19 @@ package es.redmic.elasticsearchlib.geodata.repository; import java.util.List; import org.elasticsearch.action.get.MultiGetResponse; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import com.fasterxml.jackson.databind.JavaType; import com.vividsolutions.jts.geom.Geometry; import es.redmic.elasticsearchlib.common.query.DataQueryUtils; import es.redmic.elasticsearchlib.common.repository.RBaseESRepository; import es.redmic.exception.data.ItemNotFoundException; import es.redmic.models.es.common.query.dto.MgetDTO; import es.redmic.models.es.common.query.dto.SimpleQueryDTO; import es.redmic.models.es.geojson.common.model.Feature; import es.redmic.models.es.geojson.common.model.GeoHitWrapper; import es.redmic.models.es.geojson.common.model.GeoHitsWrapper; import es.redmic.models.es.geojson.common.model.GeoSearchWrapper; import es.redmic.models.es.geojson.properties.model.GeoDataProperties; import es.redmic.models.es.geojson.base.Feature; import es.redmic.models.es.geojson.wrapper.GeoHitWrapper; import es.redmic.models.es.geojson.wrapper.GeoHitsWrapper; import es.redmic.models.es.geojson.wrapper.GeoSearchWrapper; public abstract class RGeoDataESRepository<TModel extends Feature<?, ?>, TQueryDTO extends SimpleQueryDTO> extends RBaseESRepository<TModel, TQueryDTO> { Loading @@ -27,55 +23,34 @@ public abstract class RGeoDataESRepository<TModel extends Feature<?, ?>, TQueryD super(index, type); } /* * Sobrescribe método base para añadir query de control de accesso a datos */ public GeoHitWrapper<?> findById(String id) { public GeoHitWrapper<?, ?> findById(String id) { BoolQueryBuilder query = DataQueryUtils.getItemsQuery(id); GeoSearchWrapper<?, ?> result = findBy(query); if (result.getHits() == null || result.getHits().getHits() == null || result.getHits().getHits().size() != 1) throw new ItemNotFoundException("id", id); return result.getHits().getHits().get(0); return getResponseToWrapper(getRequest(id), getSourceType(GeoHitWrapper.class)); } public GeoHitsWrapper<?, ?> mget(MgetDTO dto) { List<String> ids = dto.getIds(); GeoSearchWrapper<?, ?> result = findBy(DataQueryUtils.getItemsQuery(ids), dto.getFields()); @SuppressWarnings({ "unchecked", "rawtypes" }) public GeoHitsWrapper<?> mget(MgetDTO dto) { if (result.getHits() == null || result.getHits().getHits() == null) throw new ItemNotFoundException("ids", dto.getIds().toString()); if (result.getHits().getHits().size() != ids.size()) { for (GeoHitWrapper<?, ?> hit : result.getHits().getHits()) { ids.remove(hit.get_id()); } throw new ItemNotFoundException("ids", ids.toString()); } MultiGetResponse result = multigetRequest(dto); return result.getHits(); List<GeoHitWrapper<?>> hits = mgetResponseToWrapper(result, getSourceType(GeoHitWrapper.class)); GeoHitsWrapper data = new GeoHitsWrapper(hits); data.setTotal(hits.size()); return data; } protected GeoSearchWrapper<?, ?> findBy(QueryBuilder queryBuilder) { protected GeoSearchWrapper<?> findBy(QueryBuilder queryBuilder) { return findBy(queryBuilder, null); } protected GeoSearchWrapper<?, ?> findBy(QueryBuilder queryBuilder, List<String> returnFields) { protected GeoSearchWrapper<?> findBy(QueryBuilder queryBuilder, List<String> returnFields) { return searchResponseToWrapper(searchRequest(queryBuilder, returnFields), getSourceType(GeoSearchWrapper.class)); } public GeoSearchWrapper<?, ?> find(TQueryDTO queryDTO) { public GeoSearchWrapper<?> find(TQueryDTO queryDTO) { SearchResponse result = super.searchRequest(queryDTO); Loading @@ -102,7 +77,6 @@ public abstract class RGeoDataESRepository<TModel extends Feature<?, ?>, TQueryD @Override protected JavaType getSourceType(Class<?> wrapperClass) { return objectMapper.getTypeFactory().constructParametricType(wrapperClass, GeoDataProperties.class, Geometry.class); return objectMapper.getTypeFactory().constructParametricType(wrapperClass, typeOfTModel); } } Loading
src/main/java/es/redmic/elasticsearchlib/geodata/repository/RGeoDataESRepository.java +18 −44 Original line number Diff line number Diff line Loading @@ -2,23 +2,19 @@ package es.redmic.elasticsearchlib.geodata.repository; import java.util.List; import org.elasticsearch.action.get.MultiGetResponse; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import com.fasterxml.jackson.databind.JavaType; import com.vividsolutions.jts.geom.Geometry; import es.redmic.elasticsearchlib.common.query.DataQueryUtils; import es.redmic.elasticsearchlib.common.repository.RBaseESRepository; import es.redmic.exception.data.ItemNotFoundException; import es.redmic.models.es.common.query.dto.MgetDTO; import es.redmic.models.es.common.query.dto.SimpleQueryDTO; import es.redmic.models.es.geojson.common.model.Feature; import es.redmic.models.es.geojson.common.model.GeoHitWrapper; import es.redmic.models.es.geojson.common.model.GeoHitsWrapper; import es.redmic.models.es.geojson.common.model.GeoSearchWrapper; import es.redmic.models.es.geojson.properties.model.GeoDataProperties; import es.redmic.models.es.geojson.base.Feature; import es.redmic.models.es.geojson.wrapper.GeoHitWrapper; import es.redmic.models.es.geojson.wrapper.GeoHitsWrapper; import es.redmic.models.es.geojson.wrapper.GeoSearchWrapper; public abstract class RGeoDataESRepository<TModel extends Feature<?, ?>, TQueryDTO extends SimpleQueryDTO> extends RBaseESRepository<TModel, TQueryDTO> { Loading @@ -27,55 +23,34 @@ public abstract class RGeoDataESRepository<TModel extends Feature<?, ?>, TQueryD super(index, type); } /* * Sobrescribe método base para añadir query de control de accesso a datos */ public GeoHitWrapper<?> findById(String id) { public GeoHitWrapper<?, ?> findById(String id) { BoolQueryBuilder query = DataQueryUtils.getItemsQuery(id); GeoSearchWrapper<?, ?> result = findBy(query); if (result.getHits() == null || result.getHits().getHits() == null || result.getHits().getHits().size() != 1) throw new ItemNotFoundException("id", id); return result.getHits().getHits().get(0); return getResponseToWrapper(getRequest(id), getSourceType(GeoHitWrapper.class)); } public GeoHitsWrapper<?, ?> mget(MgetDTO dto) { List<String> ids = dto.getIds(); GeoSearchWrapper<?, ?> result = findBy(DataQueryUtils.getItemsQuery(ids), dto.getFields()); @SuppressWarnings({ "unchecked", "rawtypes" }) public GeoHitsWrapper<?> mget(MgetDTO dto) { if (result.getHits() == null || result.getHits().getHits() == null) throw new ItemNotFoundException("ids", dto.getIds().toString()); if (result.getHits().getHits().size() != ids.size()) { for (GeoHitWrapper<?, ?> hit : result.getHits().getHits()) { ids.remove(hit.get_id()); } throw new ItemNotFoundException("ids", ids.toString()); } MultiGetResponse result = multigetRequest(dto); return result.getHits(); List<GeoHitWrapper<?>> hits = mgetResponseToWrapper(result, getSourceType(GeoHitWrapper.class)); GeoHitsWrapper data = new GeoHitsWrapper(hits); data.setTotal(hits.size()); return data; } protected GeoSearchWrapper<?, ?> findBy(QueryBuilder queryBuilder) { protected GeoSearchWrapper<?> findBy(QueryBuilder queryBuilder) { return findBy(queryBuilder, null); } protected GeoSearchWrapper<?, ?> findBy(QueryBuilder queryBuilder, List<String> returnFields) { protected GeoSearchWrapper<?> findBy(QueryBuilder queryBuilder, List<String> returnFields) { return searchResponseToWrapper(searchRequest(queryBuilder, returnFields), getSourceType(GeoSearchWrapper.class)); } public GeoSearchWrapper<?, ?> find(TQueryDTO queryDTO) { public GeoSearchWrapper<?> find(TQueryDTO queryDTO) { SearchResponse result = super.searchRequest(queryDTO); Loading @@ -102,7 +77,6 @@ public abstract class RGeoDataESRepository<TModel extends Feature<?, ?>, TQueryD @Override protected JavaType getSourceType(Class<?> wrapperClass) { return objectMapper.getTypeFactory().constructParametricType(wrapperClass, GeoDataProperties.class, Geometry.class); return objectMapper.getTypeFactory().constructParametricType(wrapperClass, typeOfTModel); } }