package org.nextprot.api.commons.bio.variation.prot.impl.seqchange; import com.google.common.base.Preconditions; import org.nextprot.api.commons.bio.AminoAcidCode; import org.nextprot.api.commons.bio.variation.prot.seqchange.SequenceChange; import java.util.Arrays; /** * Insertions add one or more aas after one existing aa * * Created by fnikitin on 10/07/15. */ public class Insertion implements SequenceChange<AminoAcidCode[]> { private final int insertAfterPos; private final AminoAcidCode[] insertedAminoAcids; public Insertion(int insertAfterPos, AminoAcidCode... insertedAminoAcids) { Preconditions.checkNotNull(insertedAminoAcids); Preconditions.checkArgument(insertedAminoAcids.length > 0); Preconditions.checkArgument(insertAfterPos>=0); this.insertedAminoAcids = insertedAminoAcids; this.insertAfterPos = insertAfterPos; } /** * @return a copy of aas array */ @Override public AminoAcidCode[] getValue() { return Arrays.copyOf(insertedAminoAcids, insertedAminoAcids.length); } @Override public Type getType() { return Type.INSERTION; } public int getInsertAfterPos() { return insertAfterPos; } }