JAL-1503 update version in GPL header
[jalview.git] / src / jalview / schemabinding / version2 / descriptors / JGroupDescriptor.java
index 88af06e..47917d6 100644 (file)
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)\r
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle\r
- * \r
- * This file is part of Jalview.\r
- * \r
- * Jalview is free software: you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License \r
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\r
- * \r
- * Jalview is distributed in the hope that it will be useful, but \r
- * WITHOUT ANY WARRANTY; without even the implied warranty \r
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
- * PURPOSE.  See the GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.\r
- */\r
-package jalview.schemabinding.version2.descriptors;\r
-\r
-//---------------------------------/\r
-//- Imported classes and packages -/\r
-//---------------------------------/\r
-\r
-import jalview.schemabinding.version2.JGroup;\r
-\r
-/**\r
- * Class JGroupDescriptor.\r
- * \r
- * @version $Revision$ $Date$\r
- */\r
-public class JGroupDescriptor extends\r
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl\r
-{\r
-\r
-  // --------------------------/\r
-  // - Class/Member Variables -/\r
-  // --------------------------/\r
-\r
-  /**\r
-   * Field _elementDefinition.\r
-   */\r
-  private boolean _elementDefinition;\r
-\r
-  /**\r
-   * Field _nsPrefix.\r
-   */\r
-  private java.lang.String _nsPrefix;\r
-\r
-  /**\r
-   * Field _nsURI.\r
-   */\r
-  private java.lang.String _nsURI;\r
-\r
-  /**\r
-   * Field _xmlName.\r
-   */\r
-  private java.lang.String _xmlName;\r
-\r
-  // ----------------/\r
-  // - Constructors -/\r
-  // ----------------/\r
-\r
-  public JGroupDescriptor()\r
-  {\r
-    super();\r
-    _nsURI = "www.jalview.org";\r
-    _xmlName = "JGroup";\r
-    _elementDefinition = true;\r
-\r
-    // -- set grouping compositor\r
-    setCompositorAsSequence();\r
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;\r
-    org.exolab.castor.mapping.FieldHandler handler = null;\r
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;\r
-    // -- initialize attribute descriptors\r
-\r
-    // -- _start\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Integer.TYPE, "_start", "start",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasStart())\r
-        {\r
-          return null;\r
-        }\r
-        return new java.lang.Integer(target.getStart());\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteStart();\r
-            return;\r
-          }\r
-          target.setStart(((java.lang.Integer) value).intValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _start\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.IntValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setMinInclusive(-2147483648);\r
-      typeValidator.setMaxInclusive(2147483647);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _end\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Integer.TYPE, "_end", "end",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasEnd())\r
-        {\r
-          return null;\r
-        }\r
-        return new java.lang.Integer(target.getEnd());\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteEnd();\r
-            return;\r
-          }\r
-          target.setEnd(((java.lang.Integer) value).intValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _end\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.IntValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setMinInclusive(-2147483648);\r
-      typeValidator.setMaxInclusive(2147483647);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _name\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.String.class, "_name", "name",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    desc.setImmutable(true);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        return target.getName();\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          target.setName((java.lang.String) value);\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _name\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.StringValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setWhiteSpace("preserve");\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _colour\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.String.class, "_colour", "colour",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    desc.setImmutable(true);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        return target.getColour();\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          target.setColour((java.lang.String) value);\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _colour\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.StringValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setWhiteSpace("preserve");\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _consThreshold\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Integer.TYPE, "_consThreshold", "consThreshold",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasConsThreshold())\r
-        {\r
-          return null;\r
-        }\r
-        return new java.lang.Integer(target.getConsThreshold());\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteConsThreshold();\r
-            return;\r
-          }\r
-          target.setConsThreshold(((java.lang.Integer) value).intValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _consThreshold\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.IntValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setMinInclusive(-2147483648);\r
-      typeValidator.setMaxInclusive(2147483647);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _pidThreshold\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Integer.TYPE, "_pidThreshold", "pidThreshold",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasPidThreshold())\r
-        {\r
-          return null;\r
-        }\r
-        return new java.lang.Integer(target.getPidThreshold());\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deletePidThreshold();\r
-            return;\r
-          }\r
-          target.setPidThreshold(((java.lang.Integer) value).intValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _pidThreshold\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.IntValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setMinInclusive(-2147483648);\r
-      typeValidator.setMaxInclusive(2147483647);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _outlineColour\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Integer.TYPE, "_outlineColour", "outlineColour",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasOutlineColour())\r
-        {\r
-          return null;\r
-        }\r
-        return new java.lang.Integer(target.getOutlineColour());\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteOutlineColour();\r
-            return;\r
-          }\r
-          target.setOutlineColour(((java.lang.Integer) value).intValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _outlineColour\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.IntValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setMinInclusive(-2147483648);\r
-      typeValidator.setMaxInclusive(2147483647);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _displayBoxes\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Boolean.TYPE, "_displayBoxes", "displayBoxes",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasDisplayBoxes())\r
-        {\r
-          return null;\r
-        }\r
-        return (target.getDisplayBoxes() ? java.lang.Boolean.TRUE\r
-                : java.lang.Boolean.FALSE);\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteDisplayBoxes();\r
-            return;\r
-          }\r
-          target\r
-                  .setDisplayBoxes(((java.lang.Boolean) value)\r
-                          .booleanValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _displayBoxes\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _displayText\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Boolean.TYPE, "_displayText", "displayText",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasDisplayText())\r
-        {\r
-          return null;\r
-        }\r
-        return (target.getDisplayText() ? java.lang.Boolean.TRUE\r
-                : java.lang.Boolean.FALSE);\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteDisplayText();\r
-            return;\r
-          }\r
-          target.setDisplayText(((java.lang.Boolean) value).booleanValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _displayText\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _colourText\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Boolean.TYPE, "_colourText", "colourText",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasColourText())\r
-        {\r
-          return null;\r
-        }\r
-        return (target.getColourText() ? java.lang.Boolean.TRUE\r
-                : java.lang.Boolean.FALSE);\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteColourText();\r
-            return;\r
-          }\r
-          target.setColourText(((java.lang.Boolean) value).booleanValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _colourText\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _textCol1\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Integer.TYPE, "_textCol1", "textCol1",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasTextCol1())\r
-        {\r
-          return null;\r
-        }\r
-        return new java.lang.Integer(target.getTextCol1());\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteTextCol1();\r
-            return;\r
-          }\r
-          target.setTextCol1(((java.lang.Integer) value).intValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _textCol1\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.IntValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setMinInclusive(-2147483648);\r
-      typeValidator.setMaxInclusive(2147483647);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _textCol2\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Integer.TYPE, "_textCol2", "textCol2",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasTextCol2())\r
-        {\r
-          return null;\r
-        }\r
-        return new java.lang.Integer(target.getTextCol2());\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteTextCol2();\r
-            return;\r
-          }\r
-          target.setTextCol2(((java.lang.Integer) value).intValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _textCol2\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.IntValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setMinInclusive(-2147483648);\r
-      typeValidator.setMaxInclusive(2147483647);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _textColThreshold\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Integer.TYPE, "_textColThreshold",\r
-            "textColThreshold", org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasTextColThreshold())\r
-        {\r
-          return null;\r
-        }\r
-        return new java.lang.Integer(target.getTextColThreshold());\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteTextColThreshold();\r
-            return;\r
-          }\r
-          target\r
-                  .setTextColThreshold(((java.lang.Integer) value)\r
-                          .intValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _textColThreshold\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.IntValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setMinInclusive(-2147483648);\r
-      typeValidator.setMaxInclusive(2147483647);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _showUnconserved\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Boolean.TYPE, "_showUnconserved", "showUnconserved",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasShowUnconserved())\r
-        {\r
-          return null;\r
-        }\r
-        return (target.getShowUnconserved() ? java.lang.Boolean.TRUE\r
-                : java.lang.Boolean.FALSE);\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteShowUnconserved();\r
-            return;\r
-          }\r
-          target.setShowUnconserved(((java.lang.Boolean) value)\r
-                  .booleanValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _showUnconserved\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _ignoreGapsinConsensus\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Boolean.TYPE, "_ignoreGapsinConsensus",\r
-            "ignoreGapsinConsensus",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasIgnoreGapsinConsensus())\r
-        {\r
-          return null;\r
-        }\r
-        return (target.getIgnoreGapsinConsensus() ? java.lang.Boolean.TRUE\r
-                : java.lang.Boolean.FALSE);\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteIgnoreGapsinConsensus();\r
-            return;\r
-          }\r
-          target.setIgnoreGapsinConsensus(((java.lang.Boolean) value)\r
-                  .booleanValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _ignoreGapsinConsensus\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _showConsensusHistogram\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Boolean.TYPE, "_showConsensusHistogram",\r
-            "showConsensusHistogram",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasShowConsensusHistogram())\r
-        {\r
-          return null;\r
-        }\r
-        return (target.getShowConsensusHistogram() ? java.lang.Boolean.TRUE\r
-                : java.lang.Boolean.FALSE);\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteShowConsensusHistogram();\r
-            return;\r
-          }\r
-          target.setShowConsensusHistogram(((java.lang.Boolean) value)\r
-                  .booleanValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _showConsensusHistogram\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _showSequenceLogo\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.Boolean.TYPE, "_showSequenceLogo",\r
-            "showSequenceLogo", org.exolab.castor.xml.NodeType.Attribute);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        if (!target.hasShowSequenceLogo())\r
-        {\r
-          return null;\r
-        }\r
-        return (target.getShowSequenceLogo() ? java.lang.Boolean.TRUE\r
-                : java.lang.Boolean.FALSE);\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          // if null, use delete method for optional primitives\r
-          if (value == null)\r
-          {\r
-            target.deleteShowSequenceLogo();\r
-            return;\r
-          }\r
-          target.setShowSequenceLogo(((java.lang.Boolean) value)\r
-                  .booleanValue());\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _showSequenceLogo\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- _id\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.String.class, "_id", "id",\r
-            org.exolab.castor.xml.NodeType.Attribute);\r
-    desc.setImmutable(true);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        return target.getId();\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          target.setId((java.lang.String) value);\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setMultivalued(false);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _id\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.StringValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setWhiteSpace("preserve");\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-    // -- initialize element descriptors\r
-\r
-    // -- _seqList\r
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
-            java.lang.String.class, "_seqList", "seq",\r
-            org.exolab.castor.xml.NodeType.Element);\r
-    desc.setImmutable(true);\r
-    handler = new org.exolab.castor.xml.XMLFieldHandler()\r
-    {\r
-      public java.lang.Object getValue(java.lang.Object object)\r
-              throws IllegalStateException\r
-      {\r
-        JGroup target = (JGroup) object;\r
-        return target.getSeq();\r
-      }\r
-\r
-      public void setValue(java.lang.Object object, java.lang.Object value)\r
-              throws IllegalStateException, IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          target.addSeq((java.lang.String) value);\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public void resetValue(Object object) throws IllegalStateException,\r
-              IllegalArgumentException\r
-      {\r
-        try\r
-        {\r
-          JGroup target = (JGroup) object;\r
-          target.removeAllSeq();\r
-        } catch (java.lang.Exception ex)\r
-        {\r
-          throw new IllegalStateException(ex.toString());\r
-        }\r
-      }\r
-\r
-      public java.lang.Object newInstance(java.lang.Object parent)\r
-      {\r
-        return null;\r
-      }\r
-    };\r
-    desc.setHandler(handler);\r
-    desc.setNameSpaceURI("www.jalview.org");\r
-    desc.setRequired(true);\r
-    desc.setMultivalued(true);\r
-    addFieldDescriptor(desc);\r
-\r
-    // -- validation code for: _seqList\r
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-    fieldValidator.setMinOccurs(1);\r
-    { // -- local scope\r
-      org.exolab.castor.xml.validators.StringValidator typeValidator;\r
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
-      fieldValidator.setValidator(typeValidator);\r
-      typeValidator.setWhiteSpace("preserve");\r
-    }\r
-    desc.setValidator(fieldValidator);\r
-  }\r
-\r
-  // -----------/\r
-  // - Methods -/\r
-  // -----------/\r
-\r
-  /**\r
-   * Method getAccessMode.\r
-   * \r
-   * @return the access mode specified for this class.\r
-   */\r
-  public org.exolab.castor.mapping.AccessMode getAccessMode()\r
-  {\r
-    return null;\r
-  }\r
-\r
-  /**\r
-   * Method getIdentity.\r
-   * \r
-   * @return the identity field, null if this class has no identity.\r
-   */\r
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
-  {\r
-    return super.getIdentity();\r
-  }\r
-\r
-  /**\r
-   * Method getJavaClass.\r
-   * \r
-   * @return the Java class represented by this descriptor.\r
-   */\r
-  public java.lang.Class getJavaClass()\r
-  {\r
-    return jalview.schemabinding.version2.JGroup.class;\r
-  }\r
-\r
-  /**\r
-   * Method getNameSpacePrefix.\r
-   * \r
-   * @return the namespace prefix to use when marshaling as XML.\r
-   */\r
-  public java.lang.String getNameSpacePrefix()\r
-  {\r
-    return _nsPrefix;\r
-  }\r
-\r
-  /**\r
-   * Method getNameSpaceURI.\r
-   * \r
-   * @return the namespace URI used when marshaling and unmarshaling as XML.\r
-   */\r
-  public java.lang.String getNameSpaceURI()\r
-  {\r
-    return _nsURI;\r
-  }\r
-\r
-  /**\r
-   * Method getValidator.\r
-   * \r
-   * @return a specific validator for the class described by this\r
-   *         ClassDescriptor.\r
-   */\r
-  public org.exolab.castor.xml.TypeValidator getValidator()\r
-  {\r
-    return this;\r
-  }\r
-\r
-  /**\r
-   * Method getXMLName.\r
-   * \r
-   * @return the XML Name for the Class being described.\r
-   */\r
-  public java.lang.String getXMLName()\r
-  {\r
-    return _xmlName;\r
-  }\r
-\r
-  /**\r
-   * Method isElementDefinition.\r
-   * \r
-   * @return true if XML schema definition of this Class is that of a global\r
-   *         element or element with anonymous type definition.\r
-   */\r
-  public boolean isElementDefinition()\r
-  {\r
-    return _elementDefinition;\r
-  }\r
-\r
-}\r
+/*******************************************************************************
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1)
+ * Copyright (C) 2014 The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with Jalview.  
+ * If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ ******************************************************************************/
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2.descriptors;
+
+//---------------------------------/
+//- Imported classes and packages -/
+//---------------------------------/
+
+import jalview.schemabinding.version2.JGroup;
+
+/**
+ * Class JGroupDescriptor.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class JGroupDescriptor extends
+        org.exolab.castor.xml.util.XMLClassDescriptorImpl
+{
+
+  // --------------------------/
+  // - Class/Member Variables -/
+  // --------------------------/
+
+  /**
+   * Field _elementDefinition.
+   */
+  private boolean _elementDefinition;
+
+  /**
+   * Field _nsPrefix.
+   */
+  private java.lang.String _nsPrefix;
+
+  /**
+   * Field _nsURI.
+   */
+  private java.lang.String _nsURI;
+
+  /**
+   * Field _xmlName.
+   */
+  private java.lang.String _xmlName;
+
+  // ----------------/
+  // - Constructors -/
+  // ----------------/
+
+  public JGroupDescriptor()
+  {
+    super();
+    _nsURI = "www.jalview.org";
+    _xmlName = "JGroup";
+    _elementDefinition = true;
+
+    // -- set grouping compositor
+    setCompositorAsSequence();
+    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
+    org.exolab.castor.mapping.FieldHandler handler = null;
+    org.exolab.castor.xml.FieldValidator fieldValidator = null;
+    // -- initialize attribute descriptors
+
+    // -- _start
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Integer.TYPE, "_start", "start",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasStart())
+        {
+          return null;
+        }
+        return new java.lang.Integer(target.getStart());
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteStart();
+            return;
+          }
+          target.setStart(((java.lang.Integer) value).intValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _start
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.IntValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setMinInclusive(-2147483648);
+      typeValidator.setMaxInclusive(2147483647);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _end
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Integer.TYPE, "_end", "end",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasEnd())
+        {
+          return null;
+        }
+        return new java.lang.Integer(target.getEnd());
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteEnd();
+            return;
+          }
+          target.setEnd(((java.lang.Integer) value).intValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _end
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.IntValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setMinInclusive(-2147483648);
+      typeValidator.setMaxInclusive(2147483647);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _name
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.String.class, "_name", "name",
+            org.exolab.castor.xml.NodeType.Attribute);
+    desc.setImmutable(true);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        return target.getName();
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          target.setName((java.lang.String) value);
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _name
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.StringValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setWhiteSpace("preserve");
+    }
+    desc.setValidator(fieldValidator);
+    // -- _colour
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.String.class, "_colour", "colour",
+            org.exolab.castor.xml.NodeType.Attribute);
+    desc.setImmutable(true);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        return target.getColour();
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          target.setColour((java.lang.String) value);
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _colour
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.StringValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setWhiteSpace("preserve");
+    }
+    desc.setValidator(fieldValidator);
+    // -- _consThreshold
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Integer.TYPE, "_consThreshold", "consThreshold",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasConsThreshold())
+        {
+          return null;
+        }
+        return new java.lang.Integer(target.getConsThreshold());
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteConsThreshold();
+            return;
+          }
+          target.setConsThreshold(((java.lang.Integer) value).intValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _consThreshold
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.IntValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setMinInclusive(-2147483648);
+      typeValidator.setMaxInclusive(2147483647);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _pidThreshold
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Integer.TYPE, "_pidThreshold", "pidThreshold",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasPidThreshold())
+        {
+          return null;
+        }
+        return new java.lang.Integer(target.getPidThreshold());
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deletePidThreshold();
+            return;
+          }
+          target.setPidThreshold(((java.lang.Integer) value).intValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _pidThreshold
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.IntValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setMinInclusive(-2147483648);
+      typeValidator.setMaxInclusive(2147483647);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _outlineColour
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Integer.TYPE, "_outlineColour", "outlineColour",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasOutlineColour())
+        {
+          return null;
+        }
+        return new java.lang.Integer(target.getOutlineColour());
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteOutlineColour();
+            return;
+          }
+          target.setOutlineColour(((java.lang.Integer) value).intValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _outlineColour
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.IntValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setMinInclusive(-2147483648);
+      typeValidator.setMaxInclusive(2147483647);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _displayBoxes
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Boolean.TYPE, "_displayBoxes", "displayBoxes",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasDisplayBoxes())
+        {
+          return null;
+        }
+        return (target.getDisplayBoxes() ? java.lang.Boolean.TRUE
+                : java.lang.Boolean.FALSE);
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteDisplayBoxes();
+            return;
+          }
+          target.setDisplayBoxes(((java.lang.Boolean) value).booleanValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _displayBoxes
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+      fieldValidator.setValidator(typeValidator);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _displayText
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Boolean.TYPE, "_displayText", "displayText",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasDisplayText())
+        {
+          return null;
+        }
+        return (target.getDisplayText() ? java.lang.Boolean.TRUE
+                : java.lang.Boolean.FALSE);
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteDisplayText();
+            return;
+          }
+          target.setDisplayText(((java.lang.Boolean) value).booleanValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _displayText
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+      fieldValidator.setValidator(typeValidator);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _colourText
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Boolean.TYPE, "_colourText", "colourText",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasColourText())
+        {
+          return null;
+        }
+        return (target.getColourText() ? java.lang.Boolean.TRUE
+                : java.lang.Boolean.FALSE);
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteColourText();
+            return;
+          }
+          target.setColourText(((java.lang.Boolean) value).booleanValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _colourText
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+      fieldValidator.setValidator(typeValidator);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _textCol1
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Integer.TYPE, "_textCol1", "textCol1",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasTextCol1())
+        {
+          return null;
+        }
+        return new java.lang.Integer(target.getTextCol1());
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteTextCol1();
+            return;
+          }
+          target.setTextCol1(((java.lang.Integer) value).intValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _textCol1
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.IntValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setMinInclusive(-2147483648);
+      typeValidator.setMaxInclusive(2147483647);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _textCol2
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Integer.TYPE, "_textCol2", "textCol2",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasTextCol2())
+        {
+          return null;
+        }
+        return new java.lang.Integer(target.getTextCol2());
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteTextCol2();
+            return;
+          }
+          target.setTextCol2(((java.lang.Integer) value).intValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _textCol2
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.IntValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setMinInclusive(-2147483648);
+      typeValidator.setMaxInclusive(2147483647);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _textColThreshold
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Integer.TYPE, "_textColThreshold",
+            "textColThreshold", org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasTextColThreshold())
+        {
+          return null;
+        }
+        return new java.lang.Integer(target.getTextColThreshold());
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteTextColThreshold();
+            return;
+          }
+          target.setTextColThreshold(((java.lang.Integer) value).intValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _textColThreshold
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.IntValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setMinInclusive(-2147483648);
+      typeValidator.setMaxInclusive(2147483647);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _showUnconserved
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Boolean.TYPE, "_showUnconserved", "showUnconserved",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasShowUnconserved())
+        {
+          return null;
+        }
+        return (target.getShowUnconserved() ? java.lang.Boolean.TRUE
+                : java.lang.Boolean.FALSE);
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteShowUnconserved();
+            return;
+          }
+          target.setShowUnconserved(((java.lang.Boolean) value)
+                  .booleanValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _showUnconserved
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+      fieldValidator.setValidator(typeValidator);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _ignoreGapsinConsensus
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Boolean.TYPE, "_ignoreGapsinConsensus",
+            "ignoreGapsinConsensus",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasIgnoreGapsinConsensus())
+        {
+          return null;
+        }
+        return (target.getIgnoreGapsinConsensus() ? java.lang.Boolean.TRUE
+                : java.lang.Boolean.FALSE);
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteIgnoreGapsinConsensus();
+            return;
+          }
+          target.setIgnoreGapsinConsensus(((java.lang.Boolean) value)
+                  .booleanValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _ignoreGapsinConsensus
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+      fieldValidator.setValidator(typeValidator);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _showConsensusHistogram
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Boolean.TYPE, "_showConsensusHistogram",
+            "showConsensusHistogram",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasShowConsensusHistogram())
+        {
+          return null;
+        }
+        return (target.getShowConsensusHistogram() ? java.lang.Boolean.TRUE
+                : java.lang.Boolean.FALSE);
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteShowConsensusHistogram();
+            return;
+          }
+          target.setShowConsensusHistogram(((java.lang.Boolean) value)
+                  .booleanValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _showConsensusHistogram
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+      fieldValidator.setValidator(typeValidator);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _showSequenceLogo
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Boolean.TYPE, "_showSequenceLogo",
+            "showSequenceLogo", org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasShowSequenceLogo())
+        {
+          return null;
+        }
+        return (target.getShowSequenceLogo() ? java.lang.Boolean.TRUE
+                : java.lang.Boolean.FALSE);
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteShowSequenceLogo();
+            return;
+          }
+          target.setShowSequenceLogo(((java.lang.Boolean) value)
+                  .booleanValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _showSequenceLogo
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+      fieldValidator.setValidator(typeValidator);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _normaliseSequenceLogo
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.Boolean.TYPE, "_normaliseSequenceLogo",
+            "normaliseSequenceLogo",
+            org.exolab.castor.xml.NodeType.Attribute);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        if (!target.hasNormaliseSequenceLogo())
+        {
+          return null;
+        }
+        return (target.getNormaliseSequenceLogo() ? java.lang.Boolean.TRUE
+                : java.lang.Boolean.FALSE);
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          // if null, use delete method for optional primitives
+          if (value == null)
+          {
+            target.deleteNormaliseSequenceLogo();
+            return;
+          }
+          target.setNormaliseSequenceLogo(((java.lang.Boolean) value)
+                  .booleanValue());
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _normaliseSequenceLogo
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+      fieldValidator.setValidator(typeValidator);
+    }
+    desc.setValidator(fieldValidator);
+    // -- _id
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.String.class, "_id", "id",
+            org.exolab.castor.xml.NodeType.Attribute);
+    desc.setImmutable(true);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        return target.getId();
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          target.setId((java.lang.String) value);
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _id
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+      org.exolab.castor.xml.validators.StringValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setWhiteSpace("preserve");
+    }
+    desc.setValidator(fieldValidator);
+    // -- initialize element descriptors
+
+    // -- _seqList
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            java.lang.String.class, "_seqList", "seq",
+            org.exolab.castor.xml.NodeType.Element);
+    desc.setImmutable(true);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        return target.getSeq();
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          target.addSeq((java.lang.String) value);
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public void resetValue(Object object) throws IllegalStateException,
+              IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          target.removeAllSeq();
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return null;
+      }
+    };
+    desc.setHandler(handler);
+    desc.setNameSpaceURI("www.jalview.org");
+    desc.setRequired(true);
+    desc.setMultivalued(true);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _seqList
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    fieldValidator.setMinOccurs(1);
+    { // -- local scope
+      org.exolab.castor.xml.validators.StringValidator typeValidator;
+      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+      fieldValidator.setValidator(typeValidator);
+      typeValidator.setWhiteSpace("preserve");
+    }
+    desc.setValidator(fieldValidator);
+    // -- _annotationColours
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            jalview.schemabinding.version2.AnnotationColours.class,
+            "_annotationColours", "annotationColours",
+            org.exolab.castor.xml.NodeType.Element);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        JGroup target = (JGroup) object;
+        return target.getAnnotationColours();
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          JGroup target = (JGroup) object;
+          target.setAnnotationColours((jalview.schemabinding.version2.AnnotationColours) value);
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return new jalview.schemabinding.version2.AnnotationColours();
+      }
+    };
+    desc.setHandler(handler);
+    desc.setNameSpaceURI("www.jalview.org");
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _annotationColours
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    { // -- local scope
+    }
+    desc.setValidator(fieldValidator);
+  }
+
+  // -----------/
+  // - Methods -/
+  // -----------/
+
+  /**
+   * Method getAccessMode.
+   * 
+   * @return the access mode specified for this class.
+   */
+  public org.exolab.castor.mapping.AccessMode getAccessMode()
+  {
+    return null;
+  }
+
+  /**
+   * Method getIdentity.
+   * 
+   * @return the identity field, null if this class has no identity.
+   */
+  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
+  {
+    return super.getIdentity();
+  }
+
+  /**
+   * Method getJavaClass.
+   * 
+   * @return the Java class represented by this descriptor.
+   */
+  public java.lang.Class getJavaClass()
+  {
+    return jalview.schemabinding.version2.JGroup.class;
+  }
+
+  /**
+   * Method getNameSpacePrefix.
+   * 
+   * @return the namespace prefix to use when marshaling as XML.
+   */
+  public java.lang.String getNameSpacePrefix()
+  {
+    return _nsPrefix;
+  }
+
+  /**
+   * Method getNameSpaceURI.
+   * 
+   * @return the namespace URI used when marshaling and unmarshaling as XML.
+   */
+  public java.lang.String getNameSpaceURI()
+  {
+    return _nsURI;
+  }
+
+  /**
+   * Method getValidator.
+   * 
+   * @return a specific validator for the class described by this
+   *         ClassDescriptor.
+   */
+  public org.exolab.castor.xml.TypeValidator getValidator()
+  {
+    return this;
+  }
+
+  /**
+   * Method getXMLName.
+   * 
+   * @return the XML Name for the Class being described.
+   */
+  public java.lang.String getXMLName()
+  {
+    return _xmlName;
+  }
+
+  /**
+   * Method isElementDefinition.
+   * 
+   * @return true if XML schema definition of this Class is that of a global
+   *         element or element with anonymous type definition.
+   */
+  public boolean isElementDefinition()
+  {
+    return _elementDefinition;
+  }
+
+}