X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FCigarArray.java;h=529891f6dacfdd3a1ae14fb8eca77600fa4f7df7;hb=2e7da637a195ff484f92a333675284f071657cd6;hp=9b60e566929ade7150328476a74cacf45f8557dd;hpb=174230b4233d9ce80f94527768d2cd2f76da11ab;p=jalview.git diff --git a/src/jalview/datamodel/CigarArray.java b/src/jalview/datamodel/CigarArray.java index 9b60e56..529891f 100644 --- a/src/jalview/datamodel/CigarArray.java +++ b/src/jalview/datamodel/CigarArray.java @@ -1,206 +1,399 @@ -/* - * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ -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