X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FVamsasAppDatastore.java;h=735f415206a55d692ab1c67532b4a21172b850c7;hb=3eef76298c55f3def21eed2516b5ace4405bed0a;hp=1d0b463a3aaad1acd2a6eb238bbb655b447f0473;hpb=362f2db1b01f3562784864a1d6ac5f7b9be0a18a;p=jalview.git diff --git a/src/jalview/io/VamsasAppDatastore.java b/src/jalview/io/VamsasAppDatastore.java index 1d0b463..735f415 100644 --- a/src/jalview/io/VamsasAppDatastore.java +++ b/src/jalview/io/VamsasAppDatastore.java @@ -1,18 +1,18 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle - * + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle + * * This file is part of Jalview. - * + * * Jalview is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License + * 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 + * + * 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 Jalview. If not, see . */ package jalview.io; @@ -20,11 +20,7 @@ package jalview.io; import jalview.bin.Cache; import jalview.datamodel.AlignedCodonFrame; import jalview.datamodel.AlignmentAnnotation; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.AlignmentView; -import jalview.datamodel.DBRefEntry; import jalview.datamodel.GraphLine; -import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; import jalview.gui.AlignViewport; @@ -34,14 +30,13 @@ import jalview.io.vamsas.Datasetsequence; import jalview.io.vamsas.DatastoreItem; import jalview.io.vamsas.DatastoreRegistry; import jalview.io.vamsas.Rangetype; -import jalview.util.UrlLink; - import java.io.IOException; import java.util.Enumeration; import java.util.HashMap; import java.util.Hashtable; import java.util.IdentityHashMap; import java.util.Iterator; +import java.util.List; import java.util.Vector; import java.util.jar.JarInputStream; import java.util.jar.JarOutputStream; @@ -51,14 +46,14 @@ import uk.ac.vamsas.objects.core.*; import uk.ac.vamsas.objects.utils.Properties; /* - * + * * static { * org.exolab.castor.util.LocalConfiguration.getInstance().getProperties().setProperty( * "org.exolab.castor.serializer", "org.apache.xml.serialize.XMLSerilazizer"); } - * + * */ /* - * TODO: check/verify consistency for vamsas sync with group associated alignment annotation + * TODO: check/verify consistency for vamsas sync with group associated alignment annotation */ public class VamsasAppDatastore { @@ -183,7 +178,7 @@ public class VamsasAppDatastore } /** - * + * * @param vobj * @return Jalview datamodel object bound to the vamsas document object */ @@ -250,7 +245,7 @@ public class VamsasAppDatastore /** * put the alignment viewed by AlignViewport into cdoc. - * + * * @param av * alignViewport to be stored * @param aFtitle @@ -491,14 +486,14 @@ public class VamsasAppDatastore /* * We do not put local Alignment Sequence Features into the vamsas * document yet. - * - * + * + * * jalview.datamodel.SequenceFeature[] features = alseq * .getSequenceFeatures(); for (int f = 0; f < features.length; f++) { * if (features[f] != null) { AlignmentSequenceAnnotation valseqf = ( * AlignmentSequenceAnnotation) getjv2vObj(features[i]); if (valseqf * == null) { - * + * * valseqf = (AlignmentSequenceAnnotation) getDSAnnotationFromJalview( * new AlignmentSequenceAnnotation(), features[i]); * valseqf.setGraph(false); @@ -546,12 +541,7 @@ public class VamsasAppDatastore else { // first find the alignment sequence to associate this with. - SequenceI jvalsq = null; - Enumeration jval = av.getAlignment().getSequences() - .elements(); - while (jval.hasMoreElements()) - { - jvalsq = (SequenceI) jval.nextElement(); + for (SequenceI jvalsq:av.getAlignment().getSequences()) { // saveDatasetSequenceAnnotation(AlSeqMaps,(uk.ac.vamsas.objects.core.Sequence) // sref, aa[i]); if (jvalsq.getDatasetSequence() == aa[i].sequenceRef) @@ -729,7 +719,7 @@ public class VamsasAppDatastore * very quick test to see if the viewport would be stored in the vamsas * document. Reasons for not storing include the unaligned flag being false * (for all sequences, including the hidden ones!) - * + * * @param av * @return true if alignment associated with this view will be stored in * document. @@ -751,7 +741,7 @@ public class VamsasAppDatastore /** * remove docseqs from the given alignment marking provenance appropriately * and removing any references to the sequences. - * + * * @param alignment * @param docseqs */ @@ -819,7 +809,7 @@ public class VamsasAppDatastore * vamsas alignment sequence for jvalsq and adds it to the alignment if * necessary. unbounddocseq is a duplicate of the vamsas alignment sequences * and these are removed after being processed w.r.t a bound jvalsq - * + * */ private boolean syncToAlignmentSequence(SequenceI jvalsq, Alignment alignment, Vector unbounddocseq) @@ -884,7 +874,7 @@ public class VamsasAppDatastore * creates/syncs the jvalsq from the alignment sequence */ private boolean syncFromAlignmentSequence(AlignmentSequence valseq, - char valGapchar, char gapChar, Vector dsseqs) + char valGapchar, char gapChar, List dsseqs) { boolean modal = false; @@ -1168,7 +1158,7 @@ public class VamsasAppDatastore /** * set vamsas annotation object type from jalview annotation - * + * * @param an * @param alan */ @@ -1216,7 +1206,7 @@ public class VamsasAppDatastore /** * get start VorbaID * binding tables - * + * * @param oldjvobject * @param newjvobject * (may be null) @@ -1472,6 +1466,7 @@ public class VamsasAppDatastore Object vobject = jv2vobj.remove(oldjvobject); if (vobject == null) { + // NOTE: this happens if user deletes object in one session then updates from another client throw new Error( "IMPLEMENTATION ERROR: old jalview object is not bound ! (" + oldjvobject + ")"); @@ -1520,7 +1515,7 @@ public class VamsasAppDatastore /** * translate the Vobject keys to strings for use in Jalview2XML - * + * * @param jv2vobj2 * @return */ @@ -1538,7 +1533,7 @@ public class VamsasAppDatastore /** * translate the Vobject values to strings for use in Jalview2XML - * + * * @param vobj2jv2 * @return hashtable with string values */ @@ -1556,7 +1551,7 @@ public class VamsasAppDatastore /** * synchronize Jalview from the vamsas document - * + * * @return number of new views from document */ public int updateToJalview() @@ -1573,7 +1568,7 @@ public class VamsasAppDatastore // ///LOAD DATASET DataSet dataset = root.getDataSet(_ds); int i, iSize = dataset.getSequenceCount(); - Vector dsseqs; + List dsseqs; jalview.datamodel.Alignment jdataset = (jalview.datamodel.Alignment) getvObj2jv(dataset); int jremain = 0; if (jdataset == null) @@ -1620,8 +1615,8 @@ public class VamsasAppDatastore SequenceI[] seqs = new SequenceI[dsseqs.size()]; for (i = 0, iSize = dsseqs.size(); i < iSize; i++) { - seqs[i] = (SequenceI) dsseqs.elementAt(i); - dsseqs.setElementAt(null, i); + seqs[i] = dsseqs.get(i); + dsseqs.set(i, null); } jdataset = new jalview.datamodel.Alignment(seqs); Cache.log.debug("New vamsas dataset imported into jalview."); @@ -1782,8 +1777,8 @@ public class VamsasAppDatastore SequenceI[] seqs = new SequenceI[dsseqs.size()]; for (i = 0, iSize = dsseqs.size(); i < iSize; i++) { - seqs[i] = (SequenceI) dsseqs.elementAt(i); - dsseqs.setElementAt(null, i); + seqs[i] = dsseqs.get(i); + dsseqs.set(i,null); } jal = new jalview.datamodel.Alignment(seqs); Cache.log.debug("New vamsas alignment imported into jalview " @@ -1987,7 +1982,7 @@ public class VamsasAppDatastore * jalview.datamodel.Annotation[] rows Two annotation rows are made if there * are distinct annotation for both at 'pos' and 'after pos' at any particular * site. - * + * * @param annotation * @return { boolean[static int constants ], int[ae.length] - map to annotated * object frame, jalview.datamodel.Annotation[], @@ -2405,7 +2400,7 @@ public class VamsasAppDatastore * get real bounds of a RangeType's specification. start and end are an * inclusive range within which all segments and positions lie. TODO: refactor * to vamsas utils - * + * * @param dseta * @return int[] { start, end} */ @@ -2463,7 +2458,7 @@ public class VamsasAppDatastore /** * map from a rangeType's internal frame to the referenced object's coordinate * frame. - * + * * @param dseta * @return int [] { ref(pos)...} for all pos in rangeType's frame. */ @@ -2515,7 +2510,7 @@ public class VamsasAppDatastore } /** - * + * * @param maprange * where the from range is the local mapped range, and the to range * is the 'mapped' range in the MapRangeType @@ -2540,7 +2535,7 @@ public class VamsasAppDatastore /** * initialise a range type object from a set of start/end inclusive intervals - * + * * @param mrt * @param range */ @@ -2557,7 +2552,7 @@ public class VamsasAppDatastore /** * initialise a MapType object from a MapList object. - * + * * @param maprange * @param ml * @param setUnits @@ -2582,12 +2577,12 @@ public class VamsasAppDatastore * App and Action here. Provenance prov = new Provenance(); * org.exolab.castor.types.Date date = new org.exolab.castor.types.Date( new * java.util.Date()); Entry provEntry; - * + * * if (jprov != null) { entries = jprov.getEntries(); for (int i = 0; i < * entries.length; i++) { provEntry = new Entry(); try { date = new * org.exolab.castor.types.Date(entries[i].getDate()); } catch (Exception ex) * { ex.printStackTrace(); - * + * * date = new org.exolab.castor.types.Date(entries[i].getDate()); } * provEntry.setDate(date); provEntry.setUser(entries[i].getUser()); * provEntry.setAction(entries[i].getAction()); prov.addEntry(provEntry); } } @@ -2595,7 +2590,7 @@ public class VamsasAppDatastore * provEntry.setUser(System.getProperty("user.name")); // TODO: ext string * provEntry.setApp("JVAPP"); // TODO: ext string provEntry.setAction(action); * prov.addEntry(provEntry); } - * + * * return prov; } */ jalview.datamodel.Provenance getJalviewProvenance(Provenance prov) @@ -2613,7 +2608,7 @@ public class VamsasAppDatastore } /** - * + * * @return default initial provenance list for a Jalview created vamsas * object. */