package gov.nih.ncgc.bard.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import gov.nih.ncgc.bard.rest.BARDConstants;
import gov.nih.ncgc.bard.tools.BARDJsonRequired;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* A representation of a project.
*
* A project will refer to one or more experiments and assays as well as meta-data
* about the project itself.
*
* @author Rajarshi Guha
*/
public class Project extends BaseEntity{
/**
* Numeric project identifier.
*/
@BARDJsonRequired
Long bardProjectId;
/**
* CAP project identifier.
*/
Long capProjectId;
/**
* A map of experiment id to the experiment type.
*/
Map<Long, String> experimentTypes;
int category, type, classification;
String name, description, source;
float score;
// annotations
@JsonIgnore
List<String> gobp_id, gobp_term, gomf_term, gomf_id, gocc_id, gocc_term;
@JsonIgnore
List<String> av_dict_label, ak_dict_label;
@JsonIgnore
List<String> kegg_disease_names, kegg_disease_cat;
/**
* Grant number for this project (if any).
*/
String grantNo;
/**
* Date deposited.
*/
Date deposited;
/**
* Date update;
*/
Date updated;
List<Compound> probes;
List<Long> probeIds;
/**
* A list of BARD experiment ids
*/
List<Long> eids;
/**
* A list of BARD assay ids
*/
List<Long> aids;
/**
* A list of Pubmed IDs associated with the project.
*/
List<Long> publications;
/**
* A list of target biologies associated with the project
*
* @see Biology
*/
List<Biology> targets;
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
public Map<Long, String> getExperimentTypes() {
return experimentTypes;
}
public void setExperimentTypes(Map<Long, String> experimentTypes) {
this.experimentTypes = experimentTypes;
}
public Long getCapProjectId() {
return capProjectId;
}
public void setCapProjectId(Long capProjectId) {
this.capProjectId = capProjectId;
}
public List<Compound> getProbes() {
return probes;
}
public void setProbes(List<Compound> probes) {
this.probes = probes;
}
public List<String> getGobp_id() {
return gobp_id;
}
public void setGobp_id(List<String> gobp_id) {
this.gobp_id = gobp_id;
}
public List<String> getGobp_term() {
return gobp_term;
}
public void setGobp_term(List<String> gobp_term) {
this.gobp_term = gobp_term;
}
public List<String> getGomf_term() {
return gomf_term;
}
public void setGomf_term(List<String> gomf_term) {
this.gomf_term = gomf_term;
}
public List<String> getGomf_id() {
return gomf_id;
}
public void setGomf_id(List<String> gomf_id) {
this.gomf_id = gomf_id;
}
public List<String> getGocc_id() {
return gocc_id;
}
public void setGocc_id(List<String> gocc_id) {
this.gocc_id = gocc_id;
}
public List<String> getGocc_term() {
return gocc_term;
}
public void setGocc_term(List<String> gocc_term) {
this.gocc_term = gocc_term;
}
public List<String> getAv_dict_label() {
return av_dict_label;
}
public void setAv_dict_label(List<String> av_dict_label) {
this.av_dict_label = av_dict_label;
}
public List<String> getAk_dict_label() {
return ak_dict_label;
}
public void setAk_dict_label(List<String> ak_dict_label) {
this.ak_dict_label = ak_dict_label;
}
public List<String> getKegg_disease_names() {
return kegg_disease_names;
}
public void setKegg_disease_names(List<String> kegg_disease_names) {
this.kegg_disease_names = kegg_disease_names;
}
public List<String> getKegg_disease_cat() {
return kegg_disease_cat;
}
public void setKegg_disease_cat(List<String> kegg_disease_cat) {
this.kegg_disease_cat = kegg_disease_cat;
}
public String toString() {
return bardProjectId + "[" + name + "]";
}
public List<Long> getProbeIds() {
return probeIds;
}
public void setProbeIds(List<Long> probeIds) {
this.probeIds = probeIds;
}
public Project() {
eids = new ArrayList<Long>();
probeIds = new ArrayList<Long>();
}
public int getExperimentCount() {
return eids.size();
}
public int getClassification() {
return classification;
}
public void setClassification(int classification) {
this.classification = classification;
}
public List<Long> getEids() {
return eids;
}
public void setEids(List<Long> eids) {
this.eids = eids;
}
public List<Long> getAids () {
return aids;
}
public void setAids (List<Long> aids) {
this.aids = aids;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public List<Long> getPublications() {
return publications;
}
public void setPublications(List<Long> publications) {
this.publications = publications;
}
public List<Biology> getTargets() {
return targets;
}
public void setTargets(List<Biology> targets) {
this.targets = targets;
}
public Long getBardProjectId() {
return bardProjectId;
}
public void setBardProjectId(Long bardProjectId) {
this.bardProjectId = bardProjectId;
}
public Integer getCategory() {
return category;
}
public void setCategory(Integer category) {
this.category = category;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getGrantNo() {
return grantNo;
}
public void setGrantNo(String grantNo) {
this.grantNo = grantNo;
}
public Date getDeposited() {
return deposited;
}
public void setDeposited(Date deposited) {
this.deposited = deposited;
}
public Date getUpdated() {
return updated;
}
public void setUpdated(Date updated) {
this.updated = updated;
}
/**
* Return the path for this resource in the REST API.
* <p/>
* The actual resource can be accessed by prepending the hostname of the server
* hosting the REST API.
*
* @return The path to this resource. <code>null</code> if the object is not meant
* to be publically available via the REST API
*/
public String getResourcePath() {
return BARDConstants.API_BASE + "/projects/" + bardProjectId;
}
/**
* Set the resource path.
* <p/>
* In most cases, this can be an empty function as its primary purpose
* is to allow Jackson to deserialize a JSON entity to the relevant Java
* entity.
*
* @param resourcePath the resource path for this entity
*/
public void setResourcePath(String resourcePath) {
//To change body of implemented methods use File | Settings | File Templates.
}
}