X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2Fvamsas%2FRangetype.java;h=786a46b86949e21181e932acf37bf3217386a076;hb=a1984b1c8c273ed33c7ce9283039f4027dcae2de;hp=169eae13414a8fcac08fa8a20dc4c9a8a08f35a7;hpb=2de8acfae59aced665e4c37ad0f7dcc2ed68818e;p=jalview.git diff --git a/src/jalview/io/vamsas/Rangetype.java b/src/jalview/io/vamsas/Rangetype.java index 169eae1..786a46b 100644 --- a/src/jalview/io/vamsas/Rangetype.java +++ b/src/jalview/io/vamsas/Rangetype.java @@ -1,39 +1,45 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1) - * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * - * 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 file is part of Jalview. * - * 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. + * Jalview 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 3 + * of the License, or (at your option) any later version. + * + * Jalview 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 + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.io.vamsas; +import jalview.bin.Cache; +import jalview.io.VamsasAppDatastore; +import jalview.util.MessageManager; + +import java.util.List; import java.util.Vector; import uk.ac.vamsas.client.Vobject; import uk.ac.vamsas.objects.core.Local; -import uk.ac.vamsas.objects.core.Map; import uk.ac.vamsas.objects.core.MapType; import uk.ac.vamsas.objects.core.Mapped; import uk.ac.vamsas.objects.core.RangeType; import uk.ac.vamsas.objects.core.Seg; -import jalview.datamodel.DBRefEntry; -import jalview.datamodel.Mapping; -import jalview.io.VamsasAppDatastore; + /** - * Enhances DatastoreItem objects with additional functions to do with RangeType objects + * Enhances DatastoreItem objects with additional functions to do with RangeType + * objects + * * @author JimP - * + * */ public abstract class Rangetype extends DatastoreItem { @@ -47,11 +53,13 @@ public abstract class Rangetype extends DatastoreItem { super(datastore); } - - public Rangetype(VamsasAppDatastore datastore, Vobject vobj, Class jvClass) + + public Rangetype(VamsasAppDatastore datastore, Vobject vobj, + Class jvClass) { super(datastore, vobj, jvClass); } + public Rangetype(VamsasAppDatastore datastore, Object jvobj, Class vClass) { super(datastore, jvobj, vClass); @@ -72,8 +80,8 @@ public abstract class Rangetype extends DatastoreItem int[] se = null; if (dseta.getSegCount() > 0 && dseta.getPosCount() > 0) { - throw new Error( - "Invalid vamsas RangeType - cannot resolve both lists of Pos and Seg from choice!"); + throw new Error(MessageManager.getString( + "error.invalid_vamsas_rangetype_cannot_resolve_lists")); } if (dseta.getSegCount() > 0) { @@ -96,8 +104,7 @@ public abstract class Rangetype extends DatastoreItem // could do a polarity for pos range too. and pass back indication of // discontinuities. int pos = dseta.getPos(0).getI(); - se = new int[] - { pos, pos }; + se = new int[] { pos, pos }; for (int p = 0, pSize = dseta.getPosCount(); p < pSize; p++) { pos = dseta.getPos(p).getI(); @@ -131,8 +138,8 @@ public abstract class Rangetype extends DatastoreItem int[] se = null; if (dseta.getSegCount() > 0 && dseta.getPosCount() > 0) { - throw new Error( - "Invalid vamsas RangeType - cannot resolve both lists of Pos and Seg from choice!"); + throw new Error(MessageManager.getString( + "error.invalid_vamsas_rangetype_cannot_resolve_lists")); } if (dseta.getSegCount() > 0) { @@ -142,7 +149,7 @@ public abstract class Rangetype extends DatastoreItem int se_end = se[1 - se[2]] + (se[2] == 0 ? 1 : -1); for (int p = se[se[2]]; p != se_end; p += se[2] == 0 ? 1 : -1) { - posList.add(new Integer(p)); + posList.add(Integer.valueOf(p)); } } } @@ -153,7 +160,7 @@ public abstract class Rangetype extends DatastoreItem for (int p = 0, pSize = dseta.getPosCount(); p < pSize; p++) { pos = dseta.getPos(p).getI(); - posList.add(new Integer(pos)); + posList.add(Integer.valueOf(pos)); } } } @@ -179,16 +186,16 @@ public abstract class Rangetype extends DatastoreItem int[] se = null; if (range.getSegCount() > 0 && range.getPosCount() > 0) { - throw new Error( - "Invalid vamsas RangeType - cannot resolve both lists of Pos and Seg from choice!"); + throw new Error(MessageManager.getString( + "error.invalid_vamsas_rangetype_cannot_resolve_lists")); } if (range.getSegCount() > 0) { for (int s = 0, sSize = range.getSegCount(); s < sSize; s++) { se = getSegRange(range.getSeg(s), false); - posList.addElement(new Integer(se[0])); - posList.addElement(new Integer(se[1])); + posList.addElement(Integer.valueOf(se[0])); + posList.addElement(Integer.valueOf(se[1])); } } else if (range.getPosCount() > 0) @@ -198,8 +205,8 @@ public abstract class Rangetype extends DatastoreItem for (int p = 0, pSize = range.getPosCount(); p < pSize; p++) { pos = range.getPos(p).getI(); - posList.add(new Integer(pos)); - posList.add(new Integer(pos)); + posList.add(Integer.valueOf(pos)); + posList.add(Integer.valueOf(pos)); } } } @@ -220,15 +227,15 @@ public abstract class Rangetype extends DatastoreItem * initialise a range type object from a set of start/end inclusive intervals * * @param mrt - * @param range + * @param ranges */ - protected void initRangeType(RangeType mrt, int[] range) + protected void initRangeType(RangeType mrt, List ranges) { - for (int i = 0; i < range.length; i += 2) + for (int[] range : ranges) { Seg vSeg = new Seg(); - vSeg.setStart(range[i]); - vSeg.setEnd(range[i + 1]); + vSeg.setStart(range[0]); + vSeg.setEnd(range[1]); vSeg.setInclusive(true); mrt.addSeg(vSeg); } @@ -237,12 +244,12 @@ public abstract class Rangetype extends DatastoreItem /** * * @param maprange - * where the from range is the local mapped range, and the to - * range is the 'mapped' range in the MapRangeType + * where the from range is the local mapped range, and the to range + * is the 'mapped' range in the MapRangeType * @param default - * unit for local + * unit for local * @param default - * unit for mapped + * unit for mapped * @return MapList */ protected jalview.util.MapList parsemapType(MapType maprange, int localu, @@ -253,8 +260,9 @@ public abstract class Rangetype extends DatastoreItem int[] mappedRange = getIntervals(maprange.getMapped()); long lu = maprange.getLocal().hasUnit() ? maprange.getLocal().getUnit() : localu; - long mu = maprange.getMapped().hasUnit() ? maprange.getMapped() - .getUnit() : mappedu; + long mu = maprange.getMapped().hasUnit() + ? maprange.getMapped().getUnit() + : mappedu; ml = new jalview.util.MapList(localRange, mappedRange, (int) lu, (int) mu); return ml; @@ -264,8 +272,7 @@ public abstract class Rangetype extends DatastoreItem { if (!map.getLocal().hasUnit() || map.getMapped().hasUnit()) { - jalview.bin.Cache.log - .warn("using default mapping length of 1:1 for map " + Cache.warn("using default mapping length of 1:1 for map " + (map.isRegistered() ? map.getVorbaId().toString() : (" " + map.toString()))); } @@ -290,9 +297,8 @@ public abstract class Rangetype extends DatastoreItem * @param maprange * @param ml * @param setUnits - * @param reverse - - * reverse MapList mapping for Local and Mapped ranges and - * units + * @param reverse + * - reverse MapList mapping for Local and Mapped ranges and units */ protected void initMapType(MapType maprange, jalview.util.MapList ml, boolean setUnits, boolean reverse) @@ -326,6 +332,10 @@ public abstract class Rangetype extends DatastoreItem maprange.getLocal().setUnit(ml.getToRatio()); maprange.getMapped().setUnit(ml.getFromRatio()); } + // TODO: and verify - raise an implementation fault notice if local/mapped + // range % Local/Mapped Ratio != 0 + // if (uk.ac.vamsas.objects.utils.Range.getIntervals(range)) + } }