package org.opencb.opencga.storage.core.manager.models;
import org.opencb.opencga.catalog.models.DataStore;
import org.opencb.opencga.catalog.models.File;
import org.opencb.opencga.catalog.models.Project;
import org.opencb.opencga.catalog.models.Study;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Created by pfurio on 24/11/16.
*/
public class StudyInfo {
private String sessionId;
private String userId;
private long projectId;
private Study study;
private String projectAlias;
private Path workspace;
private Map<File.Bioformat, DataStore> dataStores;
private Project.Organism organism;
private List<FileInfo> fileInfos;
public StudyInfo() {
this.projectId = -1;
this.fileInfos = new ArrayList<>();
}
public String getUserId() {
return userId;
}
public StudyInfo setUserId(String userId) {
this.userId = userId;
return this;
}
public long getProjectId() {
return projectId;
}
public StudyInfo setProjectId(long projectId) {
this.projectId = projectId;
return this;
}
public long getStudyId() {
return study != null ? study.getId() : -1;
}
public Study getStudy() {
return study;
}
public StudyInfo setStudy(Study study) {
this.study = study;
return this;
}
public String getProjectAlias() {
return projectAlias;
}
public StudyInfo setProjectAlias(String projectAlias) {
this.projectAlias = projectAlias;
return this;
}
public String getStudyAlias() {
return study != null ? study.getAlias() : null;
}
public Path getWorkspace() {
return study != null ? Paths.get(study.getUri().getRawPath()) : null;
}
public Map<File.Bioformat, DataStore> getDataStores() {
return dataStores;
}
public StudyInfo setDataStores(Map<File.Bioformat, DataStore> dataStores) {
this.dataStores = dataStores;
return this;
}
public String getSessionId() {
return sessionId;
}
public StudyInfo setSessionId(String sessionId) {
this.sessionId = sessionId;
return this;
}
public FileInfo getFileInfo() {
return fileInfos.get(0);
}
public StudyInfo setFileInfo(FileInfo fileInfo) {
this.fileInfos.set(0, fileInfo);
return this;
}
public List<FileInfo> getFileInfos() {
return fileInfos;
}
public StudyInfo setFileInfos(List<FileInfo> fileInfos) {
this.fileInfos = fileInfos;
return this;
}
public Project.Organism getOrganism() {
return organism;
}
public StudyInfo setOrganism(Project.Organism organism) {
this.organism = organism;
return this;
}
}