89756a8ebc6d84b9005f13d820280b775a0bdf2b
[jalview.git] / src / jalview / schemabinding / version2 / descriptors / GroupDescriptor.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)\r
3  * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4  * \r
5  * This program is free software; you can redistribute it and/or\r
6  * modify it under the terms of the GNU General Public License\r
7  * as published by the Free Software Foundation; either version 2\r
8  * of the License, or (at your option) any later version.\r
9  * \r
10  * This program is distributed in the hope that it will be useful,\r
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13  * GNU General Public License for more details.\r
14  * \r
15  * You should have received a copy of the GNU General Public License\r
16  * along with this program; if not, write to the Free Software\r
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18  */\r
19 package jalview.schemabinding.version2.descriptors;\r
20 \r
21   //---------------------------------/\r
22  //- Imported classes and packages -/\r
23 //---------------------------------/\r
24 \r
25 import jalview.schemabinding.version2.Group;\r
26 \r
27 /**\r
28  * Class GroupDescriptor.\r
29  * \r
30  * @version $Revision$ $Date$\r
31  */\r
32 public class GroupDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
33 \r
34 \r
35       //--------------------------/\r
36      //- Class/Member Variables -/\r
37     //--------------------------/\r
38 \r
39     /**\r
40      * Field _elementDefinition.\r
41      */\r
42     private boolean _elementDefinition;\r
43 \r
44     /**\r
45      * Field _nsPrefix.\r
46      */\r
47     private java.lang.String _nsPrefix;\r
48 \r
49     /**\r
50      * Field _nsURI.\r
51      */\r
52     private java.lang.String _nsURI;\r
53 \r
54     /**\r
55      * Field _xmlName.\r
56      */\r
57     private java.lang.String _xmlName;\r
58 \r
59 \r
60       //----------------/\r
61      //- Constructors -/\r
62     //----------------/\r
63 \r
64     public GroupDescriptor() {\r
65         super();\r
66         _nsURI = "www.jalview.org";\r
67         _xmlName = "group";\r
68         _elementDefinition = true;\r
69         org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
70         org.exolab.castor.mapping.FieldHandler             handler        = null;\r
71         org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
72         //-- initialize attribute descriptors\r
73         \r
74         //-- _name\r
75         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "name", org.exolab.castor.xml.NodeType.Attribute);\r
76         desc.setImmutable(true);\r
77         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
78             public java.lang.Object getValue( java.lang.Object object ) \r
79                 throws IllegalStateException\r
80             {\r
81                 Group target = (Group) object;\r
82                 return target.getName();\r
83             }\r
84             public void setValue( java.lang.Object object, java.lang.Object value) \r
85                 throws IllegalStateException, IllegalArgumentException\r
86             {\r
87                 try {\r
88                     Group target = (Group) object;\r
89                     target.setName( (java.lang.String) value);\r
90                 } catch (java.lang.Exception ex) {\r
91                     throw new IllegalStateException(ex.toString());\r
92                 }\r
93             }\r
94             public java.lang.Object newInstance(java.lang.Object parent) {\r
95                 return null;\r
96             }\r
97         };\r
98         desc.setHandler(handler);\r
99         desc.setRequired(true);\r
100         desc.setMultivalued(false);\r
101         addFieldDescriptor(desc);\r
102         \r
103         //-- validation code for: _name\r
104         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
105         fieldValidator.setMinOccurs(1);\r
106         { //-- local scope\r
107             org.exolab.castor.xml.validators.StringValidator typeValidator;\r
108             typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
109             fieldValidator.setValidator(typeValidator);\r
110             typeValidator.setWhiteSpace("preserve");\r
111         }\r
112         desc.setValidator(fieldValidator);\r
113         //-- _display\r
114         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_display", "display", org.exolab.castor.xml.NodeType.Attribute);\r
115         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
116             public java.lang.Object getValue( java.lang.Object object ) \r
117                 throws IllegalStateException\r
118             {\r
119                 Group target = (Group) object;\r
120                 if (!target.hasDisplay()) { return null; }\r
121                 return (target.getDisplay() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
122             }\r
123             public void setValue( java.lang.Object object, java.lang.Object value) \r
124                 throws IllegalStateException, IllegalArgumentException\r
125             {\r
126                 try {\r
127                     Group target = (Group) object;\r
128                     // ignore null values for non optional primitives\r
129                     if (value == null) { return; }\r
130                     \r
131                     target.setDisplay( ((java.lang.Boolean) value).booleanValue());\r
132                 } catch (java.lang.Exception ex) {\r
133                     throw new IllegalStateException(ex.toString());\r
134                 }\r
135             }\r
136             public java.lang.Object newInstance(java.lang.Object parent) {\r
137                 return null;\r
138             }\r
139         };\r
140         desc.setHandler(handler);\r
141         desc.setRequired(true);\r
142         desc.setMultivalued(false);\r
143         addFieldDescriptor(desc);\r
144         \r
145         //-- validation code for: _display\r
146         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
147         fieldValidator.setMinOccurs(1);\r
148         { //-- local scope\r
149             org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
150             typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
151             fieldValidator.setValidator(typeValidator);\r
152         }\r
153         desc.setValidator(fieldValidator);\r
154         //-- initialize element descriptors\r
155         \r
156     }\r
157 \r
158 \r
159       //-----------/\r
160      //- Methods -/\r
161     //-----------/\r
162 \r
163     /**\r
164      * Method getAccessMode.\r
165      * \r
166      * @return the access mode specified for this class.\r
167      */\r
168     public org.exolab.castor.mapping.AccessMode getAccessMode(\r
169     ) {\r
170         return null;\r
171     }\r
172 \r
173     /**\r
174      * Method getIdentity.\r
175      * \r
176      * @return the identity field, null if this class has no\r
177      * identity.\r
178      */\r
179     public org.exolab.castor.mapping.FieldDescriptor getIdentity(\r
180     ) {\r
181         return super.getIdentity();\r
182     }\r
183 \r
184     /**\r
185      * Method getJavaClass.\r
186      * \r
187      * @return the Java class represented by this descriptor.\r
188      */\r
189     public java.lang.Class getJavaClass(\r
190     ) {\r
191         return jalview.schemabinding.version2.Group.class;\r
192     }\r
193 \r
194     /**\r
195      * Method getNameSpacePrefix.\r
196      * \r
197      * @return the namespace prefix to use when marshaling as XML.\r
198      */\r
199     public java.lang.String getNameSpacePrefix(\r
200     ) {\r
201         return _nsPrefix;\r
202     }\r
203 \r
204     /**\r
205      * Method getNameSpaceURI.\r
206      * \r
207      * @return the namespace URI used when marshaling and\r
208      * unmarshaling as XML.\r
209      */\r
210     public java.lang.String getNameSpaceURI(\r
211     ) {\r
212         return _nsURI;\r
213     }\r
214 \r
215     /**\r
216      * Method getValidator.\r
217      * \r
218      * @return a specific validator for the class described by this\r
219      * ClassDescriptor.\r
220      */\r
221     public org.exolab.castor.xml.TypeValidator getValidator(\r
222     ) {\r
223         return this;\r
224     }\r
225 \r
226     /**\r
227      * Method getXMLName.\r
228      * \r
229      * @return the XML Name for the Class being described.\r
230      */\r
231     public java.lang.String getXMLName(\r
232     ) {\r
233         return _xmlName;\r
234     }\r
235 \r
236     /**\r
237      * Method isElementDefinition.\r
238      * \r
239      * @return true if XML schema definition of this Class is that\r
240      * of a global\r
241      * element or element with anonymous type definition.\r
242      */\r
243     public boolean isElementDefinition(\r
244     ) {\r
245         return _elementDefinition;\r
246     }\r
247 \r
248 }\r