extended Colour element with additional optional attributes for graduated colour
[jalview.git] / src / jalview / schemabinding / version2 / descriptors / JSeqDescriptor.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.JSeq;\r
26 \r
27 /**\r
28  * Class JSeqDescriptor.\r
29  * \r
30  * @version $Revision$ $Date$\r
31  */\r
32 public class JSeqDescriptor 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 JSeqDescriptor() {\r
65         super();\r
66         _nsURI = "www.jalview.org";\r
67         _xmlName = "JSeq";\r
68         _elementDefinition = true;\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         //-- _colour\r
78         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_colour", "colour", 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                 JSeq target = (JSeq) object;\r
84                 if (!target.hasColour()) { return null; }\r
85                 return new java.lang.Integer(target.getColour());\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                     JSeq target = (JSeq) object;\r
92                     // if null, use delete method for optional primitives \r
93                     if (value == null) {\r
94                         target.deleteColour();\r
95                         return;\r
96                     }\r
97                     target.setColour( ((java.lang.Integer) value).intValue());\r
98                 } catch (java.lang.Exception ex) {\r
99                     throw new IllegalStateException(ex.toString());\r
100                 }\r
101             }\r
102             public java.lang.Object newInstance(java.lang.Object parent) {\r
103                 return null;\r
104             }\r
105         };\r
106         desc.setHandler(handler);\r
107         desc.setMultivalued(false);\r
108         addFieldDescriptor(desc);\r
109         \r
110         //-- validation code for: _colour\r
111         fieldValidator = new org.exolab.castor.xml.FieldValidator();\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         //-- _start\r
121         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_start", "start", 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                 JSeq target = (JSeq) object;\r
127                 if (!target.hasStart()) { return null; }\r
128                 return new java.lang.Integer(target.getStart());\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                     JSeq target = (JSeq) object;\r
135                     // ignore null values for non optional primitives\r
136                     if (value == null) { return; }\r
137                     \r
138                     target.setStart( ((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: _start\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         //-- _end\r
164         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);\r
165         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
166             public java.lang.Object getValue( java.lang.Object object ) \r
167                 throws IllegalStateException\r
168             {\r
169                 JSeq target = (JSeq) object;\r
170                 if (!target.hasEnd()) { return null; }\r
171                 return new java.lang.Integer(target.getEnd());\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                     JSeq target = (JSeq) object;\r
178                     // ignore null values for non optional primitives\r
179                     if (value == null) { return; }\r
180                     \r
181                     target.setEnd( ((java.lang.Integer) value).intValue());\r
182                 } catch (java.lang.Exception ex) {\r
183                     throw new IllegalStateException(ex.toString());\r
184                 }\r
185             }\r
186             public java.lang.Object newInstance(java.lang.Object parent) {\r
187                 return null;\r
188             }\r
189         };\r
190         desc.setHandler(handler);\r
191         desc.setRequired(true);\r
192         desc.setMultivalued(false);\r
193         addFieldDescriptor(desc);\r
194         \r
195         //-- validation code for: _end\r
196         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
197         fieldValidator.setMinOccurs(1);\r
198         { //-- local scope\r
199             org.exolab.castor.xml.validators.IntValidator typeValidator;\r
200             typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
201             fieldValidator.setValidator(typeValidator);\r
202             typeValidator.setMinInclusive(-2147483648);\r
203             typeValidator.setMaxInclusive(2147483647);\r
204         }\r
205         desc.setValidator(fieldValidator);\r
206         //-- _id\r
207         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);\r
208         desc.setImmutable(true);\r
209         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
210             public java.lang.Object getValue( java.lang.Object object ) \r
211                 throws IllegalStateException\r
212             {\r
213                 JSeq target = (JSeq) object;\r
214                 return target.getId();\r
215             }\r
216             public void setValue( java.lang.Object object, java.lang.Object value) \r
217                 throws IllegalStateException, IllegalArgumentException\r
218             {\r
219                 try {\r
220                     JSeq target = (JSeq) object;\r
221                     target.setId( (java.lang.String) value);\r
222                 } catch (java.lang.Exception ex) {\r
223                     throw new IllegalStateException(ex.toString());\r
224                 }\r
225             }\r
226             public java.lang.Object newInstance(java.lang.Object parent) {\r
227                 return null;\r
228             }\r
229         };\r
230         desc.setHandler(handler);\r
231         desc.setRequired(true);\r
232         desc.setMultivalued(false);\r
233         addFieldDescriptor(desc);\r
234         \r
235         //-- validation code for: _id\r
236         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
237         fieldValidator.setMinOccurs(1);\r
238         { //-- local scope\r
239             org.exolab.castor.xml.validators.StringValidator typeValidator;\r
240             typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
241             fieldValidator.setValidator(typeValidator);\r
242             typeValidator.setWhiteSpace("preserve");\r
243         }\r
244         desc.setValidator(fieldValidator);\r
245         //-- _hidden\r
246         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_hidden", "hidden", org.exolab.castor.xml.NodeType.Attribute);\r
247         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
248             public java.lang.Object getValue( java.lang.Object object ) \r
249                 throws IllegalStateException\r
250             {\r
251                 JSeq target = (JSeq) object;\r
252                 if (!target.hasHidden()) { return null; }\r
253                 return (target.getHidden() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
254             }\r
255             public void setValue( java.lang.Object object, java.lang.Object value) \r
256                 throws IllegalStateException, IllegalArgumentException\r
257             {\r
258                 try {\r
259                     JSeq target = (JSeq) object;\r
260                     // if null, use delete method for optional primitives \r
261                     if (value == null) {\r
262                         target.deleteHidden();\r
263                         return;\r
264                     }\r
265                     target.setHidden( ((java.lang.Boolean) value).booleanValue());\r
266                 } catch (java.lang.Exception ex) {\r
267                     throw new IllegalStateException(ex.toString());\r
268                 }\r
269             }\r
270             public java.lang.Object newInstance(java.lang.Object parent) {\r
271                 return null;\r
272             }\r
273         };\r
274         desc.setHandler(handler);\r
275         desc.setMultivalued(false);\r
276         addFieldDescriptor(desc);\r
277         \r
278         //-- validation code for: _hidden\r
279         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
280         { //-- local scope\r
281             org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
282             typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
283             fieldValidator.setValidator(typeValidator);\r
284         }\r
285         desc.setValidator(fieldValidator);\r
286         //-- initialize element descriptors\r
287         \r
288         //-- _featuresList\r
289         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Features.class, "_featuresList", "features", org.exolab.castor.xml.NodeType.Element);\r
290         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
291             public java.lang.Object getValue( java.lang.Object object ) \r
292                 throws IllegalStateException\r
293             {\r
294                 JSeq target = (JSeq) object;\r
295                 return target.getFeatures();\r
296             }\r
297             public void setValue( java.lang.Object object, java.lang.Object value) \r
298                 throws IllegalStateException, IllegalArgumentException\r
299             {\r
300                 try {\r
301                     JSeq target = (JSeq) object;\r
302                     target.addFeatures( (jalview.schemabinding.version2.Features) value);\r
303                 } catch (java.lang.Exception ex) {\r
304                     throw new IllegalStateException(ex.toString());\r
305                 }\r
306             }\r
307             public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {\r
308                 try {\r
309                     JSeq target = (JSeq) object;\r
310                     target.removeAllFeatures();\r
311                 } catch (java.lang.Exception ex) {\r
312                     throw new IllegalStateException(ex.toString());\r
313                 }\r
314             }\r
315             public java.lang.Object newInstance(java.lang.Object parent) {\r
316                 return new jalview.schemabinding.version2.Features();\r
317             }\r
318         };\r
319         desc.setHandler(handler);\r
320         desc.setNameSpaceURI("www.jalview.org");\r
321         desc.setMultivalued(true);\r
322         addFieldDescriptor(desc);\r
323         \r
324         //-- validation code for: _featuresList\r
325         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
326         fieldValidator.setMinOccurs(0);\r
327         { //-- local scope\r
328         }\r
329         desc.setValidator(fieldValidator);\r
330         //-- _pdbidsList\r
331         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Pdbids.class, "_pdbidsList", "pdbids", org.exolab.castor.xml.NodeType.Element);\r
332         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
333             public java.lang.Object getValue( java.lang.Object object ) \r
334                 throws IllegalStateException\r
335             {\r
336                 JSeq target = (JSeq) object;\r
337                 return target.getPdbids();\r
338             }\r
339             public void setValue( java.lang.Object object, java.lang.Object value) \r
340                 throws IllegalStateException, IllegalArgumentException\r
341             {\r
342                 try {\r
343                     JSeq target = (JSeq) object;\r
344                     target.addPdbids( (jalview.schemabinding.version2.Pdbids) value);\r
345                 } catch (java.lang.Exception ex) {\r
346                     throw new IllegalStateException(ex.toString());\r
347                 }\r
348             }\r
349             public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {\r
350                 try {\r
351                     JSeq target = (JSeq) object;\r
352                     target.removeAllPdbids();\r
353                 } catch (java.lang.Exception ex) {\r
354                     throw new IllegalStateException(ex.toString());\r
355                 }\r
356             }\r
357             public java.lang.Object newInstance(java.lang.Object parent) {\r
358                 return new jalview.schemabinding.version2.Pdbids();\r
359             }\r
360         };\r
361         desc.setHandler(handler);\r
362         desc.setNameSpaceURI("www.jalview.org");\r
363         desc.setMultivalued(true);\r
364         addFieldDescriptor(desc);\r
365         \r
366         //-- validation code for: _pdbidsList\r
367         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
368         fieldValidator.setMinOccurs(0);\r
369         { //-- local scope\r
370         }\r
371         desc.setValidator(fieldValidator);\r
372         //-- _hiddenSequencesList\r
373         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_hiddenSequencesList", "hiddenSequences", org.exolab.castor.xml.NodeType.Element);\r
374         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
375             public java.lang.Object getValue( java.lang.Object object ) \r
376                 throws IllegalStateException\r
377             {\r
378                 JSeq target = (JSeq) object;\r
379                 return target.getHiddenSequences();\r
380             }\r
381             public void setValue( java.lang.Object object, java.lang.Object value) \r
382                 throws IllegalStateException, IllegalArgumentException\r
383             {\r
384                 try {\r
385                     JSeq target = (JSeq) object;\r
386                     // ignore null values for non optional primitives\r
387                     if (value == null) { return; }\r
388                     \r
389                     target.addHiddenSequences( ((java.lang.Integer) value).intValue());\r
390                 } catch (java.lang.Exception ex) {\r
391                     throw new IllegalStateException(ex.toString());\r
392                 }\r
393             }\r
394             public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {\r
395                 try {\r
396                     JSeq target = (JSeq) object;\r
397                     target.removeAllHiddenSequences();\r
398                 } catch (java.lang.Exception ex) {\r
399                     throw new IllegalStateException(ex.toString());\r
400                 }\r
401             }\r
402             public java.lang.Object newInstance(java.lang.Object parent) {\r
403                 return null;\r
404             }\r
405         };\r
406         desc.setHandler(handler);\r
407         desc.setNameSpaceURI("www.jalview.org");\r
408         desc.setMultivalued(true);\r
409         addFieldDescriptor(desc);\r
410         \r
411         //-- validation code for: _hiddenSequencesList\r
412         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
413         fieldValidator.setMinOccurs(0);\r
414         { //-- local scope\r
415             org.exolab.castor.xml.validators.IntValidator typeValidator;\r
416             typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
417             fieldValidator.setValidator(typeValidator);\r
418             typeValidator.setMinInclusive(-2147483648);\r
419             typeValidator.setMaxInclusive(2147483647);\r
420         }\r
421         desc.setValidator(fieldValidator);\r
422     }\r
423 \r
424 \r
425       //-----------/\r
426      //- Methods -/\r
427     //-----------/\r
428 \r
429     /**\r
430      * Method getAccessMode.\r
431      * \r
432      * @return the access mode specified for this class.\r
433      */\r
434     public org.exolab.castor.mapping.AccessMode getAccessMode(\r
435     ) {\r
436         return null;\r
437     }\r
438 \r
439     /**\r
440      * Method getIdentity.\r
441      * \r
442      * @return the identity field, null if this class has no\r
443      * identity.\r
444      */\r
445     public org.exolab.castor.mapping.FieldDescriptor getIdentity(\r
446     ) {\r
447         return super.getIdentity();\r
448     }\r
449 \r
450     /**\r
451      * Method getJavaClass.\r
452      * \r
453      * @return the Java class represented by this descriptor.\r
454      */\r
455     public java.lang.Class getJavaClass(\r
456     ) {\r
457         return jalview.schemabinding.version2.JSeq.class;\r
458     }\r
459 \r
460     /**\r
461      * Method getNameSpacePrefix.\r
462      * \r
463      * @return the namespace prefix to use when marshaling as XML.\r
464      */\r
465     public java.lang.String getNameSpacePrefix(\r
466     ) {\r
467         return _nsPrefix;\r
468     }\r
469 \r
470     /**\r
471      * Method getNameSpaceURI.\r
472      * \r
473      * @return the namespace URI used when marshaling and\r
474      * unmarshaling as XML.\r
475      */\r
476     public java.lang.String getNameSpaceURI(\r
477     ) {\r
478         return _nsURI;\r
479     }\r
480 \r
481     /**\r
482      * Method getValidator.\r
483      * \r
484      * @return a specific validator for the class described by this\r
485      * ClassDescriptor.\r
486      */\r
487     public org.exolab.castor.xml.TypeValidator getValidator(\r
488     ) {\r
489         return this;\r
490     }\r
491 \r
492     /**\r
493      * Method getXMLName.\r
494      * \r
495      * @return the XML Name for the Class being described.\r
496      */\r
497     public java.lang.String getXMLName(\r
498     ) {\r
499         return _xmlName;\r
500     }\r
501 \r
502     /**\r
503      * Method isElementDefinition.\r
504      * \r
505      * @return true if XML schema definition of this Class is that\r
506      * of a global\r
507      * element or element with anonymous type definition.\r
508      */\r
509     public boolean isElementDefinition(\r
510     ) {\r
511         return _elementDefinition;\r
512     }\r
513 \r
514 }\r