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;
31 * Class JalviewModelSequence.
33 * @version $Revision$ $Date$
35 public class JalviewModelSequence implements java.io.Serializable
38 // --------------------------/
39 // - Class/Member Variables -/
40 // --------------------------/
45 private java.util.Vector _JSeqList;
50 private java.util.Vector _JGroupList;
53 * Field _viewportList.
55 private java.util.Vector _viewportList;
58 * Field _userColoursList.
60 private java.util.Vector _userColoursList;
65 private java.util.Vector _treeList;
68 * Field _featureSettings.
70 private jalview.binding.FeatureSettings _featureSettings;
76 public JalviewModelSequence()
79 this._JSeqList = new java.util.Vector();
80 this._JGroupList = new java.util.Vector();
81 this._viewportList = new java.util.Vector();
82 this._userColoursList = new java.util.Vector();
83 this._treeList = new java.util.Vector();
94 * @throws java.lang.IndexOutOfBoundsException
95 * if the index given is outside the bounds of the collection
97 public void addJGroup(final jalview.binding.JGroup vJGroup)
98 throws java.lang.IndexOutOfBoundsException
100 this._JGroupList.addElement(vJGroup);
108 * @throws java.lang.IndexOutOfBoundsException
109 * if the index given is outside the bounds of the collection
111 public void addJGroup(final int index,
112 final jalview.binding.JGroup vJGroup)
113 throws java.lang.IndexOutOfBoundsException
115 this._JGroupList.add(index, vJGroup);
122 * @throws java.lang.IndexOutOfBoundsException
123 * if the index given is outside the bounds of the collection
125 public void addJSeq(final jalview.binding.JSeq vJSeq)
126 throws java.lang.IndexOutOfBoundsException
128 this._JSeqList.addElement(vJSeq);
136 * @throws java.lang.IndexOutOfBoundsException
137 * if the index given is outside the bounds of the collection
139 public void addJSeq(final int index, final jalview.binding.JSeq vJSeq)
140 throws java.lang.IndexOutOfBoundsException
142 this._JSeqList.add(index, vJSeq);
149 * @throws java.lang.IndexOutOfBoundsException
150 * if the index given is outside the bounds of the collection
152 public void addTree(final jalview.binding.Tree vTree)
153 throws java.lang.IndexOutOfBoundsException
155 this._treeList.addElement(vTree);
163 * @throws java.lang.IndexOutOfBoundsException
164 * if the index given is outside the bounds of the collection
166 public void addTree(final int index, final jalview.binding.Tree vTree)
167 throws java.lang.IndexOutOfBoundsException
169 this._treeList.add(index, vTree);
175 * @param vUserColours
176 * @throws java.lang.IndexOutOfBoundsException
177 * if the index given is outside the bounds of the collection
179 public void addUserColours(final jalview.binding.UserColours vUserColours)
180 throws java.lang.IndexOutOfBoundsException
182 this._userColoursList.addElement(vUserColours);
189 * @param vUserColours
190 * @throws java.lang.IndexOutOfBoundsException
191 * if the index given is outside the bounds of the collection
193 public void addUserColours(final int index,
194 final jalview.binding.UserColours vUserColours)
195 throws java.lang.IndexOutOfBoundsException
197 this._userColoursList.add(index, vUserColours);
204 * @throws java.lang.IndexOutOfBoundsException
205 * if the index given is outside the bounds of the collection
207 public void addViewport(final jalview.binding.Viewport vViewport)
208 throws java.lang.IndexOutOfBoundsException
210 this._viewportList.addElement(vViewport);
218 * @throws java.lang.IndexOutOfBoundsException
219 * if the index given is outside the bounds of the collection
221 public void addViewport(final int index,
222 final jalview.binding.Viewport vViewport)
223 throws java.lang.IndexOutOfBoundsException
225 this._viewportList.add(index, vViewport);
229 * Method enumerateJGroup.
231 * @return an Enumeration over all jalview.binding.JGroup elements
233 public java.util.Enumeration enumerateJGroup()
235 return this._JGroupList.elements();
239 * Method enumerateJSeq.
241 * @return an Enumeration over all jalview.binding.JSeq elements
243 public java.util.Enumeration enumerateJSeq()
245 return this._JSeqList.elements();
249 * Method enumerateTree.
251 * @return an Enumeration over all jalview.binding.Tree elements
253 public java.util.Enumeration enumerateTree()
255 return this._treeList.elements();
259 * Method enumerateUserColours.
261 * @return an Enumeration over all jalview.binding.UserColours elements
263 public java.util.Enumeration enumerateUserColours()
265 return this._userColoursList.elements();
269 * Method enumerateViewport.
271 * @return an Enumeration over all jalview.binding.Viewport elements
273 public java.util.Enumeration enumerateViewport()
275 return this._viewportList.elements();
279 * Returns the value of field 'featureSettings'.
281 * @return the value of field 'FeatureSettings'.
283 public jalview.binding.FeatureSettings getFeatureSettings()
285 return this._featureSettings;
292 * @throws java.lang.IndexOutOfBoundsException
293 * if the index given is outside the bounds of the collection
294 * @return the value of the jalview.binding.JGroup at the given index
296 public jalview.binding.JGroup getJGroup(final int index)
297 throws java.lang.IndexOutOfBoundsException
299 // check bounds for index
300 if (index < 0 || index >= this._JGroupList.size())
302 throw new IndexOutOfBoundsException("getJGroup: Index value '"
303 + index + "' not in range [0.."
304 + (this._JGroupList.size() - 1) + "]");
307 return (jalview.binding.JGroup) _JGroupList.get(index);
311 * Method getJGroup.Returns the contents of the collection in an Array.
313 * Note: Just in case the collection contents are changing in another thread,
314 * we pass a 0-length Array of the correct type into the API call. This way we
315 * <i>know</i> that the Array returned is of exactly the correct length.
317 * @return this collection as an Array
319 public jalview.binding.JGroup[] getJGroup()
321 jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
322 return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
326 * Method getJGroupCount.
328 * @return the size of this collection
330 public int getJGroupCount()
332 return this._JGroupList.size();
339 * @throws java.lang.IndexOutOfBoundsException
340 * if the index given is outside the bounds of the collection
341 * @return the value of the jalview.binding.JSeq at the given index
343 public jalview.binding.JSeq getJSeq(final int index)
344 throws java.lang.IndexOutOfBoundsException
346 // check bounds for index
347 if (index < 0 || index >= this._JSeqList.size())
349 throw new IndexOutOfBoundsException("getJSeq: Index value '" + index
350 + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
353 return (jalview.binding.JSeq) _JSeqList.get(index);
357 * Method getJSeq.Returns the contents of the collection in an Array.
359 * Note: Just in case the collection contents are changing in another thread,
360 * we pass a 0-length Array of the correct type into the API call. This way we
361 * <i>know</i> that the Array returned is of exactly the correct length.
363 * @return this collection as an Array
365 public jalview.binding.JSeq[] getJSeq()
367 jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
368 return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
372 * Method getJSeqCount.
374 * @return the size of this collection
376 public int getJSeqCount()
378 return this._JSeqList.size();
385 * @throws java.lang.IndexOutOfBoundsException
386 * if the index given is outside the bounds of the collection
387 * @return the value of the jalview.binding.Tree at the given index
389 public jalview.binding.Tree getTree(final int index)
390 throws java.lang.IndexOutOfBoundsException
392 // check bounds for index
393 if (index < 0 || index >= this._treeList.size())
395 throw new IndexOutOfBoundsException("getTree: Index value '" + index
396 + "' not in range [0.." + (this._treeList.size() - 1) + "]");
399 return (jalview.binding.Tree) _treeList.get(index);
403 * Method getTree.Returns the contents of the collection in an Array.
405 * Note: Just in case the collection contents are changing in another thread,
406 * we pass a 0-length Array of the correct type into the API call. This way we
407 * <i>know</i> that the Array returned is of exactly the correct length.
409 * @return this collection as an Array
411 public jalview.binding.Tree[] getTree()
413 jalview.binding.Tree[] array = new jalview.binding.Tree[0];
414 return (jalview.binding.Tree[]) this._treeList.toArray(array);
418 * Method getTreeCount.
420 * @return the size of this collection
422 public int getTreeCount()
424 return this._treeList.size();
428 * Method getUserColours.
431 * @throws java.lang.IndexOutOfBoundsException
432 * if the index given is outside the bounds of the collection
433 * @return the value of the jalview.binding.UserColours at the given index
435 public jalview.binding.UserColours getUserColours(final int index)
436 throws java.lang.IndexOutOfBoundsException
438 // check bounds for index
439 if (index < 0 || index >= this._userColoursList.size())
441 throw new IndexOutOfBoundsException("getUserColours: Index value '"
442 + index + "' not in range [0.."
443 + (this._userColoursList.size() - 1) + "]");
446 return (jalview.binding.UserColours) _userColoursList.get(index);
450 * Method getUserColours.Returns the contents of the collection in an Array.
452 * Note: Just in case the collection contents are changing in another thread,
453 * we pass a 0-length Array of the correct type into the API call. This way we
454 * <i>know</i> that the Array returned is of exactly the correct length.
456 * @return this collection as an Array
458 public jalview.binding.UserColours[] getUserColours()
460 jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
461 return (jalview.binding.UserColours[]) this._userColoursList
466 * Method getUserColoursCount.
468 * @return the size of this collection
470 public int getUserColoursCount()
472 return this._userColoursList.size();
476 * Method getViewport.
479 * @throws java.lang.IndexOutOfBoundsException
480 * if the index given is outside the bounds of the collection
481 * @return the value of the jalview.binding.Viewport at the given index
483 public jalview.binding.Viewport getViewport(final int index)
484 throws java.lang.IndexOutOfBoundsException
486 // check bounds for index
487 if (index < 0 || index >= this._viewportList.size())
489 throw new IndexOutOfBoundsException("getViewport: Index value '"
490 + index + "' not in range [0.."
491 + (this._viewportList.size() - 1) + "]");
494 return (jalview.binding.Viewport) _viewportList.get(index);
498 * Method getViewport.Returns the contents of the collection in an Array.
500 * Note: Just in case the collection contents are changing in another thread,
501 * we pass a 0-length Array of the correct type into the API call. This way we
502 * <i>know</i> that the Array returned is of exactly the correct length.
504 * @return this collection as an Array
506 public jalview.binding.Viewport[] getViewport()
508 jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
509 return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
513 * Method getViewportCount.
515 * @return the size of this collection
517 public int getViewportCount()
519 return this._viewportList.size();
525 * @return true if this object is valid according to the schema
527 public boolean isValid()
532 } catch (org.exolab.castor.xml.ValidationException vex)
543 * @throws org.exolab.castor.xml.MarshalException
544 * if object is null or if any SAXException is thrown during
546 * @throws org.exolab.castor.xml.ValidationException
547 * if this object is an invalid instance according to the schema
549 public void marshal(final java.io.Writer out)
550 throws org.exolab.castor.xml.MarshalException,
551 org.exolab.castor.xml.ValidationException
553 Marshaller.marshal(this, out);
560 * @throws java.io.IOException
561 * if an IOException occurs during marshaling
562 * @throws org.exolab.castor.xml.ValidationException
563 * if this object is an invalid instance according to the schema
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 schema
945 * @return the unmarshaled jalview.binding.JalviewModelSequence
947 public static jalview.binding.JalviewModelSequence unmarshal(
948 final java.io.Reader reader)
949 throws org.exolab.castor.xml.MarshalException,
950 org.exolab.castor.xml.ValidationException
952 return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(
953 jalview.binding.JalviewModelSequence.class, reader);
959 * @throws org.exolab.castor.xml.ValidationException
960 * if this object is an invalid instance according to the schema
962 public void validate() throws org.exolab.castor.xml.ValidationException
964 org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
965 validator.validate(this);