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