Loading src/main/java/es/redmic/elasticsearchlib/series/repository/IBaseTimeSeriesESRepository.java→src/main/java/es/redmic/elasticsearchlib/series/repository/IBaseSeriesESRepository.java +10 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,10 @@ import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; public interface IBaseTimeSeriesESRepository { import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.model.BaseAbstractStringES; public interface IBaseSeriesESRepository<TModel extends BaseAbstractStringES> { static String[] INDEX = { "timeseries" }; static String TYPE = "_doc"; Loading @@ -40,4 +43,10 @@ public interface IBaseTimeSeriesESRepository { return AggregationBuilders.dateHistogram("dateHistogram").field(dateTimeField) .dateHistogramInterval(dateHistogramInterval).minDocCount(minDocCount); } EventApplicationResult save(TModel modelToIndex); EventApplicationResult update(TModel modelToIndex); EventApplicationResult delete(String id); } src/main/java/es/redmic/elasticsearchlib/series/repository/IRSeriesESRepository.java +1 −3 Original line number Diff line number Diff line Loading @@ -21,9 +21,7 @@ package es.redmic.elasticsearchlib.series.repository; */ import java.util.List; import org.elasticsearch.search.builder.SearchSourceBuilder; import es.redmic.models.es.common.model.BaseAbstractStringES; import es.redmic.models.es.common.query.dto.DataQueryDTO; import es.redmic.models.es.common.query.dto.MgetDTO; Loading @@ -31,7 +29,7 @@ import es.redmic.models.es.series.common.model.SeriesHitWrapper; import es.redmic.models.es.series.common.model.SeriesHitsWrapper; import es.redmic.models.es.series.common.model.SeriesSearchWrapper; public interface IRSeriesESRepository<TModel extends BaseAbstractStringES> extends IBaseTimeSeriesESRepository { public interface IRSeriesESRepository<TModel extends BaseAbstractStringES> extends IBaseSeriesESRepository<TModel> { public SeriesHitWrapper<TModel> findById(String id); public SeriesSearchWrapper<TModel> searchByIds(String[] ids); Loading src/main/java/es/redmic/elasticsearchlib/series/repository/RSeriesESRepository.java +1 −6 Original line number Diff line number Diff line Loading @@ -36,8 +36,6 @@ import org.elasticsearch.search.sort.SortOrder; * #L% */ import org.springframework.beans.factory.annotation.Value; import es.redmic.elasticsearchlib.common.query.SeriesQueryUtils; import es.redmic.elasticsearchlib.common.repository.RBaseESRepository; import es.redmic.exception.data.ItemNotFoundException; Loading @@ -51,13 +49,10 @@ import es.redmic.models.es.series.common.model.SeriesSearchWrapper; public abstract class RSeriesESRepository<TModel extends BaseAbstractStringES, TQueryDTO extends DataQueryDTO> extends RBaseESRepository<TModel, TQueryDTO> implements IRSeriesESRepository<TModel> { @Value("${timeseries.index.pattern}") protected String timeSeriesIndexPattern; private static final String DATADEFINITION_PROPERTY = "dataDefinition"; protected RSeriesESRepository() { super(IBaseTimeSeriesESRepository.INDEX, IBaseTimeSeriesESRepository.TYPE, true); super(IBaseSeriesESRepository.INDEX, IBaseSeriesESRepository.TYPE, true); } @Override Loading src/main/java/es/redmic/elasticsearchlib/series/repository/RWSeriesESRepository.java +62 −5 Original line number Diff line number Diff line Loading @@ -20,26 +20,83 @@ package es.redmic.elasticsearchlib.series.repository; * #L% */ import es.redmic.elasticsearchlib.common.repository.RBaseESRepository; import org.joda.time.format.DateTimeFormat; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import es.redmic.elasticsearchlib.common.utils.ElasticPersistenceUtils; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.model.BaseTimeDataAbstractES; import es.redmic.models.es.common.query.dto.DataQueryDTO; public abstract class RWSeriesESRepository<TModel extends BaseTimeDataAbstractES, TQueryDTO extends DataQueryDTO> extends RBaseESRepository<TModel, TQueryDTO> implements IBaseTimeSeriesESRepository { extends RSeriesESRepository<TModel, TQueryDTO> { @Value("${timeseries.index.pattern}") String timeSeriesIndexPattern; @Autowired ElasticPersistenceUtils elasticPersistenceUtils; protected RWSeriesESRepository() { super(IBaseTimeSeriesESRepository.INDEX, IBaseTimeSeriesESRepository.TYPE, true); super(); } @Override protected String getIndex(final TModel modelToIndex) { return super.getIndex()[0] + "-" + modelToIndex.getDate().toString(DateTimeFormat.forPattern(timeSeriesIndexPattern)); return timeSeriesIndexPattern + "-" + modelToIndex.getDate().toString(DateTimeFormat.forPattern(timeSeriesIndexPattern)); } @Override public EventApplicationResult save(TModel modelToIndex) { EventApplicationResult checkInsert = checkInsertConstraintsFulfilled(modelToIndex); if (!checkInsert.isSuccess()) { return checkInsert; } return elasticPersistenceUtils.save(getIndex(modelToIndex), getType(), modelToIndex, modelToIndex.getId()); } @Override public EventApplicationResult update(TModel modelToIndex) { EventApplicationResult checkUpdate = checkUpdateConstraintsFulfilled(modelToIndex); if (!checkUpdate.isSuccess()) { return checkUpdate; } return elasticPersistenceUtils.update(getIndex(modelToIndex), getType(), modelToIndex, modelToIndex.getId()); } @Override public EventApplicationResult delete(String id) { EventApplicationResult checkDelete = checkDeleteConstraintsFulfilled(id); if (!checkDelete.isSuccess()) { return checkDelete; } return elasticPersistenceUtils.delete(getIndex()[0], getType(), id); } private EventApplicationResult checkUpdateConstraintsFulfilled(TModel modelToIndex) { // TODO Implementar comprobaciones return new EventApplicationResult(true); } private EventApplicationResult checkDeleteConstraintsFulfilled(String id) { // TODO Implementar comprobaciones return new EventApplicationResult(true); } private EventApplicationResult checkInsertConstraintsFulfilled(TModel modelToIndex) { // TODO Implementar comprobaciones return new EventApplicationResult(true); } } Loading
src/main/java/es/redmic/elasticsearchlib/series/repository/IBaseTimeSeriesESRepository.java→src/main/java/es/redmic/elasticsearchlib/series/repository/IBaseSeriesESRepository.java +10 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,10 @@ import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; public interface IBaseTimeSeriesESRepository { import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.model.BaseAbstractStringES; public interface IBaseSeriesESRepository<TModel extends BaseAbstractStringES> { static String[] INDEX = { "timeseries" }; static String TYPE = "_doc"; Loading @@ -40,4 +43,10 @@ public interface IBaseTimeSeriesESRepository { return AggregationBuilders.dateHistogram("dateHistogram").field(dateTimeField) .dateHistogramInterval(dateHistogramInterval).minDocCount(minDocCount); } EventApplicationResult save(TModel modelToIndex); EventApplicationResult update(TModel modelToIndex); EventApplicationResult delete(String id); }
src/main/java/es/redmic/elasticsearchlib/series/repository/IRSeriesESRepository.java +1 −3 Original line number Diff line number Diff line Loading @@ -21,9 +21,7 @@ package es.redmic.elasticsearchlib.series.repository; */ import java.util.List; import org.elasticsearch.search.builder.SearchSourceBuilder; import es.redmic.models.es.common.model.BaseAbstractStringES; import es.redmic.models.es.common.query.dto.DataQueryDTO; import es.redmic.models.es.common.query.dto.MgetDTO; Loading @@ -31,7 +29,7 @@ import es.redmic.models.es.series.common.model.SeriesHitWrapper; import es.redmic.models.es.series.common.model.SeriesHitsWrapper; import es.redmic.models.es.series.common.model.SeriesSearchWrapper; public interface IRSeriesESRepository<TModel extends BaseAbstractStringES> extends IBaseTimeSeriesESRepository { public interface IRSeriesESRepository<TModel extends BaseAbstractStringES> extends IBaseSeriesESRepository<TModel> { public SeriesHitWrapper<TModel> findById(String id); public SeriesSearchWrapper<TModel> searchByIds(String[] ids); Loading
src/main/java/es/redmic/elasticsearchlib/series/repository/RSeriesESRepository.java +1 −6 Original line number Diff line number Diff line Loading @@ -36,8 +36,6 @@ import org.elasticsearch.search.sort.SortOrder; * #L% */ import org.springframework.beans.factory.annotation.Value; import es.redmic.elasticsearchlib.common.query.SeriesQueryUtils; import es.redmic.elasticsearchlib.common.repository.RBaseESRepository; import es.redmic.exception.data.ItemNotFoundException; Loading @@ -51,13 +49,10 @@ import es.redmic.models.es.series.common.model.SeriesSearchWrapper; public abstract class RSeriesESRepository<TModel extends BaseAbstractStringES, TQueryDTO extends DataQueryDTO> extends RBaseESRepository<TModel, TQueryDTO> implements IRSeriesESRepository<TModel> { @Value("${timeseries.index.pattern}") protected String timeSeriesIndexPattern; private static final String DATADEFINITION_PROPERTY = "dataDefinition"; protected RSeriesESRepository() { super(IBaseTimeSeriesESRepository.INDEX, IBaseTimeSeriesESRepository.TYPE, true); super(IBaseSeriesESRepository.INDEX, IBaseSeriesESRepository.TYPE, true); } @Override Loading
src/main/java/es/redmic/elasticsearchlib/series/repository/RWSeriesESRepository.java +62 −5 Original line number Diff line number Diff line Loading @@ -20,26 +20,83 @@ package es.redmic.elasticsearchlib.series.repository; * #L% */ import es.redmic.elasticsearchlib.common.repository.RBaseESRepository; import org.joda.time.format.DateTimeFormat; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import es.redmic.elasticsearchlib.common.utils.ElasticPersistenceUtils; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.model.BaseTimeDataAbstractES; import es.redmic.models.es.common.query.dto.DataQueryDTO; public abstract class RWSeriesESRepository<TModel extends BaseTimeDataAbstractES, TQueryDTO extends DataQueryDTO> extends RBaseESRepository<TModel, TQueryDTO> implements IBaseTimeSeriesESRepository { extends RSeriesESRepository<TModel, TQueryDTO> { @Value("${timeseries.index.pattern}") String timeSeriesIndexPattern; @Autowired ElasticPersistenceUtils elasticPersistenceUtils; protected RWSeriesESRepository() { super(IBaseTimeSeriesESRepository.INDEX, IBaseTimeSeriesESRepository.TYPE, true); super(); } @Override protected String getIndex(final TModel modelToIndex) { return super.getIndex()[0] + "-" + modelToIndex.getDate().toString(DateTimeFormat.forPattern(timeSeriesIndexPattern)); return timeSeriesIndexPattern + "-" + modelToIndex.getDate().toString(DateTimeFormat.forPattern(timeSeriesIndexPattern)); } @Override public EventApplicationResult save(TModel modelToIndex) { EventApplicationResult checkInsert = checkInsertConstraintsFulfilled(modelToIndex); if (!checkInsert.isSuccess()) { return checkInsert; } return elasticPersistenceUtils.save(getIndex(modelToIndex), getType(), modelToIndex, modelToIndex.getId()); } @Override public EventApplicationResult update(TModel modelToIndex) { EventApplicationResult checkUpdate = checkUpdateConstraintsFulfilled(modelToIndex); if (!checkUpdate.isSuccess()) { return checkUpdate; } return elasticPersistenceUtils.update(getIndex(modelToIndex), getType(), modelToIndex, modelToIndex.getId()); } @Override public EventApplicationResult delete(String id) { EventApplicationResult checkDelete = checkDeleteConstraintsFulfilled(id); if (!checkDelete.isSuccess()) { return checkDelete; } return elasticPersistenceUtils.delete(getIndex()[0], getType(), id); } private EventApplicationResult checkUpdateConstraintsFulfilled(TModel modelToIndex) { // TODO Implementar comprobaciones return new EventApplicationResult(true); } private EventApplicationResult checkDeleteConstraintsFulfilled(String id) { // TODO Implementar comprobaciones return new EventApplicationResult(true); } private EventApplicationResult checkInsertConstraintsFulfilled(TModel modelToIndex) { // TODO Implementar comprobaciones return new EventApplicationResult(true); } }