Jalview 2.6 source licence
[jalview.git] / src / jalview / schemabinding / version2 / descriptors / FeatureDescriptor.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.Feature;\r
25 \r
26 /**\r
27  * Class FeatureDescriptor.\r
28  * \r
29  * @version $Revision$ $Date$\r
30  */\r
31 public class FeatureDescriptor 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 FeatureDescriptor()\r
64   {\r
65     super();\r
66     _nsURI = "www.jalview.org";\r
67     _xmlName = "feature";\r
68     _elementDefinition = false;\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     // -- _begin\r
78     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
79             java.lang.Integer.TYPE, "_begin", "begin",\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         Feature target = (Feature) object;\r
87         if (!target.hasBegin())\r
88         {\r
89           return null;\r
90         }\r
91         return new java.lang.Integer(target.getBegin());\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           Feature target = (Feature) object;\r
100           // ignore null values for non optional primitives\r
101           if (value == null)\r
102           {\r
103             return;\r
104           }\r
105 \r
106           target.setBegin(((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.setRequired(true);\r
120     desc.setMultivalued(false);\r
121     addFieldDescriptor(desc);\r
122 \r
123     // -- validation code for: _begin\r
124     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
125     fieldValidator.setMinOccurs(1);\r
126     { // -- local scope\r
127       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
128       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
129       fieldValidator.setValidator(typeValidator);\r
130       typeValidator.setMinInclusive(-2147483648);\r
131       typeValidator.setMaxInclusive(2147483647);\r
132     }\r
133     desc.setValidator(fieldValidator);\r
134     // -- _end\r
135     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
136             java.lang.Integer.TYPE, "_end", "end",\r
137             org.exolab.castor.xml.NodeType.Attribute);\r
138     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
139     {\r
140       public java.lang.Object getValue(java.lang.Object object)\r
141               throws IllegalStateException\r
142       {\r
143         Feature target = (Feature) object;\r
144         if (!target.hasEnd())\r
145         {\r
146           return null;\r
147         }\r
148         return new java.lang.Integer(target.getEnd());\r
149       }\r
150 \r
151       public void setValue(java.lang.Object object, java.lang.Object value)\r
152               throws IllegalStateException, IllegalArgumentException\r
153       {\r
154         try\r
155         {\r
156           Feature target = (Feature) object;\r
157           // ignore null values for non optional primitives\r
158           if (value == null)\r
159           {\r
160             return;\r
161           }\r
162 \r
163           target.setEnd(((java.lang.Integer) value).intValue());\r
164         } catch (java.lang.Exception ex)\r
165         {\r
166           throw new IllegalStateException(ex.toString());\r
167         }\r
168       }\r
169 \r
170       public java.lang.Object newInstance(java.lang.Object parent)\r
171       {\r
172         return null;\r
173       }\r
174     };\r
175     desc.setHandler(handler);\r
176     desc.setRequired(true);\r
177     desc.setMultivalued(false);\r
178     addFieldDescriptor(desc);\r
179 \r
180     // -- validation code for: _end\r
181     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
182     fieldValidator.setMinOccurs(1);\r
183     { // -- local scope\r
184       org.exolab.castor.xml.validators.IntValidator typeValidator;\r
185       typeValidator = new org.exolab.castor.xml.validators.IntValidator();\r
186       fieldValidator.setValidator(typeValidator);\r
187       typeValidator.setMinInclusive(-2147483648);\r
188       typeValidator.setMaxInclusive(2147483647);\r
189     }\r
190     desc.setValidator(fieldValidator);\r
191     // -- _type\r
192     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
193             java.lang.String.class, "_type", "type",\r
194             org.exolab.castor.xml.NodeType.Attribute);\r
195     desc.setImmutable(true);\r
196     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
197     {\r
198       public java.lang.Object getValue(java.lang.Object object)\r
199               throws IllegalStateException\r
200       {\r
201         Feature target = (Feature) object;\r
202         return target.getType();\r
203       }\r
204 \r
205       public void setValue(java.lang.Object object, java.lang.Object value)\r
206               throws IllegalStateException, IllegalArgumentException\r
207       {\r
208         try\r
209         {\r
210           Feature target = (Feature) object;\r
211           target.setType((java.lang.String) value);\r
212         } catch (java.lang.Exception ex)\r
213         {\r
214           throw new IllegalStateException(ex.toString());\r
215         }\r
216       }\r
217 \r
218       public java.lang.Object newInstance(java.lang.Object parent)\r
219       {\r
220         return null;\r
221       }\r
222     };\r
223     desc.setHandler(handler);\r
224     desc.setRequired(true);\r
225     desc.setMultivalued(false);\r
226     addFieldDescriptor(desc);\r
227 \r
228     // -- validation code for: _type\r
229     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
230     fieldValidator.setMinOccurs(1);\r
231     { // -- local scope\r
232       org.exolab.castor.xml.validators.StringValidator typeValidator;\r
233       typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
234       fieldValidator.setValidator(typeValidator);\r
235       typeValidator.setWhiteSpace("preserve");\r
236     }\r
237     desc.setValidator(fieldValidator);\r
238     // -- _description\r
239     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
240             java.lang.String.class, "_description", "description",\r
241             org.exolab.castor.xml.NodeType.Attribute);\r
242     desc.setImmutable(true);\r
243     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
244     {\r
245       public java.lang.Object getValue(java.lang.Object object)\r
246               throws IllegalStateException\r
247       {\r
248         Feature target = (Feature) object;\r
249         return target.getDescription();\r
250       }\r
251 \r
252       public void setValue(java.lang.Object object, java.lang.Object value)\r
253               throws IllegalStateException, IllegalArgumentException\r
254       {\r
255         try\r
256         {\r
257           Feature target = (Feature) object;\r
258           target.setDescription((java.lang.String) value);\r
259         } catch (java.lang.Exception ex)\r
260         {\r
261           throw new IllegalStateException(ex.toString());\r
262         }\r
263       }\r
264 \r
265       public java.lang.Object newInstance(java.lang.Object parent)\r
266       {\r
267         return null;\r
268       }\r
269     };\r
270     desc.setHandler(handler);\r
271     desc.setMultivalued(false);\r
272     addFieldDescriptor(desc);\r
273 \r
274     // -- validation code for: _description\r
275     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
276     { // -- local scope\r
277       org.exolab.castor.xml.validators.StringValidator typeValidator;\r
278       typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
279       fieldValidator.setValidator(typeValidator);\r
280       typeValidator.setWhiteSpace("preserve");\r
281     }\r
282     desc.setValidator(fieldValidator);\r
283     // -- _status\r
284     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
285             java.lang.String.class, "_status", "status",\r
286             org.exolab.castor.xml.NodeType.Attribute);\r
287     desc.setImmutable(true);\r
288     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
289     {\r
290       public java.lang.Object getValue(java.lang.Object object)\r
291               throws IllegalStateException\r
292       {\r
293         Feature target = (Feature) object;\r
294         return target.getStatus();\r
295       }\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         {\r
302           Feature target = (Feature) object;\r
303           target.setStatus((java.lang.String) value);\r
304         } catch (java.lang.Exception ex)\r
305         {\r
306           throw new IllegalStateException(ex.toString());\r
307         }\r
308       }\r
309 \r
310       public java.lang.Object newInstance(java.lang.Object parent)\r
311       {\r
312         return null;\r
313       }\r
314     };\r
315     desc.setHandler(handler);\r
316     desc.setMultivalued(false);\r
317     addFieldDescriptor(desc);\r
318 \r
319     // -- validation code for: _status\r
320     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
321     { // -- local scope\r
322       org.exolab.castor.xml.validators.StringValidator typeValidator;\r
323       typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
324       fieldValidator.setValidator(typeValidator);\r
325       typeValidator.setWhiteSpace("preserve");\r
326     }\r
327     desc.setValidator(fieldValidator);\r
328     // -- _featureGroup\r
329     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
330             java.lang.String.class, "_featureGroup", "featureGroup",\r
331             org.exolab.castor.xml.NodeType.Attribute);\r
332     desc.setImmutable(true);\r
333     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
334     {\r
335       public java.lang.Object getValue(java.lang.Object object)\r
336               throws IllegalStateException\r
337       {\r
338         Feature target = (Feature) object;\r
339         return target.getFeatureGroup();\r
340       }\r
341 \r
342       public void setValue(java.lang.Object object, java.lang.Object value)\r
343               throws IllegalStateException, IllegalArgumentException\r
344       {\r
345         try\r
346         {\r
347           Feature target = (Feature) object;\r
348           target.setFeatureGroup((java.lang.String) value);\r
349         } catch (java.lang.Exception ex)\r
350         {\r
351           throw new IllegalStateException(ex.toString());\r
352         }\r
353       }\r
354 \r
355       public java.lang.Object newInstance(java.lang.Object parent)\r
356       {\r
357         return null;\r
358       }\r
359     };\r
360     desc.setHandler(handler);\r
361     desc.setMultivalued(false);\r
362     addFieldDescriptor(desc);\r
363 \r
364     // -- validation code for: _featureGroup\r
365     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
366     { // -- local scope\r
367       org.exolab.castor.xml.validators.StringValidator typeValidator;\r
368       typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
369       fieldValidator.setValidator(typeValidator);\r
370       typeValidator.setWhiteSpace("preserve");\r
371     }\r
372     desc.setValidator(fieldValidator);\r
373     // -- _score\r
374     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
375             java.lang.Float.TYPE, "_score", "score",\r
376             org.exolab.castor.xml.NodeType.Attribute);\r
377     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
378     {\r
379       public java.lang.Object getValue(java.lang.Object object)\r
380               throws IllegalStateException\r
381       {\r
382         Feature target = (Feature) object;\r
383         if (!target.hasScore())\r
384         {\r
385           return null;\r
386         }\r
387         return new java.lang.Float(target.getScore());\r
388       }\r
389 \r
390       public void setValue(java.lang.Object object, java.lang.Object value)\r
391               throws IllegalStateException, IllegalArgumentException\r
392       {\r
393         try\r
394         {\r
395           Feature target = (Feature) object;\r
396           // if null, use delete method for optional primitives\r
397           if (value == null)\r
398           {\r
399             target.deleteScore();\r
400             return;\r
401           }\r
402           target.setScore(((java.lang.Float) value).floatValue());\r
403         } catch (java.lang.Exception ex)\r
404         {\r
405           throw new IllegalStateException(ex.toString());\r
406         }\r
407       }\r
408 \r
409       public java.lang.Object newInstance(java.lang.Object parent)\r
410       {\r
411         return null;\r
412       }\r
413     };\r
414     desc.setHandler(handler);\r
415     desc.setMultivalued(false);\r
416     addFieldDescriptor(desc);\r
417 \r
418     // -- validation code for: _score\r
419     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
420     { // -- local scope\r
421       org.exolab.castor.xml.validators.FloatValidator typeValidator;\r
422       typeValidator = new org.exolab.castor.xml.validators.FloatValidator();\r
423       fieldValidator.setValidator(typeValidator);\r
424       typeValidator.setMinInclusive((float) -3.4028235E38);\r
425       typeValidator.setMaxInclusive((float) 3.4028235E38);\r
426     }\r
427     desc.setValidator(fieldValidator);\r
428     // -- initialize element descriptors\r
429 \r
430     // -- _otherDataList\r
431     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
432             jalview.schemabinding.version2.OtherData.class,\r
433             "_otherDataList", "otherData",\r
434             org.exolab.castor.xml.NodeType.Element);\r
435     handler = new org.exolab.castor.xml.XMLFieldHandler()\r
436     {\r
437       public java.lang.Object getValue(java.lang.Object object)\r
438               throws IllegalStateException\r
439       {\r
440         Feature target = (Feature) object;\r
441         return target.getOtherData();\r
442       }\r
443 \r
444       public void setValue(java.lang.Object object, java.lang.Object value)\r
445               throws IllegalStateException, IllegalArgumentException\r
446       {\r
447         try\r
448         {\r
449           Feature target = (Feature) object;\r
450           target\r
451                   .addOtherData((jalview.schemabinding.version2.OtherData) value);\r
452         } catch (java.lang.Exception ex)\r
453         {\r
454           throw new IllegalStateException(ex.toString());\r
455         }\r
456       }\r
457 \r
458       public void resetValue(Object object) throws IllegalStateException,\r
459               IllegalArgumentException\r
460       {\r
461         try\r
462         {\r
463           Feature target = (Feature) object;\r
464           target.removeAllOtherData();\r
465         } catch (java.lang.Exception ex)\r
466         {\r
467           throw new IllegalStateException(ex.toString());\r
468         }\r
469       }\r
470 \r
471       public java.lang.Object newInstance(java.lang.Object parent)\r
472       {\r
473         return new jalview.schemabinding.version2.OtherData();\r
474       }\r
475     };\r
476     desc.setHandler(handler);\r
477     desc.setNameSpaceURI("www.jalview.org");\r
478     desc.setMultivalued(true);\r
479     addFieldDescriptor(desc);\r
480 \r
481     // -- validation code for: _otherDataList\r
482     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
483     fieldValidator.setMinOccurs(0);\r
484     { // -- local scope\r
485     }\r
486     desc.setValidator(fieldValidator);\r
487   }\r
488 \r
489   // -----------/\r
490   // - Methods -/\r
491   // -----------/\r
492 \r
493   /**\r
494    * Method getAccessMode.\r
495    * \r
496    * @return the access mode specified for this class.\r
497    */\r
498   public org.exolab.castor.mapping.AccessMode getAccessMode()\r
499   {\r
500     return null;\r
501   }\r
502 \r
503   /**\r
504    * Method getIdentity.\r
505    * \r
506    * @return the identity field, null if this class has no identity.\r
507    */\r
508   public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
509   {\r
510     return super.getIdentity();\r
511   }\r
512 \r
513   /**\r
514    * Method getJavaClass.\r
515    * \r
516    * @return the Java class represented by this descriptor.\r
517    */\r
518   public java.lang.Class getJavaClass()\r
519   {\r
520     return jalview.schemabinding.version2.Feature.class;\r
521   }\r
522 \r
523   /**\r
524    * Method getNameSpacePrefix.\r
525    * \r
526    * @return the namespace prefix to use when marshaling as XML.\r
527    */\r
528   public java.lang.String getNameSpacePrefix()\r
529   {\r
530     return _nsPrefix;\r
531   }\r
532 \r
533   /**\r
534    * Method getNameSpaceURI.\r
535    * \r
536    * @return the namespace URI used when marshaling and unmarshaling as XML.\r
537    */\r
538   public java.lang.String getNameSpaceURI()\r
539   {\r
540     return _nsURI;\r
541   }\r
542 \r
543   /**\r
544    * Method getValidator.\r
545    * \r
546    * @return a specific validator for the class described by this\r
547    *         ClassDescriptor.\r
548    */\r
549   public org.exolab.castor.xml.TypeValidator getValidator()\r
550   {\r
551     return this;\r
552   }\r
553 \r
554   /**\r
555    * Method getXMLName.\r
556    * \r
557    * @return the XML Name for the Class being described.\r
558    */\r
559   public java.lang.String getXMLName()\r
560   {\r
561     return _xmlName;\r
562   }\r
563 \r
564   /**\r
565    * Method isElementDefinition.\r
566    * \r
567    * @return true if XML schema definition of this Class is that of a global\r
568    *         element or element with anonymous type definition.\r
569    */\r
570   public boolean isElementDefinition()\r
571   {\r
572     return _elementDefinition;\r
573   }\r
574 \r
575 }\r