Commit 582968fe authored by Viacheslav Pavlov's avatar Viacheslav Pavlov Committed by Matija Obreza

Added list accession data with suggestions

- Renamed ...Filter fields to fit model fields
- Added holder.code, taxa.genus, origin.iso3 suggestionKeys
- added json path to ES path decoder
- Changes related to BasicModelFilter#clearFilter introduction
- TermResults values for crop.shortName, sampStat, storage
parent 33fb990e
...@@ -46,13 +46,13 @@ public class DatasetFilter extends UuidModelFilter<DatasetFilter, Dataset> { ...@@ -46,13 +46,13 @@ public class DatasetFilter extends UuidModelFilter<DatasetFilter, Dataset> {
public PartnerFilter owner; public PartnerFilter owner;
/** The accession reference. */ /** The accession reference. */
public AccessionRefFilter accessionRef; public AccessionRefFilter accessionRefs;
/** Dataset location filter */ /** Dataset location filter */
public DatasetLocationFilter location; public DatasetLocationFilter locations;
/** Descriptor filter */ /** Descriptor filter */
public DescriptorFilter descriptor; public DescriptorFilter descriptors;
/** The title. */ /** The title. */
public StringFilter title; public StringFilter title;
...@@ -67,7 +67,7 @@ public class DatasetFilter extends UuidModelFilter<DatasetFilter, Dataset> { ...@@ -67,7 +67,7 @@ public class DatasetFilter extends UuidModelFilter<DatasetFilter, Dataset> {
public Set<PublishState> state; public Set<PublishState> state;
/** The crop. */ /** The crop. */
public Set<String> crop; public Set<String> crops;
public Set<String> rights; public Set<String> rights;
...@@ -92,21 +92,21 @@ public class DatasetFilter extends UuidModelFilter<DatasetFilter, Dataset> { ...@@ -92,21 +92,21 @@ public class DatasetFilter extends UuidModelFilter<DatasetFilter, Dataset> {
if (owner != null) { if (owner != null) {
and.and(owner.buildQuery(dataset.owner)); and.and(owner.buildQuery(dataset.owner));
} }
if (accessionRef != null) { if (accessionRefs != null) {
and.and(accessionRef.buildQuery(dataset.accessionRefs)); and.and(accessionRefs.buildQuery(dataset.accessionRefs));
} }
if (descriptor != null) { if (descriptors != null) {
and.and(descriptor.buildQuery(dataset.descriptors.any())); and.and(descriptors.buildQuery(dataset.descriptors.any()));
} }
if (CollectionUtils.isNotEmpty(language)) { if (CollectionUtils.isNotEmpty(language)) {
and.and(dataset.language.in(language)); and.and(dataset.language.in(language));
} }
if (crop != null && !crop.isEmpty()) { if (crops != null && !crops.isEmpty()) {
and.and(dataset.crops.any().in(crop)); and.and(dataset.crops.any().in(crops));
} }
if (location != null) { if (locations != null) {
and.and(location.buildQuery(dataset.locations.any())); and.and(locations.buildQuery(dataset.locations.any()));
} }
if (CollectionUtils.isNotEmpty(rights)) { if (CollectionUtils.isNotEmpty(rights)) {
......
...@@ -20,17 +20,17 @@ public class DatasetLocationFilter extends UuidModelFilter<DatasetLocationFilter ...@@ -20,17 +20,17 @@ public class DatasetLocationFilter extends UuidModelFilter<DatasetLocationFilter
/** /**
* The longitude. * The longitude.
*/ */
public NumberFilter<Double> longitude; public NumberFilter<Double> decimalLongitude;
/** /**
* The latitude. * The latitude.
*/ */
public NumberFilter<Double> latitude; public NumberFilter<Double> decimalLatitude;
/** /**
* The elevation. * The elevation.
*/ */
public Set<String> country; public Set<String> userCountry;
/** /**
...@@ -52,14 +52,14 @@ public class DatasetLocationFilter extends UuidModelFilter<DatasetLocationFilter ...@@ -52,14 +52,14 @@ public class DatasetLocationFilter extends UuidModelFilter<DatasetLocationFilter
final BooleanBuilder and = new BooleanBuilder(); final BooleanBuilder and = new BooleanBuilder();
super.buildQuery(datasetLocation, datasetLocation._super, and); super.buildQuery(datasetLocation, datasetLocation._super, and);
if (longitude != null) { if (decimalLongitude != null) {
and.and(longitude.buildQuery(datasetLocation.decimalLongitude)); and.and(decimalLongitude.buildQuery(datasetLocation.decimalLongitude));
} }
if (latitude != null) { if (decimalLatitude != null) {
and.and(latitude.buildQuery(datasetLocation.decimalLatitude)); and.and(decimalLatitude.buildQuery(datasetLocation.decimalLatitude));
} }
if (CollectionUtils.isNotEmpty(country)) { if (CollectionUtils.isNotEmpty(userCountry)) {
and.and(datasetLocation.userCountry.in(country)); and.and(datasetLocation.userCountry.in(userCountry));
} }
return and; return and;
......
...@@ -86,7 +86,7 @@ public class DescriptorFilter extends UuidModelFilter<DescriptorFilter, Descript ...@@ -86,7 +86,7 @@ public class DescriptorFilter extends UuidModelFilter<DescriptorFilter, Descript
public NumberFilter<Double> maxValue; public NumberFilter<Double> maxValue;
/** Descriptor list filter */ /** Descriptor list filter */
public DescriptorListFilter list; public DescriptorListFilter descriptorLists;
/** Descriptor is in use: referenced in Dataset or DescriptorList. */ /** Descriptor is in use: referenced in Dataset or DescriptorList. */
public Boolean used; public Boolean used;
...@@ -146,8 +146,8 @@ public class DescriptorFilter extends UuidModelFilter<DescriptorFilter, Descript ...@@ -146,8 +146,8 @@ public class DescriptorFilter extends UuidModelFilter<DescriptorFilter, Descript
if (maxValue != null) { if (maxValue != null) {
and.and(maxValue.buildQuery(descriptorPath.maxValue)); and.and(maxValue.buildQuery(descriptorPath.maxValue));
} }
if (list != null) { if (descriptorLists != null) {
and.and(list.buildQuery(descriptorPath.descriptorLists.any())); and.and(descriptorLists.buildQuery(descriptorPath.descriptorLists.any()));
} }
if (used != null) { if (used != null) {
if (used.booleanValue()==true) { if (used.booleanValue()==true) {
......
...@@ -189,7 +189,7 @@ public class CropsController extends ApiBaseController { ...@@ -189,7 +189,7 @@ public class CropsController extends ApiBaseController {
} }
/** /**
* Get crop taxonomies /crops/{shortName}/taxa * Get crop taxonomies /crops/{shortName}/taxonomy
* @return * @return
* *
* @return * @return
...@@ -197,7 +197,7 @@ public class CropsController extends ApiBaseController { ...@@ -197,7 +197,7 @@ public class CropsController extends ApiBaseController {
*/ */
@RequestMapping(value = "/{shortName}/taxa", method = RequestMethod.GET, produces = { MediaType.APPLICATION_JSON_VALUE }) @RequestMapping(value = "/{shortName}/taxa", method = RequestMethod.GET, produces = { MediaType.APPLICATION_JSON_VALUE })
public Page<CropTaxonomy> getCropTaxa(@PathVariable("shortName") String shortName) throws AuthorizationException { public Page<CropTaxonomy> getCropTaxa(@PathVariable("shortName") String shortName) throws AuthorizationException {
LOG.info("Getting crop taxa {}", shortName); LOG.info("Getting crop taxonomy {}", shortName);
final Crop crop = cropService.getCrop(shortName); final Crop crop = cropService.getCrop(shortName);
final Page<CropTaxonomy> cropTaxa = cropService.getCropTaxonomies(crop, new PageRequest(0, 50)); final Page<CropTaxonomy> cropTaxa = cropService.getCropTaxonomies(crop, new PageRequest(0, 50));
return OAuth2Cleanup.clean(cropTaxa); return OAuth2Cleanup.clean(cropTaxa);
......
...@@ -23,6 +23,7 @@ import java.io.OutputStream; ...@@ -23,6 +23,7 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols; import java.text.DecimalFormatSymbols;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
...@@ -30,6 +31,7 @@ import java.util.UUID; ...@@ -30,6 +31,7 @@ import java.util.UUID;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.genesys.blocks.model.JsonViews; import org.genesys.blocks.model.JsonViews;
import org.genesys.catalog.service.ShortFilterService; import org.genesys.catalog.service.ShortFilterService;
...@@ -124,6 +126,7 @@ public class AccessionController { ...@@ -124,6 +126,7 @@ public class AccessionController {
private final Set<String> terms = Sets.newHashSet("institute.code", "institute.country.code3", "cropName", "crop.shortName", "taxonomy.genus", "taxonomy.species", private final Set<String> terms = Sets.newHashSet("institute.code", "institute.country.code3", "cropName", "crop.shortName", "taxonomy.genus", "taxonomy.species",
"taxonomy.genusSpecies", "countryOfOrigin.code3", "sampStat", "available", "mlsStatus", "donorCode", "sgsv", "storage", "duplSite", "breederCode"); "taxonomy.genusSpecies", "countryOfOrigin.code3", "sampStat", "available", "mlsStatus", "donorCode", "sgsv", "storage", "duplSite", "breederCode");
private final Set<String> suggestions = Sets.newHashSet("crop.shortName", "institute.code", "taxonomy.genus", "countryOfOrigin.code3", "historic", "sampStat", "available", "mlsStatus", "sgsv", "storage");
private ObjectMapper objectMapper = new ObjectMapper(); private ObjectMapper objectMapper = new ObjectMapper();
...@@ -185,6 +188,46 @@ public class AccessionController { ...@@ -185,6 +188,46 @@ public class AccessionController {
return new FilteredPage<>(filterInfo.filterCode, filterInfo.filter, accessionService.list(filterInfo.filter, page.toPageRequest(100, Sort.Direction.ASC, "seqNo"))); return new FilteredPage<>(filterInfo.filterCode, filterInfo.filter, accessionService.list(filterInfo.filter, page.toPageRequest(100, Sort.Direction.ASC, "seqNo")));
} }
/**
* List accessions by filterCode or filter
*
* @param page the page
* @param filterCode short filter code
* @param filter the filter
* @return the page
* @throws IOException
*/
@PostMapping(value = "/list-suggestions", produces = { MediaType.APPLICATION_JSON_VALUE })
@JsonView({ JsonViews.Public.class })
public AccessionSuggestionPage listSuggestions(@RequestParam(name = "f", required = false) String filterCode, final Pagination page,
@RequestBody(required = false) AccessionFilter filter) throws IOException, SearchException {
if (filterCode != null) {
filter = shortFilterService.filterByCode(filterCode, AccessionFilter.class);
} else {
filterCode = shortFilterService.getCode(filter);
}
FilterInfo<AccessionFilter> filterInfo = shortFilterService.processFilter(filterCode, filter, AccessionFilter.class);
FilteredPage<Accession> pageRes = new FilteredPage<>(filterInfo.filterCode, filterInfo.filter, accessionService.list(filterInfo.filter, page.toPageRequest(100, Sort.Direction.ASC, "seqNo")));
Map<String, TermResult> suggestionRes = new HashMap<>(suggestions.size());
for (String suggestionKey: suggestions) {
AccessionFilter suggestionFilter = filter.copy(AccessionFilter.class);
try {
suggestionFilter.clearFilter(suggestionKey);
} catch (NoSuchFieldException | IllegalAccessException e) {
LOG.error("Error while clearing filter: ", e.getMessage());
}
TermResult suggestion = elasticsearchService.termStatisticsAuto(Accession.class, suggestionFilter, 100, suggestionKey);
suggestionRes.put(suggestionKey, suggestion);
}
return AccessionSuggestionPage.from(pageRes, suggestionRes);
}
/** /**
* Get term overview for filters * Get term overview for filters
* *
...@@ -363,27 +406,27 @@ public class AccessionController { ...@@ -363,27 +406,27 @@ public class AccessionController {
// "taxonomy.genus", "taxonomy.genusSpecies", "taxonomy.species", // "taxonomy.genus", "taxonomy.genusSpecies", "taxonomy.species",
// "countryOfOrigin.code3", "sampStat", "available", "mlsStatus", "donorCode", // "countryOfOrigin.code3", "sampStat", "available", "mlsStatus", "donorCode",
// "sgsv", "storage", "duplSite", "breederCode" // "sgsv", "storage", "duplSite", "breederCode"
if (filter.taxa != null) { if (filter.taxonomy != null) {
if (CollectionUtil.isNotEmpty(filter.taxa.species)) { if (CollectionUtil.isNotEmpty(filter.taxonomy.species)) {
AccessionFilter modifiedFilter = copyFilter(filter); AccessionFilter modifiedFilter = copyFilter(filter);
modifiedFilter.taxa.species.clear(); modifiedFilter.taxonomy.species.clear();
termResults.put("taxonomy.species", elasticsearchService.termStatisticsAuto(Accession.class, modifiedFilter, 10, "taxonomy.species")); termResults.put("taxonomy.species", elasticsearchService.termStatisticsAuto(Accession.class, modifiedFilter, 10, "taxonomy.species"));
} }
if (CollectionUtil.isNotEmpty(filter.taxa.genus)) { if (CollectionUtil.isNotEmpty(filter.taxonomy.genus)) {
AccessionFilter modifiedFilter = copyFilter(filter); AccessionFilter modifiedFilter = copyFilter(filter);
modifiedFilter.taxa.genus.clear(); modifiedFilter.taxonomy.genus.clear();
termResults.put("taxonomy.genus", elasticsearchService.termStatisticsAuto(Accession.class, modifiedFilter, 10, "taxonomy.genus")); termResults.put("taxonomy.genus", elasticsearchService.termStatisticsAuto(Accession.class, modifiedFilter, 10, "taxonomy.genus"));
} }
} }
if (filter.origin != null) { if (filter.countryOfOrigin != null) {
AccessionFilter modifiedFilter = copyFilter(filter); AccessionFilter modifiedFilter = copyFilter(filter);
modifiedFilter.origin = null; modifiedFilter.countryOfOrigin = null;
termResults.put("countryOfOrigin.code3", elasticsearchService.termStatisticsAuto(Accession.class, modifiedFilter, 10, "countryOfOrigin.code3")); termResults.put("countryOfOrigin.code3", elasticsearchService.termStatisticsAuto(Accession.class, modifiedFilter, 10, "countryOfOrigin.code3"));
} }
if (filter.holder != null) { if (filter.institute != null) {
AccessionFilter modifiedFilter = copyFilter(filter); AccessionFilter modifiedFilter = copyFilter(filter);
modifiedFilter.holder = null; modifiedFilter.institute = null;
termResults.putAll(elasticsearchService.termStatisticsAuto(Accession.class, modifiedFilter, 10, "institute.code", "institute.country.code3")); termResults.putAll(elasticsearchService.termStatisticsAuto(Accession.class, modifiedFilter, 10, "institute.code", "institute.country.code3"));
} }
...@@ -567,4 +610,19 @@ public class AccessionController { ...@@ -567,4 +610,19 @@ public class AccessionController {
} }
} }
public static class AccessionSuggestionPage {
@JsonUnwrapped
public FilteredPage<Accession> page;
public Map<String, TermResult> suggestions;
private static AccessionSuggestionPage from(FilteredPage<Accession> page, Map<String, TermResult> suggestions) {
AccessionSuggestionPage res = new AccessionSuggestionPage();
res.page = page;
res.suggestions = suggestions;
return res;
}
}
} }
...@@ -215,7 +215,7 @@ public class CropsController extends ApiBaseController { ...@@ -215,7 +215,7 @@ public class CropsController extends ApiBaseController {
} }
/** /**
* Get crop taxonomies /crops/{shortName}/taxa * Get crop taxonomies /crops/{shortName}/taxonomy
* @return * @return
* *
* @return * @return
...@@ -223,7 +223,7 @@ public class CropsController extends ApiBaseController { ...@@ -223,7 +223,7 @@ public class CropsController extends ApiBaseController {
*/ */
@RequestMapping(value = "/{shortName}/taxa", method = RequestMethod.GET, produces = { MediaType.APPLICATION_JSON_VALUE }) @RequestMapping(value = "/{shortName}/taxa", method = RequestMethod.GET, produces = { MediaType.APPLICATION_JSON_VALUE })
public Page<CropTaxonomy> getCropTaxa(@PathVariable("shortName") String shortName) throws AuthorizationException { public Page<CropTaxonomy> getCropTaxa(@PathVariable("shortName") String shortName) throws AuthorizationException {
LOG.info("Getting crop taxa {}", shortName); LOG.info("Getting crop taxonomy {}", shortName);
final Crop crop = cropService.getCrop(shortName); final Crop crop = cropService.getCrop(shortName);
final Page<CropTaxonomy> cropTaxa = cropService.getCropTaxonomies(crop, new PageRequest(0, 50)); final Page<CropTaxonomy> cropTaxa = cropService.getCropTaxonomies(crop, new PageRequest(0, 50));
return OAuth2Cleanup.clean(cropTaxa); return OAuth2Cleanup.clean(cropTaxa);
......
...@@ -106,8 +106,8 @@ public class SearchController extends ApiBaseController { ...@@ -106,8 +106,8 @@ public class SearchController extends ApiBaseController {
return null; return null;
} }
BoolQueryBuilder q = boolQuery(); BoolQueryBuilder q = boolQuery();
if (filters.crop != null && !filters.crop.isEmpty()) { if (filters.crops != null && !filters.crops.isEmpty()) {
q.must(termsQuery("crop", filters.crop)); q.must(termsQuery("crop", filters.crops));
} }
q.boost(3.0f); q.boost(3.0f);
......
...@@ -38,6 +38,7 @@ import javax.validation.constraints.NotNull; ...@@ -38,6 +38,7 @@ import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonGetter;
import org.genesys.blocks.model.AuditedVersionedModel; import org.genesys.blocks.model.AuditedVersionedModel;
import org.genesys.blocks.model.IdUUID; import org.genesys.blocks.model.IdUUID;
import org.genesys.blocks.model.JsonViews; import org.genesys.blocks.model.JsonViews;
...@@ -71,7 +72,7 @@ public abstract class AccessionData extends AuditedVersionedModel implements IdU ...@@ -71,7 +72,7 @@ public abstract class AccessionData extends AuditedVersionedModel implements IdU
@JoinColumn(name = "id") @JoinColumn(name = "id")
@JsonUnwrapped @JsonUnwrapped
@Field(type=FieldType.Auto) @Field(type=FieldType.Auto)
@QueryInit({ "geo.*", "coll.*", "pdci.*" }) @QueryInit({ "geo.*", "coll.*", "pdci.*", "lists.*" })
private AccessionId accessionId; private AccessionId accessionId;
@Column(name = "doi") @Column(name = "doi")
...@@ -531,4 +532,9 @@ public abstract class AccessionData extends AuditedVersionedModel implements IdU ...@@ -531,4 +532,9 @@ public abstract class AccessionData extends AuditedVersionedModel implements IdU
public boolean getSgsv() { public boolean getSgsv() {
return this.duplSiteStr != null && this.duplSiteStr.contains("NOR051"); return this.duplSiteStr != null && this.duplSiteStr.contains("NOR051");
} }
@JsonInclude
public Boolean getImages() {
return this.accessionId != null && this.accessionId.getImageCount() > 0;
}
} }
...@@ -145,7 +145,7 @@ public class DescriptorControllerRdf extends RdfBaseController { ...@@ -145,7 +145,7 @@ public class DescriptorControllerRdf extends RdfBaseController {
* *
* cco:MusaTrait a skos:Concept; cco:category cco:GeneralTrait ; * cco:MusaTrait a skos:Concept; cco:category cco:GeneralTrait ;
* skos:prefLabel "Musa taxonomic traits"@en; skos:definition * skos:prefLabel "Musa taxonomic traits"@en; skos:definition
* "Nomenclature for Characterization traits for species in the Musa taxa." * "Nomenclature for Characterization traits for species in the Musa taxonomy."
* @en; skos:prefLabel "Rasgos taxonómicos de Musa."@es; skos:definition * @en; skos:prefLabel "Rasgos taxonómicos de Musa."@es; skos:definition
* "Nomenclatura de los rasgos de caracterización de las especies en el taxón Musa." * "Nomenclatura de los rasgos de caracterización de las especies en el taxón Musa."
* @es; skos:prefLabel "Муса таксономические черты"@ru; skos:definition * @es; skos:prefLabel "Муса таксономические черты"@ru; skos:definition
......
...@@ -30,7 +30,7 @@ public interface FilterConstants { ...@@ -30,7 +30,7 @@ public interface FilterConstants {
public static final String AVAILABLE = "available"; public static final String AVAILABLE = "available";
public static final String ART15 = "art15"; public static final String ART15 = "inTrust";
public static final String MLSSTATUS = "mlsStatus"; public static final String MLSSTATUS = "mlsStatus";
...@@ -38,7 +38,7 @@ public interface FilterConstants { ...@@ -38,7 +38,7 @@ public interface FilterConstants {
public static final String ALIAS = "alias"; public static final String ALIAS = "alias";
public static final String ACCENUMB = "acceNumb"; public static final String ACCENUMB = "accessionNumber";
public static final String INSTCODE = "institute.code"; public static final String INSTCODE = "institute.code";
......
...@@ -33,16 +33,16 @@ import com.querydsl.core.types.Predicate; ...@@ -33,16 +33,16 @@ import com.querydsl.core.types.Predicate;
public class AccessionCollectFilter extends BasicModelFilter<AccessionCollectFilter, AccessionCollect> { public class AccessionCollectFilter extends BasicModelFilter<AccessionCollectFilter, AccessionCollect> {
/** The date. */ /** The date. */
public StringFilter date; public StringFilter collDate;
/** The numb. */ /** The numb. */
public StringFilter numb; public StringFilter collNumb;
/** The mission. */ /** The mission. */
public Set<String> mission; public Set<String> collMissId;
/** The site. */ /** The site. */
public StringFilter site; public StringFilter collSite;
/** /**
* Builds the query. * Builds the query.
...@@ -63,17 +63,17 @@ public class AccessionCollectFilter extends BasicModelFilter<AccessionCollectFil ...@@ -63,17 +63,17 @@ public class AccessionCollectFilter extends BasicModelFilter<AccessionCollectFil
final BooleanBuilder and = new BooleanBuilder(); final BooleanBuilder and = new BooleanBuilder();
super.buildPredicate(collect, collect._super, and); super.buildPredicate(collect, collect._super, and);
if (date != null) { if (collDate != null) {
and.and(date.buildQuery(collect.collDate)); and.and(collDate.buildQuery(collect.collDate));
} }
if (numb != null) { if (collNumb != null) {
and.and(numb.buildQuery(collect.collNumb)); and.and(collNumb.buildQuery(collect.collNumb));
} }
if (site != null) { if (collSite != null) {
and.and(site.buildQuery(collect.collSite)); and.and(collSite.buildQuery(collect.collSite));
} }
if (mission != null && !mission.isEmpty()) { if (collMissId != null && !collMissId.isEmpty()) {
and.and(collect.collMissId.in(mission)); and.and(collect.collMissId.in(collMissId));
} }
return and; return and;
} }
......
...@@ -16,9 +16,13 @@ ...@@ -16,9 +16,13 @@
package org.genesys2.server.service.filter; package org.genesys2.server.service.filter;
import java.io.Serializable; import java.io.Serializable;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors;
import org.genesys.blocks.model.filters.NumberFilter; import org.genesys.blocks.model.filters.NumberFilter;
import org.genesys.blocks.model.filters.StringFilter; import org.genesys.blocks.model.filters.StringFilter;
...@@ -61,11 +65,11 @@ public class AccessionFilter extends UuidModelFilter<AccessionFilter, Accession> ...@@ -61,11 +65,11 @@ public class AccessionFilter extends UuidModelFilter<AccessionFilter, Accession>
/** The crop name. */ /** The crop name. */
public StringFilter cropName; public StringFilter cropName;
/** The holder. */ /** The institute. */
public InstituteFilter holder; public InstituteFilter institute;
/** The acce numb. */ /** The acce numb. */
public StringFilter acceNumb; public StringFilter accessionNumber;
/** The doi. */ /** The doi. */
public Set<String> doi; public Set<String> doi;
...@@ -73,14 +77,14 @@ public class AccessionFilter extends UuidModelFilter<AccessionFilter, Accession> ...@@ -73,14 +77,14 @@ public class AccessionFilter extends UuidModelFilter<AccessionFilter, Accession>
/** The seq no. */ /** The seq no. */
public NumberFilter<Double> seqNo; public NumberFilter<Double> seqNo;
/** The taxa. */ /** The taxonomy. */
public TaxonomyFilter taxa; public TaxonomyFilter taxonomy;