package org.nextprot.api.core.utils.exon; import org.nextprot.api.core.domain.AminoAcid; import org.nextprot.api.core.domain.Exon; /** * A logger for TranscriptExonsAnalyser * * Created by fnikitin on 22/07/15. */ public class ExonsAnalysisLogger implements ExonsAnalysisListener { private StringBuilder sb; @Override public void started() { sb = new StringBuilder(); } @Override public void startedExon(Exon exon) {} @Override public void analysedCodingExon(Exon exon, AminoAcid first, AminoAcid last, ExonCategory category) { sb.append(first.getBase()).append("").append(first.getPosition()).append("(+").append(first.getPhase()).append(")-"); sb.append(category).append("-").append(last.getBase()).append("").append(last.getPosition()).append("(+").append(last.getPhase()).append(") "); } @Override public void analysedCodingExonFailed(Exon exon, ExonOutOfBoundError exonOutOfBoundError) { AminoAcid first = exonOutOfBoundError.getFirst(); if (exonOutOfBoundError.getAminoAcidOutOfBound() == ExonOutOfBoundError.AminoAcidOutOfBound.LAST) { sb.append(first.getBase()).append("").append(first.getPosition()).append("(+").append(first.getPhase()).append(")-"); sb.append("ERROR-?(" + (exonOutOfBoundError.getLast().getPosition()-1) + ">=" + exonOutOfBoundError.getIsoformLength() + "!)"); } else { sb.append("?(" + (first.getPosition()-1) + ">=" + exonOutOfBoundError.getIsoformLength() + "!)-ERROR-..."); } } @Override public void analysedNonCodingExon(Exon exon, ExonCategory category) { sb.append(category.getTypeString()).append(" "); } @Override public void terminated(Exon exon) {} @Override public void terminated() {} public String getLog() { return sb.toString(); } }