package com.compomics.util.pride.prideobjects.webservice;
/**
* An enum that constructs the template queries for the PRIDE webservice.
*
* @author Kenneth Verheggen
*/
public enum PrideQuery {
// projects
GET_PROJECT_BY_ACCESSION("project/{projectAccession}"),
GET_PROJECTS_BY_CRITERIA("project/list"),
// assay
GET_ASSAY_BY_ACCESSION("assay/{assayAccession}"),
GET_ASSAYS_BY_PROJECT("assay/list/project/{projectAccession}"),
// files
GET_FILES_BY_PROJECT("file/list/project/{projectAccession}"),
GET_FILES_BY_ASAY("file/list/assay/{assayAccession}"),
// protein identifications
GET_ALL_PROTEIN_IDENTIFICATIONS_BY_PROJECT("protein/list/project/{projectAccession}"),
GET_PROTEIN_IDENTIFICATION_BY_PROJECT("protein/list/project/{projectAccession}/protein/{accession}"),
GET_ALL_PROTEIN_IDENTIFICATIONS_BY_ASSAY("protein/list/assay/{assayAccession}"),
// peptide identifications
GET_ALL_PEPTIDE_IDENTIFICATIONS_BY_PROJECT("peptide/list/project/{projectAccession}"),
GET_ALL_PEPTIDE_IDENTIFICATIONS_BY_PROJECT_AND_SEQUENCE("peptide/list/project/{projectAccession}/sequence/{peptideSequence}"),
GET_ALL_PEPTIDE_IDENTIFICATIONS_BY_ASSAY("peptide/list/assay/{assayAccession}"),
GET_ALL_PEPTIDE_IDENTIFICATIONS_BY_ASSAY_AND_SEQUENCE("peptide/list/assay/{assayAccession}/sequence/{peptideSequence}");
/**
* The root URL to the PRIDE webservice.
*/
private static final String ROOT_URL = "https://www.ebi.ac.uk:443/pride/ws/archive/";
/**
* The template of a query.
*/
private final String queryTemplate;
/**
* Creates a new PrideQuery instance.
*
* @param queryTemplate the query template
*/
private PrideQuery(String queryTemplate) {
this.queryTemplate = queryTemplate;
}
/**
* Returns the actual query template.
*
* @param count a boolean indicating if the query is to be used for counting
* json objects (faster than iterating a list of objects)
* @return the actual query template for a count or list
*/
public String getQueryTemplate(boolean count) {
String temp = ROOT_URL;
if (count) {
temp += queryTemplate.replace("list", "count");
} else {
temp += queryTemplate;
}
return temp;
}
}