package org.genedb.web.mvc.controller.download;
import org.genedb.web.utils.DownloadUtils;
import org.gmod.schema.feature.TopLevelFeature;
import org.gmod.schema.feature.Transcript;
import org.apache.log4j.Logger;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.List;
public class OutputManager {
private static Logger logger = Logger.getLogger(OutputManager.class);
private OutputFormat outputFormat;
private OutputContent outputContent;
public OutputManager(OutputFormat outputFormat, OutputContent outputContent) {
super();
this.outputFormat = outputFormat;
this.outputContent = outputContent;
}
public void write(TopLevelFeature feature, PrintWriter w) {
if (!feature.isTopLevelFeature()) {
logger.error(String.format("The feature '%s' isn't actually a top level feature", feature.getUniqueName()));
return;
}
switch (outputFormat) {
case FASTA:
fastaOutput(feature, w);
break;
}
}
private void fastaOutput(TopLevelFeature feature, PrintWriter out) {
switch(outputContent) {
case ALL:
DownloadUtils.writeFasta(out, feature.getUniqueName(), feature.getResidues());
return;
case TRANSCRIPT:
List<Transcript> transcripts = null;//feature.getLocatedChildrenByClass(Transcript.class);
for (Transcript transcript : transcripts) {
DownloadUtils.writeFasta(out, feature.getUniqueName(), feature.getResidues());
}
return;
}
}
}