package org.nextprot.api.core.utils.exon;
import org.nextprot.api.core.domain.AminoAcid;
/**
* An exon out of bound error
*
* Created by fnikitin on 28/07/15.
*/
public class ExonOutOfBoundError {
public enum AminoAcidOutOfBound {FIRST, LAST};
private final AminoAcid first;
private final AminoAcid last;
private final AminoAcidOutOfBound aminoAcidOutOfBound;
private final int isoformLength;
public ExonOutOfBoundError(AminoAcid first, AminoAcid last, AminoAcidOutOfBound aminoAcidOutOfBound, int isoformLength) {
this.first = first;
this.last = last;
this.aminoAcidOutOfBound = aminoAcidOutOfBound;
this.isoformLength = isoformLength;
}
public int getIsoformLength() {
return isoformLength;
}
public AminoAcid getFirst() {
return first;
}
public AminoAcid getLast() {
return last;
}
public AminoAcid getOutOfBoundAminoAcid() {
return (aminoAcidOutOfBound == AminoAcidOutOfBound.FIRST) ? first : last;
}
public AminoAcid getInBoundAminoAcid() {
return (aminoAcidOutOfBound == AminoAcidOutOfBound.FIRST) ? last : first;
}
public AminoAcidOutOfBound getAminoAcidOutOfBound() {
return aminoAcidOutOfBound;
}
}