Jalview 2.6 source licence
[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\r
369                   .addFeatures((jalview.schemabinding.version2.Features) value);\r
370         } catch (java.lang.Exception ex)\r
371         {\r
372           throw new IllegalStateException(ex.toString());\r
373         }\r
374       }\r
375 \r
376       public void resetValue(Object object) throws IllegalStateException,\r
377               IllegalArgumentException\r
378       {\r
379         try\r
380         {\r
381           JSeq target = (JSeq) object;\r
382           target.removeAllFeatures();\r
383         } catch (java.lang.Exception ex)\r
384         {\r
385           throw new IllegalStateException(ex.toString());\r
386         }\r
387       }\r
388 \r
389       public java.lang.Object newInstance(java.lang.Object parent)\r
390       {\r
391         return new jalview.schemabinding.version2.Features();\r
392       }\r
393     };\r
394     desc.setHandler(handler);\r
395     desc.setNameSpaceURI("www.jalview.org");\r
396     desc.setMultivalued(true);\r
397     addFieldDescriptor(desc);\r
398 \r
399     // -- validation code for: _featuresList\r
400     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
401     fieldValidator.setMinOccurs(0);\r
402     { // -- local scope\r
403     }\r
404     desc.setValidator(fieldValidator);\r
405     // -- _pdbidsList\r
406     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
407             jalview.schemabinding.version2.Pdbids.class, "_pdbidsList",\r
408             "pdbids", org.exolab.castor.xml.NodeType.Element);\r
409     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
410     {\r
411       public java.lang.Object getValue(java.lang.Object object)\r
412               throws IllegalStateException\r
413       {\r
414         JSeq target = (JSeq) object;\r
415         return target.getPdbids();\r
416       }\r
417 \r
418       public void setValue(java.lang.Object object, java.lang.Object value)\r
419               throws IllegalStateException, IllegalArgumentException\r
420       {\r
421         try\r
422         {\r
423           JSeq target = (JSeq) object;\r
424           target.addPdbids((jalview.schemabinding.version2.Pdbids) value);\r
425         } catch (java.lang.Exception ex)\r
426         {\r
427           throw new IllegalStateException(ex.toString());\r
428         }\r
429       }\r
430 \r
431       public void resetValue(Object object) throws IllegalStateException,\r
432               IllegalArgumentException\r
433       {\r
434         try\r
435         {\r
436           JSeq target = (JSeq) object;\r
437           target.removeAllPdbids();\r
438         } catch (java.lang.Exception ex)\r
439         {\r
440           throw new IllegalStateException(ex.toString());\r
441         }\r
442       }\r
443 \r
444       public java.lang.Object newInstance(java.lang.Object parent)\r
445       {\r
446         return new jalview.schemabinding.version2.Pdbids();\r
447       }\r
448     };\r
449     desc.setHandler(handler);\r
450     desc.setNameSpaceURI("www.jalview.org");\r
451     desc.setMultivalued(true);\r
452     addFieldDescriptor(desc);\r
453 \r
454     // -- validation code for: _pdbidsList\r
455     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
456     fieldValidator.setMinOccurs(0);\r
457     { // -- local scope\r
458     }\r
459     desc.setValidator(fieldValidator);\r
460     // -- _hiddenSequencesList\r
461     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
462             java.lang.Integer.TYPE, "_hiddenSequencesList",\r
463             "hiddenSequences", org.exolab.castor.xml.NodeType.Element);\r
464     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
465     {\r
466       public java.lang.Object getValue(java.lang.Object object)\r
467               throws IllegalStateException\r
468       {\r
469         JSeq target = (JSeq) object;\r
470         return target.getHiddenSequences();\r
471       }\r
472 \r
473       public void setValue(java.lang.Object object, java.lang.Object value)\r
474               throws IllegalStateException, IllegalArgumentException\r
475       {\r
476         try\r
477         {\r
478           JSeq target = (JSeq) object;\r
479           // ignore null values for non optional primitives\r
480           if (value == null)\r
481           {\r
482             return;\r
483           }\r
484 \r
485           target.addHiddenSequences(((java.lang.Integer) value).intValue());\r
486         } catch (java.lang.Exception ex)\r
487         {\r
488           throw new IllegalStateException(ex.toString());\r
489         }\r
490       }\r
491 \r
492       public void resetValue(Object object) throws IllegalStateException,\r
493               IllegalArgumentException\r
494       {\r
495         try\r
496         {\r
497           JSeq target = (JSeq) object;\r
498           target.removeAllHiddenSequences();\r
499         } catch (java.lang.Exception ex)\r
500         {\r
501           throw new IllegalStateException(ex.toString());\r
502         }\r
503       }\r
504 \r
505       public java.lang.Object newInstance(java.lang.Object parent)\r
506       {\r
507         return null;\r
508       }\r
509     };\r
510     desc.setHandler(handler);\r
511     desc.setNameSpaceURI("www.jalview.org");\r
512     desc.setMultivalued(true);\r
513     addFieldDescriptor(desc);\r
514 \r
515     // -- validation code for: _hiddenSequencesList\r
516     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
517     fieldValidator.setMinOccurs(0);\r
518     { // -- local scope\r
519       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
520       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
521       fieldValidator.setValidator(typeValidator);\r
522       typeValidator.setMinInclusive(-2147483648);\r
523       typeValidator.setMaxInclusive(2147483647);\r
524     }\r
525     desc.setValidator(fieldValidator);\r
526   }\r
527 \r
528   // -----------/\r
529   // - Methods -/\r
530   // -----------/\r
531 \r
532   /**\r
533    * Method getAccessMode.\r
534    * \r
535    * @return the access mode specified for this class.\r
536    */\r
537   public org.exolab.castor.mapping.AccessMode getAccessMode()\r
538   {\r
539     return null;\r
540   }\r
541 \r
542   /**\r
543    * Method getIdentity.\r
544    * \r
545    * @return the identity field, null if this class has no identity.\r
546    */\r
547   public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
548   {\r
549     return super.getIdentity();\r
550   }\r
551 \r
552   /**\r
553    * Method getJavaClass.\r
554    * \r
555    * @return the Java class represented by this descriptor.\r
556    */\r
557   public java.lang.Class getJavaClass()\r
558   {\r
559     return jalview.schemabinding.version2.JSeq.class;\r
560   }\r
561 \r
562   /**\r
563    * Method getNameSpacePrefix.\r
564    * \r
565    * @return the namespace prefix to use when marshaling as XML.\r
566    */\r
567   public java.lang.String getNameSpacePrefix()\r
568   {\r
569     return _nsPrefix;\r
570   }\r
571 \r
572   /**\r
573    * Method getNameSpaceURI.\r
574    * \r
575    * @return the namespace URI used when marshaling and unmarshaling as XML.\r
576    */\r
577   public java.lang.String getNameSpaceURI()\r
578   {\r
579     return _nsURI;\r
580   }\r
581 \r
582   /**\r
583    * Method getValidator.\r
584    * \r
585    * @return a specific validator for the class described by this\r
586    *         ClassDescriptor.\r
587    */\r
588   public org.exolab.castor.xml.TypeValidator getValidator()\r
589   {\r
590     return this;\r
591   }\r
592 \r
593   /**\r
594    * Method getXMLName.\r
595    * \r
596    * @return the XML Name for the Class being described.\r
597    */\r
598   public java.lang.String getXMLName()\r
599   {\r
600     return _xmlName;\r
601   }\r
602 \r
603   /**\r
604    * Method isElementDefinition.\r
605    * \r
606    * @return true if XML schema definition of this Class is that of a global\r
607    *         element or element with anonymous type definition.\r
608    */\r
609   public boolean isElementDefinition()\r
610   {\r
611     return _elementDefinition;\r
612   }\r
613 \r
614 }\r