2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
3 * Copyright (C) 2014 The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
21 package jalview.binding;
23 //---------------------------------/
24 //- Imported classes and packages -/
25 //---------------------------------/
27 import org.exolab.castor.xml.Marshaller;
28 import org.exolab.castor.xml.Unmarshaller;
33 * @version $Revision$ $Date$
35 public class VAMSAS implements java.io.Serializable
38 // --------------------------/
39 // - Class/Member Variables -/
40 // --------------------------/
43 * Field _alignmentList.
45 private java.util.Vector _alignmentList;
50 private java.util.Vector _treeList;
53 * Field _sequenceSetList.
55 private java.util.Vector _sequenceSetList;
64 this._alignmentList = new java.util.Vector();
65 this._treeList = new java.util.Vector();
66 this._sequenceSetList = new java.util.Vector();
77 * @throws java.lang.IndexOutOfBoundsException
78 * if the index given is outside the bounds of the collection
80 public void addAlignment(final Alignment vAlignment)
81 throws java.lang.IndexOutOfBoundsException
83 this._alignmentList.addElement(vAlignment);
91 * @throws java.lang.IndexOutOfBoundsException
92 * if the index given is outside the bounds of the collection
94 public void addAlignment(final int index, final Alignment vAlignment)
95 throws java.lang.IndexOutOfBoundsException
97 this._alignmentList.add(index, vAlignment);
103 * @param vSequenceSet
104 * @throws java.lang.IndexOutOfBoundsException
105 * if the index given is outside the bounds of the collection
107 public void addSequenceSet(final SequenceSet vSequenceSet)
108 throws java.lang.IndexOutOfBoundsException
110 this._sequenceSetList.addElement(vSequenceSet);
117 * @param vSequenceSet
118 * @throws java.lang.IndexOutOfBoundsException
119 * if the index given is outside the bounds of the collection
121 public void addSequenceSet(final int index, final SequenceSet vSequenceSet)
122 throws java.lang.IndexOutOfBoundsException
124 this._sequenceSetList.add(index, vSequenceSet);
131 * @throws java.lang.IndexOutOfBoundsException
132 * if the index given is outside the bounds of the collection
134 public void addTree(final java.lang.String vTree)
135 throws java.lang.IndexOutOfBoundsException
137 this._treeList.addElement(vTree);
145 * @throws java.lang.IndexOutOfBoundsException
146 * if the index given is outside the bounds of the collection
148 public void addTree(final int index, final java.lang.String vTree)
149 throws java.lang.IndexOutOfBoundsException
151 this._treeList.add(index, vTree);
155 * Method enumerateAlignment.
157 * @return an Enumeration over all Alignment elements
159 public java.util.Enumeration enumerateAlignment()
161 return this._alignmentList.elements();
165 * Method enumerateSequenceSet.
167 * @return an Enumeration over all SequenceSet elements
169 public java.util.Enumeration enumerateSequenceSet()
171 return this._sequenceSetList.elements();
175 * Method enumerateTree.
177 * @return an Enumeration over all java.lang.String elements
179 public java.util.Enumeration enumerateTree()
181 return this._treeList.elements();
185 * Method getAlignment.
188 * @throws java.lang.IndexOutOfBoundsException
189 * if the index given is outside the bounds of the collection
190 * @return the value of the Alignment at the given index
192 public Alignment getAlignment(final int index)
193 throws java.lang.IndexOutOfBoundsException
195 // check bounds for index
196 if (index < 0 || index >= this._alignmentList.size())
198 throw new IndexOutOfBoundsException("getAlignment: Index value '"
199 + index + "' not in range [0.."
200 + (this._alignmentList.size() - 1) + "]");
203 return (Alignment) _alignmentList.get(index);
207 * Method getAlignment.Returns the contents of the collection in an Array.
209 * Note: Just in case the collection contents are changing in another thread,
210 * we pass a 0-length Array of the correct type into the API call. This way we
211 * <i>know</i> that the Array returned is of exactly the correct length.
213 * @return this collection as an Array
215 public Alignment[] getAlignment()
217 Alignment[] array = new Alignment[0];
218 return (Alignment[]) this._alignmentList.toArray(array);
222 * Method getAlignmentCount.
224 * @return the size of this collection
226 public int getAlignmentCount()
228 return this._alignmentList.size();
232 * Method getSequenceSet.
235 * @throws java.lang.IndexOutOfBoundsException
236 * if the index given is outside the bounds of the collection
237 * @return the value of the SequenceSet at the given index
239 public SequenceSet getSequenceSet(final int index)
240 throws java.lang.IndexOutOfBoundsException
242 // check bounds for index
243 if (index < 0 || index >= this._sequenceSetList.size())
245 throw new IndexOutOfBoundsException("getSequenceSet: Index value '"
246 + index + "' not in range [0.."
247 + (this._sequenceSetList.size() - 1) + "]");
250 return (SequenceSet) _sequenceSetList.get(index);
254 * Method getSequenceSet.Returns the contents of the collection in an Array.
256 * Note: Just in case the collection contents are changing in another thread,
257 * we pass a 0-length Array of the correct type into the API call. This way we
258 * <i>know</i> that the Array returned is of exactly the correct length.
260 * @return this collection as an Array
262 public SequenceSet[] getSequenceSet()
264 SequenceSet[] array = new SequenceSet[0];
265 return (SequenceSet[]) this._sequenceSetList.toArray(array);
269 * Method getSequenceSetCount.
271 * @return the size of this collection
273 public int getSequenceSetCount()
275 return this._sequenceSetList.size();
282 * @throws java.lang.IndexOutOfBoundsException
283 * if the index given is outside the bounds of the collection
284 * @return the value of the java.lang.String at the given index
286 public java.lang.String getTree(final int index)
287 throws java.lang.IndexOutOfBoundsException
289 // check bounds for index
290 if (index < 0 || index >= this._treeList.size())
292 throw new IndexOutOfBoundsException("getTree: Index value '" + index
293 + "' not in range [0.." + (this._treeList.size() - 1) + "]");
296 return (java.lang.String) _treeList.get(index);
300 * Method getTree.Returns the contents of the collection in an Array.
302 * Note: Just in case the collection contents are changing in another thread,
303 * we pass a 0-length Array of the correct type into the API call. This way we
304 * <i>know</i> that the Array returned is of exactly the correct length.
306 * @return this collection as an Array
308 public java.lang.String[] getTree()
310 java.lang.String[] array = new java.lang.String[0];
311 return (java.lang.String[]) this._treeList.toArray(array);
315 * Method getTreeCount.
317 * @return the size of this collection
319 public int getTreeCount()
321 return this._treeList.size();
327 * @return true if this object is valid according to the schema
329 public boolean isValid()
334 } catch (org.exolab.castor.xml.ValidationException vex)
345 * @throws org.exolab.castor.xml.MarshalException
346 * if object is null or if any SAXException is thrown during
348 * @throws org.exolab.castor.xml.ValidationException
349 * if this object is an invalid instance according to the schema
351 public void marshal(final java.io.Writer out)
352 throws org.exolab.castor.xml.MarshalException,
353 org.exolab.castor.xml.ValidationException
355 Marshaller.marshal(this, out);
362 * @throws java.io.IOException
363 * if an IOException occurs during marshaling
364 * @throws org.exolab.castor.xml.ValidationException
365 * if this object is an invalid instance according to the schema
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 schema
593 * @return the unmarshaled jalview.binding.VAMSAS
595 public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
596 throws org.exolab.castor.xml.MarshalException,
597 org.exolab.castor.xml.ValidationException
599 return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
600 jalview.binding.VAMSAS.class, reader);
606 * @throws org.exolab.castor.xml.ValidationException
607 * if this object is an invalid instance according to the schema
609 public void validate() throws org.exolab.castor.xml.ValidationException
611 org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
612 validator.validate(this);