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