2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4.0.b2)
3 * Copyright (C) 2009 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;
29 * Class JalviewModelSequence.
31 * @version $Revision$ $Date$
33 public class JalviewModelSequence implements java.io.Serializable
36 // --------------------------/
37 // - Class/Member Variables -/
38 // --------------------------/
43 private java.util.Vector _JSeqList;
48 private java.util.Vector _JGroupList;
51 * Field _viewportList.
53 private java.util.Vector _viewportList;
56 * Field _userColoursList.
58 private java.util.Vector _userColoursList;
63 private java.util.Vector _treeList;
66 * Field _featureSettings.
68 private jalview.binding.FeatureSettings _featureSettings;
74 public JalviewModelSequence()
77 this._JSeqList = new java.util.Vector();
78 this._JGroupList = new java.util.Vector();
79 this._viewportList = new java.util.Vector();
80 this._userColoursList = new java.util.Vector();
81 this._treeList = new java.util.Vector();
92 * @throws java.lang.IndexOutOfBoundsException
93 * if the index given is outside the bounds of the collection
95 public void addJGroup(final jalview.binding.JGroup vJGroup)
96 throws java.lang.IndexOutOfBoundsException
98 this._JGroupList.addElement(vJGroup);
106 * @throws java.lang.IndexOutOfBoundsException
107 * if the index given is outside the bounds of the collection
109 public void addJGroup(final int index,
110 final jalview.binding.JGroup vJGroup)
111 throws java.lang.IndexOutOfBoundsException
113 this._JGroupList.add(index, vJGroup);
120 * @throws java.lang.IndexOutOfBoundsException
121 * if the index given is outside the bounds of the collection
123 public void addJSeq(final jalview.binding.JSeq vJSeq)
124 throws java.lang.IndexOutOfBoundsException
126 this._JSeqList.addElement(vJSeq);
134 * @throws java.lang.IndexOutOfBoundsException
135 * if the index given is outside the bounds of the collection
137 public void addJSeq(final int index, final jalview.binding.JSeq vJSeq)
138 throws java.lang.IndexOutOfBoundsException
140 this._JSeqList.add(index, vJSeq);
147 * @throws java.lang.IndexOutOfBoundsException
148 * if the index given is outside the bounds of the collection
150 public void addTree(final jalview.binding.Tree vTree)
151 throws java.lang.IndexOutOfBoundsException
153 this._treeList.addElement(vTree);
161 * @throws java.lang.IndexOutOfBoundsException
162 * if the index given is outside the bounds of the collection
164 public void addTree(final int index, final jalview.binding.Tree vTree)
165 throws java.lang.IndexOutOfBoundsException
167 this._treeList.add(index, vTree);
173 * @param vUserColours
174 * @throws java.lang.IndexOutOfBoundsException
175 * if the index given is outside the bounds of the collection
177 public void addUserColours(final jalview.binding.UserColours vUserColours)
178 throws java.lang.IndexOutOfBoundsException
180 this._userColoursList.addElement(vUserColours);
187 * @param vUserColours
188 * @throws java.lang.IndexOutOfBoundsException
189 * if the index given is outside the bounds of the collection
191 public void addUserColours(final int index,
192 final jalview.binding.UserColours vUserColours)
193 throws java.lang.IndexOutOfBoundsException
195 this._userColoursList.add(index, vUserColours);
202 * @throws java.lang.IndexOutOfBoundsException
203 * if the index given is outside the bounds of the collection
205 public void addViewport(final jalview.binding.Viewport vViewport)
206 throws java.lang.IndexOutOfBoundsException
208 this._viewportList.addElement(vViewport);
216 * @throws java.lang.IndexOutOfBoundsException
217 * if the index given is outside the bounds of the collection
219 public void addViewport(final int index,
220 final jalview.binding.Viewport vViewport)
221 throws java.lang.IndexOutOfBoundsException
223 this._viewportList.add(index, vViewport);
227 * Method enumerateJGroup.
229 * @return an Enumeration over all jalview.binding.JGroup elements
231 public java.util.Enumeration enumerateJGroup()
233 return this._JGroupList.elements();
237 * Method enumerateJSeq.
239 * @return an Enumeration over all jalview.binding.JSeq elements
241 public java.util.Enumeration enumerateJSeq()
243 return this._JSeqList.elements();
247 * Method enumerateTree.
249 * @return an Enumeration over all jalview.binding.Tree elements
251 public java.util.Enumeration enumerateTree()
253 return this._treeList.elements();
257 * Method enumerateUserColours.
259 * @return an Enumeration over all jalview.binding.UserColours elements
261 public java.util.Enumeration enumerateUserColours()
263 return this._userColoursList.elements();
267 * Method enumerateViewport.
269 * @return an Enumeration over all jalview.binding.Viewport elements
271 public java.util.Enumeration enumerateViewport()
273 return this._viewportList.elements();
277 * Returns the value of field 'featureSettings'.
279 * @return the value of field 'FeatureSettings'.
281 public jalview.binding.FeatureSettings getFeatureSettings()
283 return this._featureSettings;
290 * @throws java.lang.IndexOutOfBoundsException
291 * if the index given is outside the bounds of the collection
292 * @return the value of the jalview.binding.JGroup at the given index
294 public jalview.binding.JGroup getJGroup(final int index)
295 throws java.lang.IndexOutOfBoundsException
297 // check bounds for index
298 if (index < 0 || index >= this._JGroupList.size())
300 throw new IndexOutOfBoundsException("getJGroup: Index value '"
301 + index + "' not in range [0.."
302 + (this._JGroupList.size() - 1) + "]");
305 return (jalview.binding.JGroup) _JGroupList.get(index);
309 * Method getJGroup.Returns the contents of the collection in an Array.
311 * Note: Just in case the collection contents are changing in another thread,
312 * we pass a 0-length Array of the correct type into the API call. This way we
313 * <i>know</i> that the Array returned is of exactly the correct length.
315 * @return this collection as an Array
317 public jalview.binding.JGroup[] getJGroup()
319 jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
320 return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
324 * Method getJGroupCount.
326 * @return the size of this collection
328 public int getJGroupCount()
330 return this._JGroupList.size();
337 * @throws java.lang.IndexOutOfBoundsException
338 * if the index given is outside the bounds of the collection
339 * @return the value of the jalview.binding.JSeq at the given index
341 public jalview.binding.JSeq getJSeq(final int index)
342 throws java.lang.IndexOutOfBoundsException
344 // check bounds for index
345 if (index < 0 || index >= this._JSeqList.size())
347 throw new IndexOutOfBoundsException("getJSeq: Index value '" + index
348 + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
351 return (jalview.binding.JSeq) _JSeqList.get(index);
355 * Method getJSeq.Returns the contents of the collection in an Array.
357 * Note: Just in case the collection contents are changing in another thread,
358 * we pass a 0-length Array of the correct type into the API call. This way we
359 * <i>know</i> that the Array returned is of exactly the correct length.
361 * @return this collection as an Array
363 public jalview.binding.JSeq[] getJSeq()
365 jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
366 return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
370 * Method getJSeqCount.
372 * @return the size of this collection
374 public int getJSeqCount()
376 return this._JSeqList.size();
383 * @throws java.lang.IndexOutOfBoundsException
384 * if the index given is outside the bounds of the collection
385 * @return the value of the jalview.binding.Tree at the given index
387 public jalview.binding.Tree getTree(final int index)
388 throws java.lang.IndexOutOfBoundsException
390 // check bounds for index
391 if (index < 0 || index >= this._treeList.size())
393 throw new IndexOutOfBoundsException("getTree: Index value '" + index
394 + "' not in range [0.." + (this._treeList.size() - 1) + "]");
397 return (jalview.binding.Tree) _treeList.get(index);
401 * Method getTree.Returns the contents of the collection in an Array.
403 * Note: Just in case the collection contents are changing in another thread,
404 * we pass a 0-length Array of the correct type into the API call. This way we
405 * <i>know</i> that the Array returned is of exactly the correct length.
407 * @return this collection as an Array
409 public jalview.binding.Tree[] getTree()
411 jalview.binding.Tree[] array = new jalview.binding.Tree[0];
412 return (jalview.binding.Tree[]) this._treeList.toArray(array);
416 * Method getTreeCount.
418 * @return the size of this collection
420 public int getTreeCount()
422 return this._treeList.size();
426 * Method getUserColours.
429 * @throws java.lang.IndexOutOfBoundsException
430 * if the index given is outside the bounds of the collection
431 * @return the value of the jalview.binding.UserColours at the given index
433 public jalview.binding.UserColours getUserColours(final int index)
434 throws java.lang.IndexOutOfBoundsException
436 // check bounds for index
437 if (index < 0 || index >= this._userColoursList.size())
439 throw new IndexOutOfBoundsException("getUserColours: Index value '"
440 + index + "' not in range [0.."
441 + (this._userColoursList.size() - 1) + "]");
444 return (jalview.binding.UserColours) _userColoursList.get(index);
448 * Method getUserColours.Returns the contents of the collection in an Array.
450 * Note: Just in case the collection contents are changing in another thread,
451 * we pass a 0-length Array of the correct type into the API call. This way we
452 * <i>know</i> that the Array returned is of exactly the correct length.
454 * @return this collection as an Array
456 public jalview.binding.UserColours[] getUserColours()
458 jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
459 return (jalview.binding.UserColours[]) this._userColoursList
464 * Method getUserColoursCount.
466 * @return the size of this collection
468 public int getUserColoursCount()
470 return this._userColoursList.size();
474 * Method getViewport.
477 * @throws java.lang.IndexOutOfBoundsException
478 * if the index given is outside the bounds of the collection
479 * @return the value of the jalview.binding.Viewport at the given index
481 public jalview.binding.Viewport getViewport(final int index)
482 throws java.lang.IndexOutOfBoundsException
484 // check bounds for index
485 if (index < 0 || index >= this._viewportList.size())
487 throw new IndexOutOfBoundsException("getViewport: Index value '"
488 + index + "' not in range [0.."
489 + (this._viewportList.size() - 1) + "]");
492 return (jalview.binding.Viewport) _viewportList.get(index);
496 * Method getViewport.Returns the contents of the collection in an Array.
498 * Note: Just in case the collection contents are changing in another thread,
499 * we pass a 0-length Array of the correct type into the API call. This way we
500 * <i>know</i> that the Array returned is of exactly the correct length.
502 * @return this collection as an Array
504 public jalview.binding.Viewport[] getViewport()
506 jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
507 return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
511 * Method getViewportCount.
513 * @return the size of this collection
515 public int getViewportCount()
517 return this._viewportList.size();
523 * @return true if this object is valid according to the schema
525 public boolean isValid()
530 } catch (org.exolab.castor.xml.ValidationException vex)
541 * @throws org.exolab.castor.xml.MarshalException
542 * if object is null or if any SAXException is thrown during
544 * @throws org.exolab.castor.xml.ValidationException
545 * if this object is an invalid instance according to the
548 public void marshal(final java.io.Writer out)
549 throws org.exolab.castor.xml.MarshalException,
550 org.exolab.castor.xml.ValidationException
552 Marshaller.marshal(this, out);
559 * @throws java.io.IOException
560 * if an IOException occurs during marshaling
561 * @throws org.exolab.castor.xml.ValidationException
562 * if this object is an invalid instance according to the
564 * @throws org.exolab.castor.xml.MarshalException
565 * if object is null or if any SAXException is thrown during
568 public void marshal(final org.xml.sax.ContentHandler handler)
569 throws java.io.IOException,
570 org.exolab.castor.xml.MarshalException,
571 org.exolab.castor.xml.ValidationException
573 Marshaller.marshal(this, handler);
578 public void removeAllJGroup()
580 this._JGroupList.clear();
585 public void removeAllJSeq()
587 this._JSeqList.clear();
592 public void removeAllTree()
594 this._treeList.clear();
599 public void removeAllUserColours()
601 this._userColoursList.clear();
606 public void removeAllViewport()
608 this._viewportList.clear();
612 * Method removeJGroup.
615 * @return true if the object was removed from the collection.
617 public boolean removeJGroup(final jalview.binding.JGroup vJGroup)
619 boolean removed = _JGroupList.remove(vJGroup);
624 * Method removeJGroupAt.
627 * @return the element removed from the collection
629 public jalview.binding.JGroup removeJGroupAt(final int index)
631 java.lang.Object obj = this._JGroupList.remove(index);
632 return (jalview.binding.JGroup) obj;
639 * @return true if the object was removed from the collection.
641 public boolean removeJSeq(final jalview.binding.JSeq vJSeq)
643 boolean removed = _JSeqList.remove(vJSeq);
648 * Method removeJSeqAt.
651 * @return the element removed from the collection
653 public jalview.binding.JSeq removeJSeqAt(final int index)
655 java.lang.Object obj = this._JSeqList.remove(index);
656 return (jalview.binding.JSeq) obj;
663 * @return true if the object was removed from the collection.
665 public boolean removeTree(final jalview.binding.Tree vTree)
667 boolean removed = _treeList.remove(vTree);
672 * Method removeTreeAt.
675 * @return the element removed from the collection
677 public jalview.binding.Tree removeTreeAt(final int index)
679 java.lang.Object obj = this._treeList.remove(index);
680 return (jalview.binding.Tree) obj;
684 * Method removeUserColours.
686 * @param vUserColours
687 * @return true if the object was removed from the collection.
689 public boolean removeUserColours(
690 final jalview.binding.UserColours vUserColours)
692 boolean removed = _userColoursList.remove(vUserColours);
697 * Method removeUserColoursAt.
700 * @return the element removed from the collection
702 public jalview.binding.UserColours removeUserColoursAt(final int index)
704 java.lang.Object obj = this._userColoursList.remove(index);
705 return (jalview.binding.UserColours) obj;
709 * Method removeViewport.
712 * @return true if the object was removed from the collection.
714 public boolean removeViewport(final jalview.binding.Viewport vViewport)
716 boolean removed = _viewportList.remove(vViewport);
721 * Method removeViewportAt.
724 * @return the element removed from the collection
726 public jalview.binding.Viewport removeViewportAt(final int index)
728 java.lang.Object obj = this._viewportList.remove(index);
729 return (jalview.binding.Viewport) obj;
733 * Sets the value of field 'featureSettings'.
735 * @param featureSettings
736 * the value of field 'featureSettings'.
738 public void setFeatureSettings(
739 final jalview.binding.FeatureSettings featureSettings)
741 this._featureSettings = featureSettings;
749 * @throws java.lang.IndexOutOfBoundsException
750 * if the index given is outside the bounds of the collection
752 public void setJGroup(final int index,
753 final jalview.binding.JGroup vJGroup)
754 throws java.lang.IndexOutOfBoundsException
756 // check bounds for index
757 if (index < 0 || index >= this._JGroupList.size())
759 throw new IndexOutOfBoundsException("setJGroup: Index value '"
760 + index + "' not in range [0.."
761 + (this._JGroupList.size() - 1) + "]");
764 this._JGroupList.set(index, vJGroup);
770 * @param vJGroupArray
772 public void setJGroup(final jalview.binding.JGroup[] vJGroupArray)
777 for (int i = 0; i < vJGroupArray.length; i++)
779 this._JGroupList.add(vJGroupArray[i]);
788 * @throws java.lang.IndexOutOfBoundsException
789 * if the index given is outside the bounds of the collection
791 public void setJSeq(final int index, final jalview.binding.JSeq vJSeq)
792 throws java.lang.IndexOutOfBoundsException
794 // check bounds for index
795 if (index < 0 || index >= this._JSeqList.size())
797 throw new IndexOutOfBoundsException("setJSeq: Index value '" + index
798 + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
801 this._JSeqList.set(index, vJSeq);
809 public void setJSeq(final jalview.binding.JSeq[] vJSeqArray)
814 for (int i = 0; i < vJSeqArray.length; i++)
816 this._JSeqList.add(vJSeqArray[i]);
825 * @throws java.lang.IndexOutOfBoundsException
826 * if the index given is outside the bounds of the collection
828 public void setTree(final int index, final jalview.binding.Tree vTree)
829 throws java.lang.IndexOutOfBoundsException
831 // check bounds for index
832 if (index < 0 || index >= this._treeList.size())
834 throw new IndexOutOfBoundsException("setTree: Index value '" + index
835 + "' not in range [0.." + (this._treeList.size() - 1) + "]");
838 this._treeList.set(index, vTree);
846 public void setTree(final jalview.binding.Tree[] vTreeArray)
851 for (int i = 0; i < vTreeArray.length; i++)
853 this._treeList.add(vTreeArray[i]);
861 * @param vUserColours
862 * @throws java.lang.IndexOutOfBoundsException
863 * if the index given is outside the bounds of the collection
865 public void setUserColours(final int index,
866 final jalview.binding.UserColours vUserColours)
867 throws java.lang.IndexOutOfBoundsException
869 // check bounds for index
870 if (index < 0 || index >= this._userColoursList.size())
872 throw new IndexOutOfBoundsException("setUserColours: Index value '"
873 + index + "' not in range [0.."
874 + (this._userColoursList.size() - 1) + "]");
877 this._userColoursList.set(index, vUserColours);
883 * @param vUserColoursArray
885 public void setUserColours(
886 final jalview.binding.UserColours[] vUserColoursArray)
889 _userColoursList.clear();
891 for (int i = 0; i < vUserColoursArray.length; i++)
893 this._userColoursList.add(vUserColoursArray[i]);
902 * @throws java.lang.IndexOutOfBoundsException
903 * if the index given is outside the bounds of the collection
905 public void setViewport(final int index,
906 final jalview.binding.Viewport vViewport)
907 throws java.lang.IndexOutOfBoundsException
909 // check bounds for index
910 if (index < 0 || index >= this._viewportList.size())
912 throw new IndexOutOfBoundsException("setViewport: Index value '"
913 + index + "' not in range [0.."
914 + (this._viewportList.size() - 1) + "]");
917 this._viewportList.set(index, vViewport);
923 * @param vViewportArray
925 public void setViewport(final jalview.binding.Viewport[] vViewportArray)
928 _viewportList.clear();
930 for (int i = 0; i < vViewportArray.length; i++)
932 this._viewportList.add(vViewportArray[i]);
940 * @throws org.exolab.castor.xml.MarshalException
941 * if object is null or if any SAXException is thrown during
943 * @throws org.exolab.castor.xml.ValidationException
944 * if this object is an invalid instance according to the
946 * @return the unmarshaled jalview.binding.JalviewModelSequence
948 public static jalview.binding.JalviewModelSequence unmarshal(
949 final java.io.Reader reader)
950 throws org.exolab.castor.xml.MarshalException,
951 org.exolab.castor.xml.ValidationException
953 return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(
954 jalview.binding.JalviewModelSequence.class, reader);
960 * @throws org.exolab.castor.xml.ValidationException
961 * if this object is an invalid instance according to the
964 public void validate() throws org.exolab.castor.xml.ValidationException
966 org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
967 validator.validate(this);