package org.nextprot.api.isoform.mapper.domain; import org.jsondoc.core.annotation.ApiObject; import org.jsondoc.core.annotation.ApiObjectField; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Multiple queries defined from a list and/or a map of features */ @ApiObject(name = "multiple-feature-query", description = "multiple query") public class MultipleFeatureQuery extends BaseFeatureQuery { private static final long serialVersionUID = 20161117L; @ApiObjectField(description = "The category type", allowedvalues = {"variant"}) private String featureType; @ApiObjectField(description = "The entry accession number", allowedvalues = {"NX_Q9UI33"}) private String accession; @ApiObjectField(description = "A list of feature types to query", allowedvalues = {"[SCN11A-p.Leu1158Pro]"}) private List<String> featureList = new ArrayList<>(); private List<Map<String, String>> featureMaps = new ArrayList<>(); @Override public List<String> getFeatureList() { return featureList; } public void setFeatureList(List<String> featureList) { this.featureList.addAll(featureList); } @Override public String getFeatureType() { return featureType; } public void setFeatureType(String featureType) { this.featureType = featureType; } @Override public String getAccession() { return accession; } public void setAccession(String accession) { this.accession = accession; } public List<Map<String, String>> getFeatureMaps() { return featureMaps; } public void setFeatureMaps(List<Map<String, String>> featureMaps) { this.featureMaps.addAll(featureMaps); } public void checkFeatureQuery() throws FeatureQueryException { checkAccessionNotIsoform(); checkAnnotationCategoryExists(); checkFeatureNonEmpty(); } }