2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
3 * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
19 package jalview.binding;
21 // ---------------------------------/
22 // - Imported classes and packages -/
23 // ---------------------------------/
25 import org.exolab.castor.xml.Marshaller;
26 import org.exolab.castor.xml.Unmarshaller;
31 * @version $Revision$ $Date$
33 public class VAMSAS implements java.io.Serializable
36 // --------------------------/
37 // - Class/Member Variables -/
38 // --------------------------/
41 * Field _alignmentList.
43 private java.util.Vector _alignmentList;
48 private java.util.Vector _treeList;
51 * Field _sequenceSetList.
53 private java.util.Vector _sequenceSetList;
62 this._alignmentList = new java.util.Vector();
63 this._treeList = new java.util.Vector();
64 this._sequenceSetList = new java.util.Vector();
75 * @throws java.lang.IndexOutOfBoundsException
76 * if the index given is outside the bounds of the collection
78 public void addAlignment(final Alignment vAlignment)
79 throws java.lang.IndexOutOfBoundsException
81 this._alignmentList.addElement(vAlignment);
89 * @throws java.lang.IndexOutOfBoundsException
90 * if the index given is outside the bounds of the collection
92 public void addAlignment(final int index, final Alignment vAlignment)
93 throws java.lang.IndexOutOfBoundsException
95 this._alignmentList.add(index, vAlignment);
101 * @param vSequenceSet
102 * @throws java.lang.IndexOutOfBoundsException
103 * if the index given is outside the bounds of the collection
105 public void addSequenceSet(final SequenceSet vSequenceSet)
106 throws java.lang.IndexOutOfBoundsException
108 this._sequenceSetList.addElement(vSequenceSet);
115 * @param vSequenceSet
116 * @throws java.lang.IndexOutOfBoundsException
117 * if the index given is outside the bounds of the collection
119 public void addSequenceSet(final int index, final SequenceSet vSequenceSet)
120 throws java.lang.IndexOutOfBoundsException
122 this._sequenceSetList.add(index, vSequenceSet);
129 * @throws java.lang.IndexOutOfBoundsException
130 * if the index given is outside the bounds of the collection
132 public void addTree(final java.lang.String vTree)
133 throws java.lang.IndexOutOfBoundsException
135 this._treeList.addElement(vTree);
143 * @throws java.lang.IndexOutOfBoundsException
144 * if the index given is outside the bounds of the collection
146 public void addTree(final int index, final java.lang.String vTree)
147 throws java.lang.IndexOutOfBoundsException
149 this._treeList.add(index, vTree);
153 * Method enumerateAlignment.
155 * @return an Enumeration over all Alignment elements
157 public java.util.Enumeration enumerateAlignment()
159 return this._alignmentList.elements();
163 * Method enumerateSequenceSet.
165 * @return an Enumeration over all SequenceSet elements
167 public java.util.Enumeration enumerateSequenceSet()
169 return this._sequenceSetList.elements();
173 * Method enumerateTree.
175 * @return an Enumeration over all java.lang.String elements
177 public java.util.Enumeration enumerateTree()
179 return this._treeList.elements();
183 * Method getAlignment.
186 * @throws java.lang.IndexOutOfBoundsException
187 * if the index given is outside the bounds of the collection
188 * @return the value of the Alignment at the given index
190 public Alignment getAlignment(final int index)
191 throws java.lang.IndexOutOfBoundsException
193 // check bounds for index
194 if (index < 0 || index >= this._alignmentList.size())
196 throw new IndexOutOfBoundsException("getAlignment: Index value '"
197 + index + "' not in range [0.."
198 + (this._alignmentList.size() - 1) + "]");
201 return (Alignment) _alignmentList.get(index);
205 * Method getAlignment.Returns the contents of the collection in an Array.
207 * Note: Just in case the collection contents are changing in another thread,
208 * we pass a 0-length Array of the correct type into the API call. This way we
209 * <i>know</i> that the Array returned is of exactly the correct length.
211 * @return this collection as an Array
213 public Alignment[] getAlignment()
215 Alignment[] array = new Alignment[0];
216 return (Alignment[]) this._alignmentList.toArray(array);
220 * Method getAlignmentCount.
222 * @return the size of this collection
224 public int getAlignmentCount()
226 return this._alignmentList.size();
230 * Method getSequenceSet.
233 * @throws java.lang.IndexOutOfBoundsException
234 * if the index given is outside the bounds of the collection
235 * @return the value of the SequenceSet at the given index
237 public SequenceSet getSequenceSet(final int index)
238 throws java.lang.IndexOutOfBoundsException
240 // check bounds for index
241 if (index < 0 || index >= this._sequenceSetList.size())
243 throw new IndexOutOfBoundsException("getSequenceSet: Index value '"
244 + index + "' not in range [0.."
245 + (this._sequenceSetList.size() - 1) + "]");
248 return (SequenceSet) _sequenceSetList.get(index);
252 * Method getSequenceSet.Returns the contents of the collection in an Array.
254 * Note: Just in case the collection contents are changing in another thread,
255 * we pass a 0-length Array of the correct type into the API call. This way we
256 * <i>know</i> that the Array returned is of exactly the correct length.
258 * @return this collection as an Array
260 public SequenceSet[] getSequenceSet()
262 SequenceSet[] array = new SequenceSet[0];
263 return (SequenceSet[]) this._sequenceSetList.toArray(array);
267 * Method getSequenceSetCount.
269 * @return the size of this collection
271 public int getSequenceSetCount()
273 return this._sequenceSetList.size();
280 * @throws java.lang.IndexOutOfBoundsException
281 * if the index given is outside the bounds of the collection
282 * @return the value of the java.lang.String at the given index
284 public java.lang.String getTree(final int index)
285 throws java.lang.IndexOutOfBoundsException
287 // check bounds for index
288 if (index < 0 || index >= this._treeList.size())
290 throw new IndexOutOfBoundsException("getTree: Index value '" + index
291 + "' not in range [0.." + (this._treeList.size() - 1) + "]");
294 return (java.lang.String) _treeList.get(index);
298 * Method getTree.Returns the contents of the collection in an Array.
300 * Note: Just in case the collection contents are changing in another thread,
301 * we pass a 0-length Array of the correct type into the API call. This way we
302 * <i>know</i> that the Array returned is of exactly the correct length.
304 * @return this collection as an Array
306 public java.lang.String[] getTree()
308 java.lang.String[] array = new java.lang.String[0];
309 return (java.lang.String[]) this._treeList.toArray(array);
313 * Method getTreeCount.
315 * @return the size of this collection
317 public int getTreeCount()
319 return this._treeList.size();
325 * @return true if this object is valid according to the schema
327 public boolean isValid()
332 } catch (org.exolab.castor.xml.ValidationException vex)
343 * @throws org.exolab.castor.xml.MarshalException
344 * if object is null or if any SAXException is thrown during
346 * @throws org.exolab.castor.xml.ValidationException
347 * if this object is an invalid instance according to the
350 public void marshal(final java.io.Writer out)
351 throws org.exolab.castor.xml.MarshalException,
352 org.exolab.castor.xml.ValidationException
354 Marshaller.marshal(this, out);
361 * @throws java.io.IOException
362 * if an IOException occurs during marshaling
363 * @throws org.exolab.castor.xml.ValidationException
364 * if this object is an invalid instance according to the
366 * @throws org.exolab.castor.xml.MarshalException
367 * if object is null or if any SAXException is thrown during
370 public void marshal(final org.xml.sax.ContentHandler handler)
371 throws java.io.IOException,
372 org.exolab.castor.xml.MarshalException,
373 org.exolab.castor.xml.ValidationException
375 Marshaller.marshal(this, handler);
379 * Method removeAlignment.
382 * @return true if the object was removed from the collection.
384 public boolean removeAlignment(final Alignment vAlignment)
386 boolean removed = _alignmentList.remove(vAlignment);
391 * Method removeAlignmentAt.
394 * @return the element removed from the collection
396 public Alignment removeAlignmentAt(final int index)
398 java.lang.Object obj = this._alignmentList.remove(index);
399 return (Alignment) obj;
404 public void removeAllAlignment()
406 this._alignmentList.clear();
411 public void removeAllSequenceSet()
413 this._sequenceSetList.clear();
418 public void removeAllTree()
420 this._treeList.clear();
424 * Method removeSequenceSet.
426 * @param vSequenceSet
427 * @return true if the object was removed from the collection.
429 public boolean removeSequenceSet(final SequenceSet vSequenceSet)
431 boolean removed = _sequenceSetList.remove(vSequenceSet);
436 * Method removeSequenceSetAt.
439 * @return the element removed from the collection
441 public SequenceSet removeSequenceSetAt(final int index)
443 java.lang.Object obj = this._sequenceSetList.remove(index);
444 return (SequenceSet) obj;
451 * @return true if the object was removed from the collection.
453 public boolean removeTree(final java.lang.String vTree)
455 boolean removed = _treeList.remove(vTree);
460 * Method removeTreeAt.
463 * @return the element removed from the collection
465 public java.lang.String removeTreeAt(final int index)
467 java.lang.Object obj = this._treeList.remove(index);
468 return (java.lang.String) obj;
476 * @throws java.lang.IndexOutOfBoundsException
477 * if the index given is outside the bounds of the collection
479 public void setAlignment(final int index, final Alignment vAlignment)
480 throws java.lang.IndexOutOfBoundsException
482 // check bounds for index
483 if (index < 0 || index >= this._alignmentList.size())
485 throw new IndexOutOfBoundsException("setAlignment: Index value '"
486 + index + "' not in range [0.."
487 + (this._alignmentList.size() - 1) + "]");
490 this._alignmentList.set(index, vAlignment);
496 * @param vAlignmentArray
498 public void setAlignment(final Alignment[] vAlignmentArray)
501 _alignmentList.clear();
503 for (int i = 0; i < vAlignmentArray.length; i++)
505 this._alignmentList.add(vAlignmentArray[i]);
513 * @param vSequenceSet
514 * @throws java.lang.IndexOutOfBoundsException
515 * if the index given is outside the bounds of the collection
517 public void setSequenceSet(final int index, final SequenceSet vSequenceSet)
518 throws java.lang.IndexOutOfBoundsException
520 // check bounds for index
521 if (index < 0 || index >= this._sequenceSetList.size())
523 throw new IndexOutOfBoundsException("setSequenceSet: Index value '"
524 + index + "' not in range [0.."
525 + (this._sequenceSetList.size() - 1) + "]");
528 this._sequenceSetList.set(index, vSequenceSet);
534 * @param vSequenceSetArray
536 public void setSequenceSet(final SequenceSet[] vSequenceSetArray)
539 _sequenceSetList.clear();
541 for (int i = 0; i < vSequenceSetArray.length; i++)
543 this._sequenceSetList.add(vSequenceSetArray[i]);
552 * @throws java.lang.IndexOutOfBoundsException
553 * if the index given is outside the bounds of the collection
555 public void setTree(final int index, final java.lang.String vTree)
556 throws java.lang.IndexOutOfBoundsException
558 // check bounds for index
559 if (index < 0 || index >= this._treeList.size())
561 throw new IndexOutOfBoundsException("setTree: Index value '" + index
562 + "' not in range [0.." + (this._treeList.size() - 1) + "]");
565 this._treeList.set(index, vTree);
573 public void setTree(final java.lang.String[] vTreeArray)
578 for (int i = 0; i < vTreeArray.length; i++)
580 this._treeList.add(vTreeArray[i]);
588 * @throws org.exolab.castor.xml.MarshalException
589 * if object is null or if any SAXException is thrown during
591 * @throws org.exolab.castor.xml.ValidationException
592 * if this object is an invalid instance according to the
594 * @return the unmarshaled jalview.binding.VAMSAS
596 public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
597 throws org.exolab.castor.xml.MarshalException,
598 org.exolab.castor.xml.ValidationException
600 return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
601 jalview.binding.VAMSAS.class, reader);
607 * @throws org.exolab.castor.xml.ValidationException
608 * if this object is an invalid instance according to the
611 public void validate() throws org.exolab.castor.xml.ValidationException
613 org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
614 validator.validate(this);