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