X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FCigarArray.java;h=8315166f6fdbb3eed3cc8fb5221c4f1ba4f3044f;hb=b2f9a8d7bce642ff4011bc6d49e02bb0569fbb11;hp=b8cdf52232e2d6aee46e05d608609bf8c0abb160;hpb=98a71b36e29f88a1aba4b00c1f8c7099152c7307;p=jalview.git diff --git a/src/jalview/datamodel/CigarArray.java b/src/jalview/datamodel/CigarArray.java index b8cdf52..8315166 100644 --- a/src/jalview/datamodel/CigarArray.java +++ b/src/jalview/datamodel/CigarArray.java @@ -1,174 +1,397 @@ -package jalview.datamodel; - -public class CigarArray extends CigarBase -{ - /** - * Do CIGAR operations on a set of sequences from many other cigars - * BAD THINGS WILL HAPPEN IF A CIGARARRAY IS PASSED TO A CIGARARRAY - * or a CIGARCIGAR is given a CIGARARRAY to insert gaps into. - */ - /** - * array of subject cigars - */ - public CigarSimple refCigars[]=null; - private boolean seqcigararray=false; - private CigarArray() { - super(); - } - - /** - * isSeqCigarArray() - * @return boolean true if all refCigars resolve to a SeqCigar or a CigarCigar - */ - public boolean isSeqCigarArray() - { - return seqcigararray; - } - /** - * Apply CIGAR operations to several cigars in parallel - * will throw an error if any of cigar are actually CigarArrays. - * @param cigar Cigar[] - */ - public CigarArray(CigarSimple[] cigars) { - super(); - seqcigararray = true; - if (cigars != null && cigars.length > 0) - { - refCigars = new CigarSimple[cigars.length]; - for (int c = 0; c < cigars.length; c++) - { - refCigars[c] = cigars[c]; - if (! ( (cigars[c] instanceof SeqCigar) - || cigars[c] instanceof CigarCigar)) - { - seqcigararray = false; - } - } - } - } - /** - * @see Cigar.getSequenceAndDeletions - * @param GapChar char - * @return Object[][] - */ - protected Object[][] getArrayofSequenceAndDeletions(char GapChar) { - if (refCigars == null || refCigars.length == 0 || length == 0) { - return null; - } - Object[][] sqanddels = new Object[refCigars.length][]; - for (int c=0; c