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