merge from 2_4_Release branch
[jalview.git] / src / jalview / schemabinding / version2 / descriptors / JSeqDescriptor.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)\r
3  * Copyright (C) 2008 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\r
33         org.exolab.castor.xml.util.XMLClassDescriptorImpl\r
34 {\r
35 \r
36   // --------------------------/\r
37   // - Class/Member Variables -/\r
38   // --------------------------/\r
39 \r
40   /**\r
41    * Field _elementDefinition.\r
42    */\r
43   private boolean _elementDefinition;\r
44 \r
45   /**\r
46    * Field _nsPrefix.\r
47    */\r
48   private java.lang.String _nsPrefix;\r
49 \r
50   /**\r
51    * Field _nsURI.\r
52    */\r
53   private java.lang.String _nsURI;\r
54 \r
55   /**\r
56    * Field _xmlName.\r
57    */\r
58   private java.lang.String _xmlName;\r
59 \r
60   // ----------------/\r
61   // - Constructors -/\r
62   // ----------------/\r
63 \r
64   public JSeqDescriptor()\r
65   {\r
66     super();\r
67     _nsURI = "www.jalview.org";\r
68     _xmlName = "JSeq";\r
69     _elementDefinition = true;\r
70 \r
71     // -- set grouping compositor\r
72     setCompositorAsSequence();\r
73     org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;\r
74     org.exolab.castor.mapping.FieldHandler handler = null;\r
75     org.exolab.castor.xml.FieldValidator fieldValidator = null;\r
76     // -- initialize attribute descriptors\r
77 \r
78     // -- _colour\r
79     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
80             java.lang.Integer.TYPE, "_colour", "colour",\r
81             org.exolab.castor.xml.NodeType.Attribute);\r
82     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
83     {\r
84       public java.lang.Object getValue(java.lang.Object object)\r
85               throws IllegalStateException\r
86       {\r
87         JSeq target = (JSeq) object;\r
88         if (!target.hasColour())\r
89         {\r
90           return null;\r
91         }\r
92         return new java.lang.Integer(target.getColour());\r
93       }\r
94 \r
95       public void setValue(java.lang.Object object, java.lang.Object value)\r
96               throws IllegalStateException, IllegalArgumentException\r
97       {\r
98         try\r
99         {\r
100           JSeq target = (JSeq) object;\r
101           // if null, use delete method for optional primitives\r
102           if (value == null)\r
103           {\r
104             target.deleteColour();\r
105             return;\r
106           }\r
107           target.setColour(((java.lang.Integer) value).intValue());\r
108         } catch (java.lang.Exception ex)\r
109         {\r
110           throw new IllegalStateException(ex.toString());\r
111         }\r
112       }\r
113 \r
114       public java.lang.Object newInstance(java.lang.Object parent)\r
115       {\r
116         return null;\r
117       }\r
118     };\r
119     desc.setHandler(handler);\r
120     desc.setMultivalued(false);\r
121     addFieldDescriptor(desc);\r
122 \r
123     // -- validation code for: _colour\r
124     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
125     { // -- local scope\r
126       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
127       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
128       fieldValidator.setValidator(typeValidator);\r
129       typeValidator.setMinInclusive(-2147483648);\r
130       typeValidator.setMaxInclusive(2147483647);\r
131     }\r
132     desc.setValidator(fieldValidator);\r
133     // -- _start\r
134     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
135             java.lang.Integer.TYPE, "_start", "start",\r
136             org.exolab.castor.xml.NodeType.Attribute);\r
137     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
138     {\r
139       public java.lang.Object getValue(java.lang.Object object)\r
140               throws IllegalStateException\r
141       {\r
142         JSeq target = (JSeq) object;\r
143         if (!target.hasStart())\r
144         {\r
145           return null;\r
146         }\r
147         return new java.lang.Integer(target.getStart());\r
148       }\r
149 \r
150       public void setValue(java.lang.Object object, java.lang.Object value)\r
151               throws IllegalStateException, IllegalArgumentException\r
152       {\r
153         try\r
154         {\r
155           JSeq target = (JSeq) object;\r
156           // ignore null values for non optional primitives\r
157           if (value == null)\r
158           {\r
159             return;\r
160           }\r
161 \r
162           target.setStart(((java.lang.Integer) value).intValue());\r
163         } catch (java.lang.Exception ex)\r
164         {\r
165           throw new IllegalStateException(ex.toString());\r
166         }\r
167       }\r
168 \r
169       public java.lang.Object newInstance(java.lang.Object parent)\r
170       {\r
171         return null;\r
172       }\r
173     };\r
174     desc.setHandler(handler);\r
175     desc.setRequired(true);\r
176     desc.setMultivalued(false);\r
177     addFieldDescriptor(desc);\r
178 \r
179     // -- validation code for: _start\r
180     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
181     fieldValidator.setMinOccurs(1);\r
182     { // -- local scope\r
183       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
184       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
185       fieldValidator.setValidator(typeValidator);\r
186       typeValidator.setMinInclusive(-2147483648);\r
187       typeValidator.setMaxInclusive(2147483647);\r
188     }\r
189     desc.setValidator(fieldValidator);\r
190     // -- _end\r
191     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
192             java.lang.Integer.TYPE, "_end", "end",\r
193             org.exolab.castor.xml.NodeType.Attribute);\r
194     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
195     {\r
196       public java.lang.Object getValue(java.lang.Object object)\r
197               throws IllegalStateException\r
198       {\r
199         JSeq target = (JSeq) object;\r
200         if (!target.hasEnd())\r
201         {\r
202           return null;\r
203         }\r
204         return new java.lang.Integer(target.getEnd());\r
205       }\r
206 \r
207       public void setValue(java.lang.Object object, java.lang.Object value)\r
208               throws IllegalStateException, IllegalArgumentException\r
209       {\r
210         try\r
211         {\r
212           JSeq target = (JSeq) object;\r
213           // ignore null values for non optional primitives\r
214           if (value == null)\r
215           {\r
216             return;\r
217           }\r
218 \r
219           target.setEnd(((java.lang.Integer) value).intValue());\r
220         } catch (java.lang.Exception ex)\r
221         {\r
222           throw new IllegalStateException(ex.toString());\r
223         }\r
224       }\r
225 \r
226       public java.lang.Object newInstance(java.lang.Object parent)\r
227       {\r
228         return null;\r
229       }\r
230     };\r
231     desc.setHandler(handler);\r
232     desc.setRequired(true);\r
233     desc.setMultivalued(false);\r
234     addFieldDescriptor(desc);\r
235 \r
236     // -- validation code for: _end\r
237     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
238     fieldValidator.setMinOccurs(1);\r
239     { // -- local scope\r
240       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
241       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
242       fieldValidator.setValidator(typeValidator);\r
243       typeValidator.setMinInclusive(-2147483648);\r
244       typeValidator.setMaxInclusive(2147483647);\r
245     }\r
246     desc.setValidator(fieldValidator);\r
247     // -- _id\r
248     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
249             java.lang.String.class, "_id", "id",\r
250             org.exolab.castor.xml.NodeType.Attribute);\r
251     desc.setImmutable(true);\r
252     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
253     {\r
254       public java.lang.Object getValue(java.lang.Object object)\r
255               throws IllegalStateException\r
256       {\r
257         JSeq target = (JSeq) object;\r
258         return target.getId();\r
259       }\r
260 \r
261       public void setValue(java.lang.Object object, java.lang.Object value)\r
262               throws IllegalStateException, IllegalArgumentException\r
263       {\r
264         try\r
265         {\r
266           JSeq target = (JSeq) object;\r
267           target.setId((java.lang.String) value);\r
268         } catch (java.lang.Exception ex)\r
269         {\r
270           throw new IllegalStateException(ex.toString());\r
271         }\r
272       }\r
273 \r
274       public java.lang.Object newInstance(java.lang.Object parent)\r
275       {\r
276         return null;\r
277       }\r
278     };\r
279     desc.setHandler(handler);\r
280     desc.setRequired(true);\r
281     desc.setMultivalued(false);\r
282     addFieldDescriptor(desc);\r
283 \r
284     // -- validation code for: _id\r
285     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
286     fieldValidator.setMinOccurs(1);\r
287     { // -- local scope\r
288       org.exolab.castor.xml.validators.StringValidator typeValidator;\r
289       typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
290       fieldValidator.setValidator(typeValidator);\r
291       typeValidator.setWhiteSpace("preserve");\r
292     }\r
293     desc.setValidator(fieldValidator);\r
294     // -- _hidden\r
295     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
296             java.lang.Boolean.TYPE, "_hidden", "hidden",\r
297             org.exolab.castor.xml.NodeType.Attribute);\r
298     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
299     {\r
300       public java.lang.Object getValue(java.lang.Object object)\r
301               throws IllegalStateException\r
302       {\r
303         JSeq target = (JSeq) object;\r
304         if (!target.hasHidden())\r
305         {\r
306           return null;\r
307         }\r
308         return (target.getHidden() ? java.lang.Boolean.TRUE\r
309                 : java.lang.Boolean.FALSE);\r
310       }\r
311 \r
312       public void setValue(java.lang.Object object, java.lang.Object value)\r
313               throws IllegalStateException, IllegalArgumentException\r
314       {\r
315         try\r
316         {\r
317           JSeq target = (JSeq) object;\r
318           // if null, use delete method for optional primitives\r
319           if (value == null)\r
320           {\r
321             target.deleteHidden();\r
322             return;\r
323           }\r
324           target.setHidden(((java.lang.Boolean) value).booleanValue());\r
325         } catch (java.lang.Exception ex)\r
326         {\r
327           throw new IllegalStateException(ex.toString());\r
328         }\r
329       }\r
330 \r
331       public java.lang.Object newInstance(java.lang.Object parent)\r
332       {\r
333         return null;\r
334       }\r
335     };\r
336     desc.setHandler(handler);\r
337     desc.setMultivalued(false);\r
338     addFieldDescriptor(desc);\r
339 \r
340     // -- validation code for: _hidden\r
341     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
342     { // -- local scope\r
343       org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
344       typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
345       fieldValidator.setValidator(typeValidator);\r
346     }\r
347     desc.setValidator(fieldValidator);\r
348     // -- initialize element descriptors\r
349 \r
350     // -- _featuresList\r
351     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
352             jalview.schemabinding.version2.Features.class, "_featuresList",\r
353             "features", org.exolab.castor.xml.NodeType.Element);\r
354     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
355     {\r
356       public java.lang.Object getValue(java.lang.Object object)\r
357               throws IllegalStateException\r
358       {\r
359         JSeq target = (JSeq) object;\r
360         return target.getFeatures();\r
361       }\r
362 \r
363       public void setValue(java.lang.Object object, java.lang.Object value)\r
364               throws IllegalStateException, IllegalArgumentException\r
365       {\r
366         try\r
367         {\r
368           JSeq target = (JSeq) object;\r
369           target\r
370                   .addFeatures((jalview.schemabinding.version2.Features) value);\r
371         } catch (java.lang.Exception ex)\r
372         {\r
373           throw new IllegalStateException(ex.toString());\r
374         }\r
375       }\r
376 \r
377       public void resetValue(Object object) throws IllegalStateException,\r
378               IllegalArgumentException\r
379       {\r
380         try\r
381         {\r
382           JSeq target = (JSeq) object;\r
383           target.removeAllFeatures();\r
384         } catch (java.lang.Exception ex)\r
385         {\r
386           throw new IllegalStateException(ex.toString());\r
387         }\r
388       }\r
389 \r
390       public java.lang.Object newInstance(java.lang.Object parent)\r
391       {\r
392         return new jalview.schemabinding.version2.Features();\r
393       }\r
394     };\r
395     desc.setHandler(handler);\r
396     desc.setNameSpaceURI("www.jalview.org");\r
397     desc.setMultivalued(true);\r
398     addFieldDescriptor(desc);\r
399 \r
400     // -- validation code for: _featuresList\r
401     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
402     fieldValidator.setMinOccurs(0);\r
403     { // -- local scope\r
404     }\r
405     desc.setValidator(fieldValidator);\r
406     // -- _pdbidsList\r
407     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
408             jalview.schemabinding.version2.Pdbids.class, "_pdbidsList",\r
409             "pdbids", org.exolab.castor.xml.NodeType.Element);\r
410     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
411     {\r
412       public java.lang.Object getValue(java.lang.Object object)\r
413               throws IllegalStateException\r
414       {\r
415         JSeq target = (JSeq) object;\r
416         return target.getPdbids();\r
417       }\r
418 \r
419       public void setValue(java.lang.Object object, java.lang.Object value)\r
420               throws IllegalStateException, IllegalArgumentException\r
421       {\r
422         try\r
423         {\r
424           JSeq target = (JSeq) object;\r
425           target.addPdbids((jalview.schemabinding.version2.Pdbids) value);\r
426         } catch (java.lang.Exception ex)\r
427         {\r
428           throw new IllegalStateException(ex.toString());\r
429         }\r
430       }\r
431 \r
432       public void resetValue(Object object) throws IllegalStateException,\r
433               IllegalArgumentException\r
434       {\r
435         try\r
436         {\r
437           JSeq target = (JSeq) object;\r
438           target.removeAllPdbids();\r
439         } catch (java.lang.Exception ex)\r
440         {\r
441           throw new IllegalStateException(ex.toString());\r
442         }\r
443       }\r
444 \r
445       public java.lang.Object newInstance(java.lang.Object parent)\r
446       {\r
447         return new jalview.schemabinding.version2.Pdbids();\r
448       }\r
449     };\r
450     desc.setHandler(handler);\r
451     desc.setNameSpaceURI("www.jalview.org");\r
452     desc.setMultivalued(true);\r
453     addFieldDescriptor(desc);\r
454 \r
455     // -- validation code for: _pdbidsList\r
456     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
457     fieldValidator.setMinOccurs(0);\r
458     { // -- local scope\r
459     }\r
460     desc.setValidator(fieldValidator);\r
461     // -- _hiddenSequencesList\r
462     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
463             java.lang.Integer.TYPE, "_hiddenSequencesList",\r
464             "hiddenSequences", org.exolab.castor.xml.NodeType.Element);\r
465     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
466     {\r
467       public java.lang.Object getValue(java.lang.Object object)\r
468               throws IllegalStateException\r
469       {\r
470         JSeq target = (JSeq) object;\r
471         return target.getHiddenSequences();\r
472       }\r
473 \r
474       public void setValue(java.lang.Object object, java.lang.Object value)\r
475               throws IllegalStateException, IllegalArgumentException\r
476       {\r
477         try\r
478         {\r
479           JSeq target = (JSeq) object;\r
480           // ignore null values for non optional primitives\r
481           if (value == null)\r
482           {\r
483             return;\r
484           }\r
485 \r
486           target.addHiddenSequences(((java.lang.Integer) value).intValue());\r
487         } catch (java.lang.Exception ex)\r
488         {\r
489           throw new IllegalStateException(ex.toString());\r
490         }\r
491       }\r
492 \r
493       public void resetValue(Object object) throws IllegalStateException,\r
494               IllegalArgumentException\r
495       {\r
496         try\r
497         {\r
498           JSeq target = (JSeq) object;\r
499           target.removeAllHiddenSequences();\r
500         } catch (java.lang.Exception ex)\r
501         {\r
502           throw new IllegalStateException(ex.toString());\r
503         }\r
504       }\r
505 \r
506       public java.lang.Object newInstance(java.lang.Object parent)\r
507       {\r
508         return null;\r
509       }\r
510     };\r
511     desc.setHandler(handler);\r
512     desc.setNameSpaceURI("www.jalview.org");\r
513     desc.setMultivalued(true);\r
514     addFieldDescriptor(desc);\r
515 \r
516     // -- validation code for: _hiddenSequencesList\r
517     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
518     fieldValidator.setMinOccurs(0);\r
519     { // -- local scope\r
520       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
521       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
522       fieldValidator.setValidator(typeValidator);\r
523       typeValidator.setMinInclusive(-2147483648);\r
524       typeValidator.setMaxInclusive(2147483647);\r
525     }\r
526     desc.setValidator(fieldValidator);\r
527   }\r
528 \r
529   // -----------/\r
530   // - Methods -/\r
531   // -----------/\r
532 \r
533   /**\r
534    * Method getAccessMode.\r
535    * \r
536    * @return the access mode specified for this class.\r
537    */\r
538   public org.exolab.castor.mapping.AccessMode getAccessMode()\r
539   {\r
540     return null;\r
541   }\r
542 \r
543   /**\r
544    * Method getIdentity.\r
545    * \r
546    * @return the identity field, null if this class has no identity.\r
547    */\r
548   public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
549   {\r
550     return super.getIdentity();\r
551   }\r
552 \r
553   /**\r
554    * Method getJavaClass.\r
555    * \r
556    * @return the Java class represented by this descriptor.\r
557    */\r
558   public java.lang.Class getJavaClass()\r
559   {\r
560     return jalview.schemabinding.version2.JSeq.class;\r
561   }\r
562 \r
563   /**\r
564    * Method getNameSpacePrefix.\r
565    * \r
566    * @return the namespace prefix to use when marshaling as XML.\r
567    */\r
568   public java.lang.String getNameSpacePrefix()\r
569   {\r
570     return _nsPrefix;\r
571   }\r
572 \r
573   /**\r
574    * Method getNameSpaceURI.\r
575    * \r
576    * @return the namespace URI used when marshaling and unmarshaling as XML.\r
577    */\r
578   public java.lang.String getNameSpaceURI()\r
579   {\r
580     return _nsURI;\r
581   }\r
582 \r
583   /**\r
584    * Method getValidator.\r
585    * \r
586    * @return a specific validator for the class described by this\r
587    *         ClassDescriptor.\r
588    */\r
589   public org.exolab.castor.xml.TypeValidator getValidator()\r
590   {\r
591     return this;\r
592   }\r
593 \r
594   /**\r
595    * Method getXMLName.\r
596    * \r
597    * @return the XML Name for the Class being described.\r
598    */\r
599   public java.lang.String getXMLName()\r
600   {\r
601     return _xmlName;\r
602   }\r
603 \r
604   /**\r
605    * Method isElementDefinition.\r
606    * \r
607    * @return true if XML schema definition of this Class is that of a global\r
608    *         element or element with anonymous type definition.\r
609    */\r
610   public boolean isElementDefinition()\r
611   {\r
612     return _elementDefinition;\r
613   }\r
614 \r
615 }\r