extended Colour element with additional optional attributes for graduated colour
[jalview.git] / src / jalview / schemabinding / version2 / descriptors / FeatureDescriptor.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer (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.Feature;\r
26 \r
27 /**\r
28  * Class FeatureDescriptor.\r
29  * \r
30  * @version $Revision$ $Date$\r
31  */\r
32 public class FeatureDescriptor 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 FeatureDescriptor() {\r
65         super();\r
66         _nsURI = "www.jalview.org";\r
67         _xmlName = "feature";\r
68         _elementDefinition = false;\r
69         \r
70         //-- set grouping compositor\r
71         setCompositorAsSequence();\r
72         org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
73         org.exolab.castor.mapping.FieldHandler             handler        = null;\r
74         org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
75         //-- initialize attribute descriptors\r
76         \r
77         //-- _begin\r
78         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_begin", "begin", org.exolab.castor.xml.NodeType.Attribute);\r
79         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
80             public java.lang.Object getValue( java.lang.Object object ) \r
81                 throws IllegalStateException\r
82             {\r
83                 Feature target = (Feature) object;\r
84                 if (!target.hasBegin()) { return null; }\r
85                 return new java.lang.Integer(target.getBegin());\r
86             }\r
87             public void setValue( java.lang.Object object, java.lang.Object value) \r
88                 throws IllegalStateException, IllegalArgumentException\r
89             {\r
90                 try {\r
91                     Feature target = (Feature) object;\r
92                     // ignore null values for non optional primitives\r
93                     if (value == null) { return; }\r
94                     \r
95                     target.setBegin( ((java.lang.Integer) value).intValue());\r
96                 } catch (java.lang.Exception ex) {\r
97                     throw new IllegalStateException(ex.toString());\r
98                 }\r
99             }\r
100             public java.lang.Object newInstance(java.lang.Object parent) {\r
101                 return null;\r
102             }\r
103         };\r
104         desc.setHandler(handler);\r
105         desc.setRequired(true);\r
106         desc.setMultivalued(false);\r
107         addFieldDescriptor(desc);\r
108         \r
109         //-- validation code for: _begin\r
110         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
111         fieldValidator.setMinOccurs(1);\r
112         { //-- local scope\r
113             org.exolab.castor.xml.validators.IntValidator typeValidator;\r
114             typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
115             fieldValidator.setValidator(typeValidator);\r
116             typeValidator.setMinInclusive(-2147483648);\r
117             typeValidator.setMaxInclusive(2147483647);\r
118         }\r
119         desc.setValidator(fieldValidator);\r
120         //-- _end\r
121         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);\r
122         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
123             public java.lang.Object getValue( java.lang.Object object ) \r
124                 throws IllegalStateException\r
125             {\r
126                 Feature target = (Feature) object;\r
127                 if (!target.hasEnd()) { return null; }\r
128                 return new java.lang.Integer(target.getEnd());\r
129             }\r
130             public void setValue( java.lang.Object object, java.lang.Object value) \r
131                 throws IllegalStateException, IllegalArgumentException\r
132             {\r
133                 try {\r
134                     Feature target = (Feature) object;\r
135                     // ignore null values for non optional primitives\r
136                     if (value == null) { return; }\r
137                     \r
138                     target.setEnd( ((java.lang.Integer) value).intValue());\r
139                 } catch (java.lang.Exception ex) {\r
140                     throw new IllegalStateException(ex.toString());\r
141                 }\r
142             }\r
143             public java.lang.Object newInstance(java.lang.Object parent) {\r
144                 return null;\r
145             }\r
146         };\r
147         desc.setHandler(handler);\r
148         desc.setRequired(true);\r
149         desc.setMultivalued(false);\r
150         addFieldDescriptor(desc);\r
151         \r
152         //-- validation code for: _end\r
153         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
154         fieldValidator.setMinOccurs(1);\r
155         { //-- local scope\r
156             org.exolab.castor.xml.validators.IntValidator typeValidator;\r
157             typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
158             fieldValidator.setValidator(typeValidator);\r
159             typeValidator.setMinInclusive(-2147483648);\r
160             typeValidator.setMaxInclusive(2147483647);\r
161         }\r
162         desc.setValidator(fieldValidator);\r
163         //-- _type\r
164         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_type", "type", org.exolab.castor.xml.NodeType.Attribute);\r
165         desc.setImmutable(true);\r
166         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
167             public java.lang.Object getValue( java.lang.Object object ) \r
168                 throws IllegalStateException\r
169             {\r
170                 Feature target = (Feature) object;\r
171                 return target.getType();\r
172             }\r
173             public void setValue( java.lang.Object object, java.lang.Object value) \r
174                 throws IllegalStateException, IllegalArgumentException\r
175             {\r
176                 try {\r
177                     Feature target = (Feature) object;\r
178                     target.setType( (java.lang.String) value);\r
179                 } catch (java.lang.Exception ex) {\r
180                     throw new IllegalStateException(ex.toString());\r
181                 }\r
182             }\r
183             public java.lang.Object newInstance(java.lang.Object parent) {\r
184                 return null;\r
185             }\r
186         };\r
187         desc.setHandler(handler);\r
188         desc.setRequired(true);\r
189         desc.setMultivalued(false);\r
190         addFieldDescriptor(desc);\r
191         \r
192         //-- validation code for: _type\r
193         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
194         fieldValidator.setMinOccurs(1);\r
195         { //-- local scope\r
196             org.exolab.castor.xml.validators.StringValidator typeValidator;\r
197             typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
198             fieldValidator.setValidator(typeValidator);\r
199             typeValidator.setWhiteSpace("preserve");\r
200         }\r
201         desc.setValidator(fieldValidator);\r
202         //-- _description\r
203         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_description", "description", org.exolab.castor.xml.NodeType.Attribute);\r
204         desc.setImmutable(true);\r
205         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
206             public java.lang.Object getValue( java.lang.Object object ) \r
207                 throws IllegalStateException\r
208             {\r
209                 Feature target = (Feature) object;\r
210                 return target.getDescription();\r
211             }\r
212             public void setValue( java.lang.Object object, java.lang.Object value) \r
213                 throws IllegalStateException, IllegalArgumentException\r
214             {\r
215                 try {\r
216                     Feature target = (Feature) object;\r
217                     target.setDescription( (java.lang.String) value);\r
218                 } catch (java.lang.Exception ex) {\r
219                     throw new IllegalStateException(ex.toString());\r
220                 }\r
221             }\r
222             public java.lang.Object newInstance(java.lang.Object parent) {\r
223                 return null;\r
224             }\r
225         };\r
226         desc.setHandler(handler);\r
227         desc.setMultivalued(false);\r
228         addFieldDescriptor(desc);\r
229         \r
230         //-- validation code for: _description\r
231         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
232         { //-- local scope\r
233             org.exolab.castor.xml.validators.StringValidator typeValidator;\r
234             typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
235             fieldValidator.setValidator(typeValidator);\r
236             typeValidator.setWhiteSpace("preserve");\r
237         }\r
238         desc.setValidator(fieldValidator);\r
239         //-- _status\r
240         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_status", "status", org.exolab.castor.xml.NodeType.Attribute);\r
241         desc.setImmutable(true);\r
242         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
243             public java.lang.Object getValue( java.lang.Object object ) \r
244                 throws IllegalStateException\r
245             {\r
246                 Feature target = (Feature) object;\r
247                 return target.getStatus();\r
248             }\r
249             public void setValue( java.lang.Object object, java.lang.Object value) \r
250                 throws IllegalStateException, IllegalArgumentException\r
251             {\r
252                 try {\r
253                     Feature target = (Feature) object;\r
254                     target.setStatus( (java.lang.String) value);\r
255                 } catch (java.lang.Exception ex) {\r
256                     throw new IllegalStateException(ex.toString());\r
257                 }\r
258             }\r
259             public java.lang.Object newInstance(java.lang.Object parent) {\r
260                 return null;\r
261             }\r
262         };\r
263         desc.setHandler(handler);\r
264         desc.setMultivalued(false);\r
265         addFieldDescriptor(desc);\r
266         \r
267         //-- validation code for: _status\r
268         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
269         { //-- local scope\r
270             org.exolab.castor.xml.validators.StringValidator typeValidator;\r
271             typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
272             fieldValidator.setValidator(typeValidator);\r
273             typeValidator.setWhiteSpace("preserve");\r
274         }\r
275         desc.setValidator(fieldValidator);\r
276         //-- _featureGroup\r
277         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_featureGroup", "featureGroup", org.exolab.castor.xml.NodeType.Attribute);\r
278         desc.setImmutable(true);\r
279         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
280             public java.lang.Object getValue( java.lang.Object object ) \r
281                 throws IllegalStateException\r
282             {\r
283                 Feature target = (Feature) object;\r
284                 return target.getFeatureGroup();\r
285             }\r
286             public void setValue( java.lang.Object object, java.lang.Object value) \r
287                 throws IllegalStateException, IllegalArgumentException\r
288             {\r
289                 try {\r
290                     Feature target = (Feature) object;\r
291                     target.setFeatureGroup( (java.lang.String) value);\r
292                 } catch (java.lang.Exception ex) {\r
293                     throw new IllegalStateException(ex.toString());\r
294                 }\r
295             }\r
296             public java.lang.Object newInstance(java.lang.Object parent) {\r
297                 return null;\r
298             }\r
299         };\r
300         desc.setHandler(handler);\r
301         desc.setMultivalued(false);\r
302         addFieldDescriptor(desc);\r
303         \r
304         //-- validation code for: _featureGroup\r
305         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
306         { //-- local scope\r
307             org.exolab.castor.xml.validators.StringValidator typeValidator;\r
308             typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
309             fieldValidator.setValidator(typeValidator);\r
310             typeValidator.setWhiteSpace("preserve");\r
311         }\r
312         desc.setValidator(fieldValidator);\r
313         //-- _score\r
314         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Float.TYPE, "_score", "score", org.exolab.castor.xml.NodeType.Attribute);\r
315         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
316             public java.lang.Object getValue( java.lang.Object object ) \r
317                 throws IllegalStateException\r
318             {\r
319                 Feature target = (Feature) object;\r
320                 if (!target.hasScore()) { return null; }\r
321                 return new java.lang.Float(target.getScore());\r
322             }\r
323             public void setValue( java.lang.Object object, java.lang.Object value) \r
324                 throws IllegalStateException, IllegalArgumentException\r
325             {\r
326                 try {\r
327                     Feature target = (Feature) object;\r
328                     // if null, use delete method for optional primitives \r
329                     if (value == null) {\r
330                         target.deleteScore();\r
331                         return;\r
332                     }\r
333                     target.setScore( ((java.lang.Float) value).floatValue());\r
334                 } catch (java.lang.Exception ex) {\r
335                     throw new IllegalStateException(ex.toString());\r
336                 }\r
337             }\r
338             public java.lang.Object newInstance(java.lang.Object parent) {\r
339                 return null;\r
340             }\r
341         };\r
342         desc.setHandler(handler);\r
343         desc.setMultivalued(false);\r
344         addFieldDescriptor(desc);\r
345         \r
346         //-- validation code for: _score\r
347         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
348         { //-- local scope\r
349             org.exolab.castor.xml.validators.FloatValidator typeValidator;\r
350             typeValidator = new org.exolab.castor.xml.validators.FloatValidator();\r
351             fieldValidator.setValidator(typeValidator);\r
352             typeValidator.setMinInclusive((float) -3.4028235E38);\r
353             typeValidator.setMaxInclusive((float) 3.4028235E38);\r
354         }\r
355         desc.setValidator(fieldValidator);\r
356         //-- initialize element descriptors\r
357         \r
358         //-- _otherDataList\r
359         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.OtherData.class, "_otherDataList", "otherData", org.exolab.castor.xml.NodeType.Element);\r
360         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
361             public java.lang.Object getValue( java.lang.Object object ) \r
362                 throws IllegalStateException\r
363             {\r
364                 Feature target = (Feature) object;\r
365                 return target.getOtherData();\r
366             }\r
367             public void setValue( java.lang.Object object, java.lang.Object value) \r
368                 throws IllegalStateException, IllegalArgumentException\r
369             {\r
370                 try {\r
371                     Feature target = (Feature) object;\r
372                     target.addOtherData( (jalview.schemabinding.version2.OtherData) value);\r
373                 } catch (java.lang.Exception ex) {\r
374                     throw new IllegalStateException(ex.toString());\r
375                 }\r
376             }\r
377             public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {\r
378                 try {\r
379                     Feature target = (Feature) object;\r
380                     target.removeAllOtherData();\r
381                 } catch (java.lang.Exception ex) {\r
382                     throw new IllegalStateException(ex.toString());\r
383                 }\r
384             }\r
385             public java.lang.Object newInstance(java.lang.Object parent) {\r
386                 return new jalview.schemabinding.version2.OtherData();\r
387             }\r
388         };\r
389         desc.setHandler(handler);\r
390         desc.setNameSpaceURI("www.jalview.org");\r
391         desc.setMultivalued(true);\r
392         addFieldDescriptor(desc);\r
393         \r
394         //-- validation code for: _otherDataList\r
395         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
396         fieldValidator.setMinOccurs(0);\r
397         { //-- local scope\r
398         }\r
399         desc.setValidator(fieldValidator);\r
400     }\r
401 \r
402 \r
403       //-----------/\r
404      //- Methods -/\r
405     //-----------/\r
406 \r
407     /**\r
408      * Method getAccessMode.\r
409      * \r
410      * @return the access mode specified for this class.\r
411      */\r
412     public org.exolab.castor.mapping.AccessMode getAccessMode(\r
413     ) {\r
414         return null;\r
415     }\r
416 \r
417     /**\r
418      * Method getIdentity.\r
419      * \r
420      * @return the identity field, null if this class has no\r
421      * identity.\r
422      */\r
423     public org.exolab.castor.mapping.FieldDescriptor getIdentity(\r
424     ) {\r
425         return super.getIdentity();\r
426     }\r
427 \r
428     /**\r
429      * Method getJavaClass.\r
430      * \r
431      * @return the Java class represented by this descriptor.\r
432      */\r
433     public java.lang.Class getJavaClass(\r
434     ) {\r
435         return jalview.schemabinding.version2.Feature.class;\r
436     }\r
437 \r
438     /**\r
439      * Method getNameSpacePrefix.\r
440      * \r
441      * @return the namespace prefix to use when marshaling as XML.\r
442      */\r
443     public java.lang.String getNameSpacePrefix(\r
444     ) {\r
445         return _nsPrefix;\r
446     }\r
447 \r
448     /**\r
449      * Method getNameSpaceURI.\r
450      * \r
451      * @return the namespace URI used when marshaling and\r
452      * unmarshaling as XML.\r
453      */\r
454     public java.lang.String getNameSpaceURI(\r
455     ) {\r
456         return _nsURI;\r
457     }\r
458 \r
459     /**\r
460      * Method getValidator.\r
461      * \r
462      * @return a specific validator for the class described by this\r
463      * ClassDescriptor.\r
464      */\r
465     public org.exolab.castor.xml.TypeValidator getValidator(\r
466     ) {\r
467         return this;\r
468     }\r
469 \r
470     /**\r
471      * Method getXMLName.\r
472      * \r
473      * @return the XML Name for the Class being described.\r
474      */\r
475     public java.lang.String getXMLName(\r
476     ) {\r
477         return _xmlName;\r
478     }\r
479 \r
480     /**\r
481      * Method isElementDefinition.\r
482      * \r
483      * @return true if XML schema definition of this Class is that\r
484      * of a global\r
485      * element or element with anonymous type definition.\r
486      */\r
487     public boolean isElementDefinition(\r
488     ) {\r
489         return _elementDefinition;\r
490     }\r
491 \r
492 }\r