97 lines
3.5 KiB
Java
97 lines
3.5 KiB
Java
package eu.eudat.elastic.query;
|
|
|
|
import co.elastic.clients.elasticsearch._types.query_dsl.Query;
|
|
import eu.eudat.commons.enums.DescriptionTemplateVersionStatus;
|
|
import eu.eudat.elastic.data.nested.NestedDescriptionTemplateElasticEntity;
|
|
import gr.cite.tools.data.query.FieldResolver;
|
|
import gr.cite.tools.elastic.configuration.ElasticProperties;
|
|
import gr.cite.tools.elastic.mapper.FieldBasedMapper;
|
|
import gr.cite.tools.elastic.query.ElasticField;
|
|
import gr.cite.tools.elastic.query.ElasticNestedQuery;
|
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
|
import org.springframework.context.annotation.Scope;
|
|
import org.springframework.data.elasticsearch.client.elc.ElasticsearchTemplate;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.UUID;
|
|
|
|
@Component
|
|
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
|
public class NestedDescriptionTemplateElasticQuery extends ElasticNestedQuery<NestedDescriptionTemplateElasticQuery, NestedDescriptionTemplateElasticEntity, UUID> {
|
|
|
|
private String nestedPath;
|
|
|
|
@Override
|
|
public NestedDescriptionTemplateElasticQuery nestedPath(String value) {
|
|
this.nestedPath = value;
|
|
return this;
|
|
}
|
|
|
|
|
|
public NestedDescriptionTemplateElasticQuery(
|
|
ElasticsearchTemplate elasticsearchRestTemplate,
|
|
ElasticProperties elasticProperties
|
|
) {
|
|
super(elasticsearchRestTemplate, elasticProperties);
|
|
}
|
|
|
|
@Override
|
|
protected Class<NestedDescriptionTemplateElasticEntity> entityClass() {
|
|
return NestedDescriptionTemplateElasticEntity.class;
|
|
}
|
|
|
|
@Override
|
|
protected Boolean isFalseQuery() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
protected Query applyAuthZ() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
protected Query applyFilters() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public NestedDescriptionTemplateElasticEntity convert(Map<String, Object> rawData, Set<String> columns) {
|
|
NestedDescriptionTemplateElasticEntity mocDoc = new NestedDescriptionTemplateElasticEntity();
|
|
if (columns.contains(NestedDescriptionTemplateElasticEntity._id)) mocDoc.setId(FieldBasedMapper.shallowSafeConversion(rawData.get(NestedDescriptionTemplateElasticEntity._id), UUID.class));
|
|
if (columns.contains(NestedDescriptionTemplateElasticEntity._label)) mocDoc.setLabel(FieldBasedMapper.shallowSafeConversion(rawData.get(NestedDescriptionTemplateElasticEntity._label), String.class));
|
|
if (columns.contains(NestedDescriptionTemplateElasticEntity._versionStatus)) mocDoc.setVersionStatus(FieldBasedMapper.shallowSafeConversion(rawData.get(NestedDescriptionTemplateElasticEntity._versionStatus), DescriptionTemplateVersionStatus.class));
|
|
return mocDoc;
|
|
}
|
|
|
|
@Override
|
|
protected ElasticField fieldNameOf(FieldResolver item) {
|
|
if (item.match(NestedDescriptionTemplateElasticEntity._id)) return this.elasticFieldOf(NestedDescriptionTemplateElasticEntity._id).disableInfer(true);
|
|
else if (item.match(NestedDescriptionTemplateElasticEntity._label)) return this.elasticFieldOf(NestedDescriptionTemplateElasticEntity._label).disableInfer(true);
|
|
else if (item.match(NestedDescriptionTemplateElasticEntity._versionStatus)) return this.elasticFieldOf(NestedDescriptionTemplateElasticEntity._versionStatus).disableInfer(true);
|
|
else return null;
|
|
}
|
|
|
|
@Override
|
|
protected String getNestedPath() {
|
|
return this.nestedPath;
|
|
}
|
|
|
|
@Override
|
|
protected UUID toKey(String key) {
|
|
return UUID.fromString(key);
|
|
}
|
|
|
|
@Override
|
|
protected ElasticField getKeyField() {
|
|
return this.elasticFieldOf(NestedDescriptionTemplateElasticEntity._id);
|
|
}
|
|
|
|
@Override
|
|
protected ElasticNestedQuery<?, ?, ?> nestedQueryOf(FieldResolver item) {
|
|
return null;
|
|
}
|
|
}
|