+ Hashtable sqinfo = new Hashtable();
+ sqinfo.put("Name", seq.getName());
+ sqinfo.put("Start", new Integer(seq.getStart()));
+ sqinfo.put("End", new Integer(seq.getEnd()));
+ if (seq.getDescription()!=null)
+ sqinfo.put("Description", seq.getDescription());
+ Vector sfeat = new Vector();
+ jalview.datamodel.SequenceFeature[] sfarray=seq.getSequenceFeatures();
+ if (sfarray!=null && sfarray.length>0) {
+ for (int i=0;i<sfarray.length;i++)
+ sfeat.add(sfarray[i]);
+ }
+ sqinfo.put("SeqFeatures", sfeat);
+ sqinfo.put("PdbId",
+ (seq.getPDBId() != null) ? seq.getPDBId() : new Vector());
+ sqinfo.put("datasetSequence", (seq.getDatasetSequence() !=null) ? seq.getDatasetSequence() : new Sequence("THISISAPLACEHOLDER",""));
+ return sqinfo;
+ }
+
+ /**
+ * Recover essential properties of a sequence from a hashtable
+ * TODO: replace these methods with something more elegant.
+ * @param sq SequenceI
+ * @param sqinfo Hashtable
+ * @return boolean true if name was not updated from sqinfo Name entry
+ */
+ public static boolean SeqCharacterUnhash(SequenceI sq, Hashtable sqinfo)
+ {
+ boolean namePresent = true;
+ if (sqinfo==null)
+ return false;
+ String oldname = (String) sqinfo.get("Name");
+ Integer start = (Integer) sqinfo.get("Start");
+ Integer end = (Integer) sqinfo.get("End");
+ Vector sfeatures = (Vector) sqinfo.get(
+ "SeqFeatures");
+ Vector pdbid = (Vector) sqinfo.get("PdbId");
+ String description=(String) sqinfo.get("Description");
+ Sequence seqds = (Sequence) sqinfo.get("datasetSequence");
+ if (oldname == null)