package net.sourceforge.seqware.pipeline.plugins.filelinker;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class FileLinkerLine {
private static final Logger LOG = LoggerFactory.getLogger(FileLinkerLine.class);
private String sequencerRun;
private String sample;
private Integer lane;
private Integer seqwareAccession;
private String fileStatus;
private String mimeType;
private String filename;
private Long size;
private String md5sum;
public String getSequencerRun() {
return sequencerRun;
}
public void setSequencerRun(String sequencerRun) {
this.sequencerRun = sequencerRun;
}
public String getSample() {
return sample;
}
public void setSample(String sample) {
this.sample = sample;
}
public Integer getLane() {
return lane;
}
public void setLane(Integer lane) {
this.lane = lane;
}
public Integer getSeqwareAccession() {
return seqwareAccession;
}
public void setSeqwareAccession(Integer seqwareAccession) {
this.seqwareAccession = seqwareAccession;
}
public String getFileStatus() {
return fileStatus;
}
public void setFileStatus(String fileStatus) {
this.fileStatus = fileStatus;
}
public String getMimeType() {
return mimeType;
}
public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public Long getSize() {
return size;
}
public void setSize(Long size) {
this.size = size;
}
public String getMd5sum() {
return md5sum;
}
public void setMd5sum(String md5sum) {
this.md5sum = md5sum;
}
public void setLaneString(String laneString) {
if (!StringUtils.isBlank(laneString)) {
try {
setLane(Integer.parseInt(laneString));
} catch (NumberFormatException e) {
// log.error("The lane [{}] is not a valid integer value. {}", laneString, e);
// this can be ignored, FileLinker does not require lane
}
}
}
public void setSeqwareAccessionString(String seqwareAccessionString) {
if (!StringUtils.isBlank(seqwareAccessionString)) {
try {
setSeqwareAccession(Integer.parseInt(seqwareAccessionString));
} catch (NumberFormatException e) {
LOG.error("The SeqWare accession number [{}] is not a valid integer value. {}", seqwareAccessionString, e);
}
}
}
public void setSizeString(String sizeString) {
if (!StringUtils.isBlank(sizeString)) {
try {
setSize(Long.parseLong(sizeString));
} catch (NumberFormatException e) {
LOG.error("The size [{}] is not a valid integer value. {}", sizeString, e);
}
}
}
public boolean hasRequiredValues() {
return seqwareAccession != null && !StringUtils.isBlank(mimeType) && !StringUtils.isBlank(filename);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("FileLinkerLine:{");
sb.append("sequencerRun=").append(sequencerRun);
sb.append(", sample=").append(sample);
sb.append(", lane=").append(lane);
sb.append(", seqwareAccession=").append(seqwareAccession);
sb.append(", fileStatus=").append(fileStatus);
sb.append(", mimeType=").append(mimeType);
sb.append(", filename=").append(filename);
sb.append(", size=").append(size);
sb.append(", md5sum=").append(md5sum);
sb.append("}");
return sb.toString();
}
}