X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FCigarArray.java;h=78d34edd07f0435c43ce9b1f541c0678ec35d5eb;hb=a45774ee31d9f35d4eff46d54d7deab719afb092;hp=8961425031ee64d06dfc87116c4b0234f95f1798;hpb=7570956d4b58f313d402cdd0507737c0628f1544;p=jalview.git diff --git a/src/jalview/datamodel/CigarArray.java b/src/jalview/datamodel/CigarArray.java index 8961425..78d34ed 100644 --- a/src/jalview/datamodel/CigarArray.java +++ b/src/jalview/datamodel/CigarArray.java @@ -1,174 +1,379 @@ -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