bf03c4b81d204a5e4cb8a84a84719ee5267d668b
[jalview.git] / src / jalview / schemabinding / version2 / descriptors / FeatureDescriptor.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
3  * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
10  *  
11  * Jalview is distributed in the hope that it will be useful, but 
12  * WITHOUT ANY WARRANTY; without even the implied warranty 
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14  * PURPOSE.  See the GNU General Public License for more details.
15  * 
16  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 package jalview.schemabinding.version2.descriptors;
19
20 //---------------------------------/
21 //- Imported classes and packages -/
22 //---------------------------------/
23
24 import jalview.schemabinding.version2.Feature;
25
26 /**
27  * Class FeatureDescriptor.
28  * 
29  * @version $Revision$ $Date$
30  */
31 public class FeatureDescriptor extends
32         org.exolab.castor.xml.util.XMLClassDescriptorImpl
33 {
34
35   // --------------------------/
36   // - Class/Member Variables -/
37   // --------------------------/
38
39   /**
40    * Field _elementDefinition.
41    */
42   private boolean _elementDefinition;
43
44   /**
45    * Field _nsPrefix.
46    */
47   private java.lang.String _nsPrefix;
48
49   /**
50    * Field _nsURI.
51    */
52   private java.lang.String _nsURI;
53
54   /**
55    * Field _xmlName.
56    */
57   private java.lang.String _xmlName;
58
59   // ----------------/
60   // - Constructors -/
61   // ----------------/
62
63   public FeatureDescriptor()
64   {
65     super();
66     _nsURI = "www.jalview.org";
67     _xmlName = "feature";
68     _elementDefinition = false;
69
70     // -- set grouping compositor
71     setCompositorAsSequence();
72     org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
73     org.exolab.castor.mapping.FieldHandler handler = null;
74     org.exolab.castor.xml.FieldValidator fieldValidator = null;
75     // -- initialize attribute descriptors
76
77     // -- _begin
78     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
79             java.lang.Integer.TYPE, "_begin", "begin",
80             org.exolab.castor.xml.NodeType.Attribute);
81     handler = new org.exolab.castor.xml.XMLFieldHandler()
82     {
83       public java.lang.Object getValue(java.lang.Object object)
84               throws IllegalStateException
85       {
86         Feature target = (Feature) object;
87         if (!target.hasBegin())
88         {
89           return null;
90         }
91         return new java.lang.Integer(target.getBegin());
92       }
93
94       public void setValue(java.lang.Object object, java.lang.Object value)
95               throws IllegalStateException, IllegalArgumentException
96       {
97         try
98         {
99           Feature target = (Feature) object;
100           // ignore null values for non optional primitives
101           if (value == null)
102           {
103             return;
104           }
105
106           target.setBegin(((java.lang.Integer) value).intValue());
107         } catch (java.lang.Exception ex)
108         {
109           throw new IllegalStateException(ex.toString());
110         }
111       }
112
113       public java.lang.Object newInstance(java.lang.Object parent)
114       {
115         return null;
116       }
117     };
118     desc.setHandler(handler);
119     desc.setRequired(true);
120     desc.setMultivalued(false);
121     addFieldDescriptor(desc);
122
123     // -- validation code for: _begin
124     fieldValidator = new org.exolab.castor.xml.FieldValidator();
125     fieldValidator.setMinOccurs(1);
126     { // -- local scope
127       org.exolab.castor.xml.validators.IntValidator typeValidator;
128       typeValidator = new org.exolab.castor.xml.validators.IntValidator();
129       fieldValidator.setValidator(typeValidator);
130       typeValidator.setMinInclusive(-2147483648);
131       typeValidator.setMaxInclusive(2147483647);
132     }
133     desc.setValidator(fieldValidator);
134     // -- _end
135     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
136             java.lang.Integer.TYPE, "_end", "end",
137             org.exolab.castor.xml.NodeType.Attribute);
138     handler = new org.exolab.castor.xml.XMLFieldHandler()
139     {
140       public java.lang.Object getValue(java.lang.Object object)
141               throws IllegalStateException
142       {
143         Feature target = (Feature) object;
144         if (!target.hasEnd())
145         {
146           return null;
147         }
148         return new java.lang.Integer(target.getEnd());
149       }
150
151       public void setValue(java.lang.Object object, java.lang.Object value)
152               throws IllegalStateException, IllegalArgumentException
153       {
154         try
155         {
156           Feature target = (Feature) object;
157           // ignore null values for non optional primitives
158           if (value == null)
159           {
160             return;
161           }
162
163           target.setEnd(((java.lang.Integer) value).intValue());
164         } catch (java.lang.Exception ex)
165         {
166           throw new IllegalStateException(ex.toString());
167         }
168       }
169
170       public java.lang.Object newInstance(java.lang.Object parent)
171       {
172         return null;
173       }
174     };
175     desc.setHandler(handler);
176     desc.setRequired(true);
177     desc.setMultivalued(false);
178     addFieldDescriptor(desc);
179
180     // -- validation code for: _end
181     fieldValidator = new org.exolab.castor.xml.FieldValidator();
182     fieldValidator.setMinOccurs(1);
183     { // -- local scope
184       org.exolab.castor.xml.validators.IntValidator typeValidator;
185       typeValidator = new org.exolab.castor.xml.validators.IntValidator();
186       fieldValidator.setValidator(typeValidator);
187       typeValidator.setMinInclusive(-2147483648);
188       typeValidator.setMaxInclusive(2147483647);
189     }
190     desc.setValidator(fieldValidator);
191     // -- _type
192     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
193             java.lang.String.class, "_type", "type",
194             org.exolab.castor.xml.NodeType.Attribute);
195     desc.setImmutable(true);
196     handler = new org.exolab.castor.xml.XMLFieldHandler()
197     {
198       public java.lang.Object getValue(java.lang.Object object)
199               throws IllegalStateException
200       {
201         Feature target = (Feature) object;
202         return target.getType();
203       }
204
205       public void setValue(java.lang.Object object, java.lang.Object value)
206               throws IllegalStateException, IllegalArgumentException
207       {
208         try
209         {
210           Feature target = (Feature) object;
211           target.setType((java.lang.String) value);
212         } catch (java.lang.Exception ex)
213         {
214           throw new IllegalStateException(ex.toString());
215         }
216       }
217
218       public java.lang.Object newInstance(java.lang.Object parent)
219       {
220         return null;
221       }
222     };
223     desc.setHandler(handler);
224     desc.setRequired(true);
225     desc.setMultivalued(false);
226     addFieldDescriptor(desc);
227
228     // -- validation code for: _type
229     fieldValidator = new org.exolab.castor.xml.FieldValidator();
230     fieldValidator.setMinOccurs(1);
231     { // -- local scope
232       org.exolab.castor.xml.validators.StringValidator typeValidator;
233       typeValidator = new org.exolab.castor.xml.validators.StringValidator();
234       fieldValidator.setValidator(typeValidator);
235       typeValidator.setWhiteSpace("preserve");
236     }
237     desc.setValidator(fieldValidator);
238     // -- _description
239     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
240             java.lang.String.class, "_description", "description",
241             org.exolab.castor.xml.NodeType.Attribute);
242     desc.setImmutable(true);
243     handler = new org.exolab.castor.xml.XMLFieldHandler()
244     {
245       public java.lang.Object getValue(java.lang.Object object)
246               throws IllegalStateException
247       {
248         Feature target = (Feature) object;
249         return target.getDescription();
250       }
251
252       public void setValue(java.lang.Object object, java.lang.Object value)
253               throws IllegalStateException, IllegalArgumentException
254       {
255         try
256         {
257           Feature target = (Feature) object;
258           target.setDescription((java.lang.String) value);
259         } catch (java.lang.Exception ex)
260         {
261           throw new IllegalStateException(ex.toString());
262         }
263       }
264
265       public java.lang.Object newInstance(java.lang.Object parent)
266       {
267         return null;
268       }
269     };
270     desc.setHandler(handler);
271     desc.setMultivalued(false);
272     addFieldDescriptor(desc);
273
274     // -- validation code for: _description
275     fieldValidator = new org.exolab.castor.xml.FieldValidator();
276     { // -- local scope
277       org.exolab.castor.xml.validators.StringValidator typeValidator;
278       typeValidator = new org.exolab.castor.xml.validators.StringValidator();
279       fieldValidator.setValidator(typeValidator);
280       typeValidator.setWhiteSpace("preserve");
281     }
282     desc.setValidator(fieldValidator);
283     // -- _status
284     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
285             java.lang.String.class, "_status", "status",
286             org.exolab.castor.xml.NodeType.Attribute);
287     desc.setImmutable(true);
288     handler = new org.exolab.castor.xml.XMLFieldHandler()
289     {
290       public java.lang.Object getValue(java.lang.Object object)
291               throws IllegalStateException
292       {
293         Feature target = (Feature) object;
294         return target.getStatus();
295       }
296
297       public void setValue(java.lang.Object object, java.lang.Object value)
298               throws IllegalStateException, IllegalArgumentException
299       {
300         try
301         {
302           Feature target = (Feature) object;
303           target.setStatus((java.lang.String) value);
304         } catch (java.lang.Exception ex)
305         {
306           throw new IllegalStateException(ex.toString());
307         }
308       }
309
310       public java.lang.Object newInstance(java.lang.Object parent)
311       {
312         return null;
313       }
314     };
315     desc.setHandler(handler);
316     desc.setMultivalued(false);
317     addFieldDescriptor(desc);
318
319     // -- validation code for: _status
320     fieldValidator = new org.exolab.castor.xml.FieldValidator();
321     { // -- local scope
322       org.exolab.castor.xml.validators.StringValidator typeValidator;
323       typeValidator = new org.exolab.castor.xml.validators.StringValidator();
324       fieldValidator.setValidator(typeValidator);
325       typeValidator.setWhiteSpace("preserve");
326     }
327     desc.setValidator(fieldValidator);
328     // -- _featureGroup
329     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
330             java.lang.String.class, "_featureGroup", "featureGroup",
331             org.exolab.castor.xml.NodeType.Attribute);
332     desc.setImmutable(true);
333     handler = new org.exolab.castor.xml.XMLFieldHandler()
334     {
335       public java.lang.Object getValue(java.lang.Object object)
336               throws IllegalStateException
337       {
338         Feature target = (Feature) object;
339         return target.getFeatureGroup();
340       }
341
342       public void setValue(java.lang.Object object, java.lang.Object value)
343               throws IllegalStateException, IllegalArgumentException
344       {
345         try
346         {
347           Feature target = (Feature) object;
348           target.setFeatureGroup((java.lang.String) value);
349         } catch (java.lang.Exception ex)
350         {
351           throw new IllegalStateException(ex.toString());
352         }
353       }
354
355       public java.lang.Object newInstance(java.lang.Object parent)
356       {
357         return null;
358       }
359     };
360     desc.setHandler(handler);
361     desc.setMultivalued(false);
362     addFieldDescriptor(desc);
363
364     // -- validation code for: _featureGroup
365     fieldValidator = new org.exolab.castor.xml.FieldValidator();
366     { // -- local scope
367       org.exolab.castor.xml.validators.StringValidator typeValidator;
368       typeValidator = new org.exolab.castor.xml.validators.StringValidator();
369       fieldValidator.setValidator(typeValidator);
370       typeValidator.setWhiteSpace("preserve");
371     }
372     desc.setValidator(fieldValidator);
373     // -- _score
374     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
375             java.lang.Float.TYPE, "_score", "score",
376             org.exolab.castor.xml.NodeType.Attribute);
377     handler = new org.exolab.castor.xml.XMLFieldHandler()
378     {
379       public java.lang.Object getValue(java.lang.Object object)
380               throws IllegalStateException
381       {
382         Feature target = (Feature) object;
383         if (!target.hasScore())
384         {
385           return null;
386         }
387         return new java.lang.Float(target.getScore());
388       }
389
390       public void setValue(java.lang.Object object, java.lang.Object value)
391               throws IllegalStateException, IllegalArgumentException
392       {
393         try
394         {
395           Feature target = (Feature) object;
396           // if null, use delete method for optional primitives
397           if (value == null)
398           {
399             target.deleteScore();
400             return;
401           }
402           target.setScore(((java.lang.Float) value).floatValue());
403         } catch (java.lang.Exception ex)
404         {
405           throw new IllegalStateException(ex.toString());
406         }
407       }
408
409       public java.lang.Object newInstance(java.lang.Object parent)
410       {
411         return null;
412       }
413     };
414     desc.setHandler(handler);
415     desc.setMultivalued(false);
416     addFieldDescriptor(desc);
417
418     // -- validation code for: _score
419     fieldValidator = new org.exolab.castor.xml.FieldValidator();
420     { // -- local scope
421       org.exolab.castor.xml.validators.FloatValidator typeValidator;
422       typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
423       fieldValidator.setValidator(typeValidator);
424       typeValidator.setMinInclusive((float) -3.4028235E38);
425       typeValidator.setMaxInclusive((float) 3.4028235E38);
426     }
427     desc.setValidator(fieldValidator);
428     // -- initialize element descriptors
429
430     // -- _otherDataList
431     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
432             jalview.schemabinding.version2.OtherData.class,
433             "_otherDataList", "otherData",
434             org.exolab.castor.xml.NodeType.Element);
435     handler = new org.exolab.castor.xml.XMLFieldHandler()
436     {
437       public java.lang.Object getValue(java.lang.Object object)
438               throws IllegalStateException
439       {
440         Feature target = (Feature) object;
441         return target.getOtherData();
442       }
443
444       public void setValue(java.lang.Object object, java.lang.Object value)
445               throws IllegalStateException, IllegalArgumentException
446       {
447         try
448         {
449           Feature target = (Feature) object;
450           target.addOtherData((jalview.schemabinding.version2.OtherData) value);
451         } catch (java.lang.Exception ex)
452         {
453           throw new IllegalStateException(ex.toString());
454         }
455       }
456
457       public void resetValue(Object object) throws IllegalStateException,
458               IllegalArgumentException
459       {
460         try
461         {
462           Feature target = (Feature) object;
463           target.removeAllOtherData();
464         } catch (java.lang.Exception ex)
465         {
466           throw new IllegalStateException(ex.toString());
467         }
468       }
469
470       public java.lang.Object newInstance(java.lang.Object parent)
471       {
472         return new jalview.schemabinding.version2.OtherData();
473       }
474     };
475     desc.setHandler(handler);
476     desc.setNameSpaceURI("www.jalview.org");
477     desc.setMultivalued(true);
478     addFieldDescriptor(desc);
479
480     // -- validation code for: _otherDataList
481     fieldValidator = new org.exolab.castor.xml.FieldValidator();
482     fieldValidator.setMinOccurs(0);
483     { // -- local scope
484     }
485     desc.setValidator(fieldValidator);
486   }
487
488   // -----------/
489   // - Methods -/
490   // -----------/
491
492   /**
493    * Method getAccessMode.
494    * 
495    * @return the access mode specified for this class.
496    */
497   public org.exolab.castor.mapping.AccessMode getAccessMode()
498   {
499     return null;
500   }
501
502   /**
503    * Method getIdentity.
504    * 
505    * @return the identity field, null if this class has no identity.
506    */
507   public org.exolab.castor.mapping.FieldDescriptor getIdentity()
508   {
509     return super.getIdentity();
510   }
511
512   /**
513    * Method getJavaClass.
514    * 
515    * @return the Java class represented by this descriptor.
516    */
517   public java.lang.Class getJavaClass()
518   {
519     return jalview.schemabinding.version2.Feature.class;
520   }
521
522   /**
523    * Method getNameSpacePrefix.
524    * 
525    * @return the namespace prefix to use when marshaling as XML.
526    */
527   public java.lang.String getNameSpacePrefix()
528   {
529     return _nsPrefix;
530   }
531
532   /**
533    * Method getNameSpaceURI.
534    * 
535    * @return the namespace URI used when marshaling and unmarshaling as XML.
536    */
537   public java.lang.String getNameSpaceURI()
538   {
539     return _nsURI;
540   }
541
542   /**
543    * Method getValidator.
544    * 
545    * @return a specific validator for the class described by this
546    *         ClassDescriptor.
547    */
548   public org.exolab.castor.xml.TypeValidator getValidator()
549   {
550     return this;
551   }
552
553   /**
554    * Method getXMLName.
555    * 
556    * @return the XML Name for the Class being described.
557    */
558   public java.lang.String getXMLName()
559   {
560     return _xmlName;
561   }
562
563   /**
564    * Method isElementDefinition.
565    * 
566    * @return true if XML schema definition of this Class is that of a global
567    *         element or element with anonymous type definition.
568    */
569   public boolean isElementDefinition()
570   {
571     return _elementDefinition;
572   }
573
574 }