b33eda7ca9ee6b31874b48739e47bbdd5c1476bf
[jalview.git] / src / jalview / schemabinding / version2 / descriptors / JSeqDescriptor.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)\r
3  * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle\r
4  * \r
5  * This file is part of Jalview.\r
6  * \r
7  * Jalview is free software: you can redistribute it and/or\r
8  * modify it under the terms of the GNU General Public License \r
9  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\r
10  * \r
11  * Jalview is distributed in the hope that it will be useful, but \r
12  * WITHOUT ANY WARRANTY; without even the implied warranty \r
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
14  * PURPOSE.  See the GNU General Public License for more details.\r
15  * \r
16  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.\r
17  */\r
18 package jalview.schemabinding.version2.descriptors;\r
19 \r
20 //---------------------------------/\r
21 //- Imported classes and packages -/\r
22 //---------------------------------/\r
23 \r
24 import jalview.schemabinding.version2.JSeq;\r
25 \r
26 /**\r
27  * Class JSeqDescriptor.\r
28  * \r
29  * @version $Revision$ $Date$\r
30  */\r
31 public class JSeqDescriptor extends\r
32         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   // - Constructors -/\r
61   // ----------------/\r
62 \r
63   public JSeqDescriptor()\r
64   {\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(\r
79             java.lang.Integer.TYPE, "_colour", "colour",\r
80             org.exolab.castor.xml.NodeType.Attribute);\r
81     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
82     {\r
83       public java.lang.Object getValue(java.lang.Object object)\r
84               throws IllegalStateException\r
85       {\r
86         JSeq target = (JSeq) object;\r
87         if (!target.hasColour())\r
88         {\r
89           return null;\r
90         }\r
91         return new java.lang.Integer(target.getColour());\r
92       }\r
93 \r
94       public void setValue(java.lang.Object object, java.lang.Object value)\r
95               throws IllegalStateException, IllegalArgumentException\r
96       {\r
97         try\r
98         {\r
99           JSeq target = (JSeq) object;\r
100           // if null, use delete method for optional primitives\r
101           if (value == null)\r
102           {\r
103             target.deleteColour();\r
104             return;\r
105           }\r
106           target.setColour(((java.lang.Integer) value).intValue());\r
107         } catch (java.lang.Exception ex)\r
108         {\r
109           throw new IllegalStateException(ex.toString());\r
110         }\r
111       }\r
112 \r
113       public java.lang.Object newInstance(java.lang.Object parent)\r
114       {\r
115         return null;\r
116       }\r
117     };\r
118     desc.setHandler(handler);\r
119     desc.setMultivalued(false);\r
120     addFieldDescriptor(desc);\r
121 \r
122     // -- validation code for: _colour\r
123     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
124     { // -- local scope\r
125       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
126       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
127       fieldValidator.setValidator(typeValidator);\r
128       typeValidator.setMinInclusive(-2147483648);\r
129       typeValidator.setMaxInclusive(2147483647);\r
130     }\r
131     desc.setValidator(fieldValidator);\r
132     // -- _start\r
133     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
134             java.lang.Integer.TYPE, "_start", "start",\r
135             org.exolab.castor.xml.NodeType.Attribute);\r
136     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
137     {\r
138       public java.lang.Object getValue(java.lang.Object object)\r
139               throws IllegalStateException\r
140       {\r
141         JSeq target = (JSeq) object;\r
142         if (!target.hasStart())\r
143         {\r
144           return null;\r
145         }\r
146         return new java.lang.Integer(target.getStart());\r
147       }\r
148 \r
149       public void setValue(java.lang.Object object, java.lang.Object value)\r
150               throws IllegalStateException, IllegalArgumentException\r
151       {\r
152         try\r
153         {\r
154           JSeq target = (JSeq) object;\r
155           // ignore null values for non optional primitives\r
156           if (value == null)\r
157           {\r
158             return;\r
159           }\r
160 \r
161           target.setStart(((java.lang.Integer) value).intValue());\r
162         } catch (java.lang.Exception ex)\r
163         {\r
164           throw new IllegalStateException(ex.toString());\r
165         }\r
166       }\r
167 \r
168       public java.lang.Object newInstance(java.lang.Object parent)\r
169       {\r
170         return null;\r
171       }\r
172     };\r
173     desc.setHandler(handler);\r
174     desc.setRequired(true);\r
175     desc.setMultivalued(false);\r
176     addFieldDescriptor(desc);\r
177 \r
178     // -- validation code for: _start\r
179     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
180     fieldValidator.setMinOccurs(1);\r
181     { // -- local scope\r
182       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
183       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
184       fieldValidator.setValidator(typeValidator);\r
185       typeValidator.setMinInclusive(-2147483648);\r
186       typeValidator.setMaxInclusive(2147483647);\r
187     }\r
188     desc.setValidator(fieldValidator);\r
189     // -- _end\r
190     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
191             java.lang.Integer.TYPE, "_end", "end",\r
192             org.exolab.castor.xml.NodeType.Attribute);\r
193     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
194     {\r
195       public java.lang.Object getValue(java.lang.Object object)\r
196               throws IllegalStateException\r
197       {\r
198         JSeq target = (JSeq) object;\r
199         if (!target.hasEnd())\r
200         {\r
201           return null;\r
202         }\r
203         return new java.lang.Integer(target.getEnd());\r
204       }\r
205 \r
206       public void setValue(java.lang.Object object, java.lang.Object value)\r
207               throws IllegalStateException, IllegalArgumentException\r
208       {\r
209         try\r
210         {\r
211           JSeq target = (JSeq) object;\r
212           // ignore null values for non optional primitives\r
213           if (value == null)\r
214           {\r
215             return;\r
216           }\r
217 \r
218           target.setEnd(((java.lang.Integer) value).intValue());\r
219         } catch (java.lang.Exception ex)\r
220         {\r
221           throw new IllegalStateException(ex.toString());\r
222         }\r
223       }\r
224 \r
225       public java.lang.Object newInstance(java.lang.Object parent)\r
226       {\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: _end\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.IntValidator typeValidator;\r
240       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
241       fieldValidator.setValidator(typeValidator);\r
242       typeValidator.setMinInclusive(-2147483648);\r
243       typeValidator.setMaxInclusive(2147483647);\r
244     }\r
245     desc.setValidator(fieldValidator);\r
246     // -- _id\r
247     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
248             java.lang.String.class, "_id", "id",\r
249             org.exolab.castor.xml.NodeType.Attribute);\r
250     desc.setImmutable(true);\r
251     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
252     {\r
253       public java.lang.Object getValue(java.lang.Object object)\r
254               throws IllegalStateException\r
255       {\r
256         JSeq target = (JSeq) object;\r
257         return target.getId();\r
258       }\r
259 \r
260       public void setValue(java.lang.Object object, java.lang.Object value)\r
261               throws IllegalStateException, IllegalArgumentException\r
262       {\r
263         try\r
264         {\r
265           JSeq target = (JSeq) object;\r
266           target.setId((java.lang.String) value);\r
267         } catch (java.lang.Exception ex)\r
268         {\r
269           throw new IllegalStateException(ex.toString());\r
270         }\r
271       }\r
272 \r
273       public java.lang.Object newInstance(java.lang.Object parent)\r
274       {\r
275         return null;\r
276       }\r
277     };\r
278     desc.setHandler(handler);\r
279     desc.setRequired(true);\r
280     desc.setMultivalued(false);\r
281     addFieldDescriptor(desc);\r
282 \r
283     // -- validation code for: _id\r
284     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
285     fieldValidator.setMinOccurs(1);\r
286     { // -- local scope\r
287       org.exolab.castor.xml.validators.StringValidator typeValidator;\r
288       typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
289       fieldValidator.setValidator(typeValidator);\r
290       typeValidator.setWhiteSpace("preserve");\r
291     }\r
292     desc.setValidator(fieldValidator);\r
293     // -- _hidden\r
294     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
295             java.lang.Boolean.TYPE, "_hidden", "hidden",\r
296             org.exolab.castor.xml.NodeType.Attribute);\r
297     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
298     {\r
299       public java.lang.Object getValue(java.lang.Object object)\r
300               throws IllegalStateException\r
301       {\r
302         JSeq target = (JSeq) object;\r
303         if (!target.hasHidden())\r
304         {\r
305           return null;\r
306         }\r
307         return (target.getHidden() ? java.lang.Boolean.TRUE\r
308                 : java.lang.Boolean.FALSE);\r
309       }\r
310 \r
311       public void setValue(java.lang.Object object, java.lang.Object value)\r
312               throws IllegalStateException, IllegalArgumentException\r
313       {\r
314         try\r
315         {\r
316           JSeq target = (JSeq) object;\r
317           // if null, use delete method for optional primitives\r
318           if (value == null)\r
319           {\r
320             target.deleteHidden();\r
321             return;\r
322           }\r
323           target.setHidden(((java.lang.Boolean) value).booleanValue());\r
324         } catch (java.lang.Exception ex)\r
325         {\r
326           throw new IllegalStateException(ex.toString());\r
327         }\r
328       }\r
329 \r
330       public java.lang.Object newInstance(java.lang.Object parent)\r
331       {\r
332         return null;\r
333       }\r
334     };\r
335     desc.setHandler(handler);\r
336     desc.setMultivalued(false);\r
337     addFieldDescriptor(desc);\r
338 \r
339     // -- validation code for: _hidden\r
340     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
341     { // -- local scope\r
342       org.exolab.castor.xml.validators.BooleanValidator typeValidator;\r
343       typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\r
344       fieldValidator.setValidator(typeValidator);\r
345     }\r
346     desc.setValidator(fieldValidator);\r
347     // -- initialize element descriptors\r
348 \r
349     // -- _featuresList\r
350     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
351             jalview.schemabinding.version2.Features.class, "_featuresList",\r
352             "features", org.exolab.castor.xml.NodeType.Element);\r
353     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
354     {\r
355       public java.lang.Object getValue(java.lang.Object object)\r
356               throws IllegalStateException\r
357       {\r
358         JSeq target = (JSeq) object;\r
359         return target.getFeatures();\r
360       }\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         {\r
367           JSeq target = (JSeq) object;\r
368           target.addFeatures((jalview.schemabinding.version2.Features) value);\r
369         } catch (java.lang.Exception ex)\r
370         {\r
371           throw new IllegalStateException(ex.toString());\r
372         }\r
373       }\r
374 \r
375       public void resetValue(Object object) throws IllegalStateException,\r
376               IllegalArgumentException\r
377       {\r
378         try\r
379         {\r
380           JSeq target = (JSeq) object;\r
381           target.removeAllFeatures();\r
382         } catch (java.lang.Exception ex)\r
383         {\r
384           throw new IllegalStateException(ex.toString());\r
385         }\r
386       }\r
387 \r
388       public java.lang.Object newInstance(java.lang.Object parent)\r
389       {\r
390         return new jalview.schemabinding.version2.Features();\r
391       }\r
392     };\r
393     desc.setHandler(handler);\r
394     desc.setNameSpaceURI("www.jalview.org");\r
395     desc.setMultivalued(true);\r
396     addFieldDescriptor(desc);\r
397 \r
398     // -- validation code for: _featuresList\r
399     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
400     fieldValidator.setMinOccurs(0);\r
401     { // -- local scope\r
402     }\r
403     desc.setValidator(fieldValidator);\r
404     // -- _pdbidsList\r
405     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
406             jalview.schemabinding.version2.Pdbids.class, "_pdbidsList",\r
407             "pdbids", org.exolab.castor.xml.NodeType.Element);\r
408     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
409     {\r
410       public java.lang.Object getValue(java.lang.Object object)\r
411               throws IllegalStateException\r
412       {\r
413         JSeq target = (JSeq) object;\r
414         return target.getPdbids();\r
415       }\r
416 \r
417       public void setValue(java.lang.Object object, java.lang.Object value)\r
418               throws IllegalStateException, IllegalArgumentException\r
419       {\r
420         try\r
421         {\r
422           JSeq target = (JSeq) object;\r
423           target.addPdbids((jalview.schemabinding.version2.Pdbids) value);\r
424         } catch (java.lang.Exception ex)\r
425         {\r
426           throw new IllegalStateException(ex.toString());\r
427         }\r
428       }\r
429 \r
430       public void resetValue(Object object) throws IllegalStateException,\r
431               IllegalArgumentException\r
432       {\r
433         try\r
434         {\r
435           JSeq target = (JSeq) object;\r
436           target.removeAllPdbids();\r
437         } catch (java.lang.Exception ex)\r
438         {\r
439           throw new IllegalStateException(ex.toString());\r
440         }\r
441       }\r
442 \r
443       public java.lang.Object newInstance(java.lang.Object parent)\r
444       {\r
445         return new jalview.schemabinding.version2.Pdbids();\r
446       }\r
447     };\r
448     desc.setHandler(handler);\r
449     desc.setNameSpaceURI("www.jalview.org");\r
450     desc.setMultivalued(true);\r
451     addFieldDescriptor(desc);\r
452 \r
453     // -- validation code for: _pdbidsList\r
454     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
455     fieldValidator.setMinOccurs(0);\r
456     { // -- local scope\r
457     }\r
458     desc.setValidator(fieldValidator);\r
459     // -- _hiddenSequencesList\r
460     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
461             java.lang.Integer.TYPE, "_hiddenSequencesList",\r
462             "hiddenSequences", org.exolab.castor.xml.NodeType.Element);\r
463     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
464     {\r
465       public java.lang.Object getValue(java.lang.Object object)\r
466               throws IllegalStateException\r
467       {\r
468         JSeq target = (JSeq) object;\r
469         return target.getHiddenSequences();\r
470       }\r
471 \r
472       public void setValue(java.lang.Object object, java.lang.Object value)\r
473               throws IllegalStateException, IllegalArgumentException\r
474       {\r
475         try\r
476         {\r
477           JSeq target = (JSeq) object;\r
478           // ignore null values for non optional primitives\r
479           if (value == null)\r
480           {\r
481             return;\r
482           }\r
483 \r
484           target.addHiddenSequences(((java.lang.Integer) value).intValue());\r
485         } catch (java.lang.Exception ex)\r
486         {\r
487           throw new IllegalStateException(ex.toString());\r
488         }\r
489       }\r
490 \r
491       public void resetValue(Object object) throws IllegalStateException,\r
492               IllegalArgumentException\r
493       {\r
494         try\r
495         {\r
496           JSeq target = (JSeq) object;\r
497           target.removeAllHiddenSequences();\r
498         } catch (java.lang.Exception ex)\r
499         {\r
500           throw new IllegalStateException(ex.toString());\r
501         }\r
502       }\r
503 \r
504       public java.lang.Object newInstance(java.lang.Object parent)\r
505       {\r
506         return null;\r
507       }\r
508     };\r
509     desc.setHandler(handler);\r
510     desc.setNameSpaceURI("www.jalview.org");\r
511     desc.setMultivalued(true);\r
512     addFieldDescriptor(desc);\r
513 \r
514     // -- validation code for: _hiddenSequencesList\r
515     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
516     fieldValidator.setMinOccurs(0);\r
517     { // -- local scope\r
518       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
519       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
520       fieldValidator.setValidator(typeValidator);\r
521       typeValidator.setMinInclusive(-2147483648);\r
522       typeValidator.setMaxInclusive(2147483647);\r
523     }\r
524     desc.setValidator(fieldValidator);\r
525   }\r
526 \r
527   // -----------/\r
528   // - Methods -/\r
529   // -----------/\r
530 \r
531   /**\r
532    * Method getAccessMode.\r
533    * \r
534    * @return the access mode specified for this class.\r
535    */\r
536   public org.exolab.castor.mapping.AccessMode getAccessMode()\r
537   {\r
538     return null;\r
539   }\r
540 \r
541   /**\r
542    * Method getIdentity.\r
543    * \r
544    * @return the identity field, null if this class has no identity.\r
545    */\r
546   public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
547   {\r
548     return super.getIdentity();\r
549   }\r
550 \r
551   /**\r
552    * Method getJavaClass.\r
553    * \r
554    * @return the Java class represented by this descriptor.\r
555    */\r
556   public java.lang.Class getJavaClass()\r
557   {\r
558     return jalview.schemabinding.version2.JSeq.class;\r
559   }\r
560 \r
561   /**\r
562    * Method getNameSpacePrefix.\r
563    * \r
564    * @return the namespace prefix to use when marshaling as XML.\r
565    */\r
566   public java.lang.String getNameSpacePrefix()\r
567   {\r
568     return _nsPrefix;\r
569   }\r
570 \r
571   /**\r
572    * Method getNameSpaceURI.\r
573    * \r
574    * @return the namespace URI used when marshaling and unmarshaling as XML.\r
575    */\r
576   public java.lang.String getNameSpaceURI()\r
577   {\r
578     return _nsURI;\r
579   }\r
580 \r
581   /**\r
582    * Method getValidator.\r
583    * \r
584    * @return a specific validator for the class described by this\r
585    *         ClassDescriptor.\r
586    */\r
587   public org.exolab.castor.xml.TypeValidator getValidator()\r
588   {\r
589     return this;\r
590   }\r
591 \r
592   /**\r
593    * Method getXMLName.\r
594    * \r
595    * @return the XML Name for the Class being described.\r
596    */\r
597   public java.lang.String getXMLName()\r
598   {\r
599     return _xmlName;\r
600   }\r
601 \r
602   /**\r
603    * Method isElementDefinition.\r
604    * \r
605    * @return true if XML schema definition of this Class is that of a global\r
606    *         element or element with anonymous type definition.\r
607    */\r
608   public boolean isElementDefinition()\r
609   {\r
610     return _elementDefinition;\r
611   }\r
612 \r
613 }\r