applied LGPLv3 and source code formatting.
[vamsas.git] / src / uk / ac / vamsas / objects / core / descriptors / SequenceDescriptor.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.Sequence;\r
29 \r
30 /**\r
31  * Class SequenceDescriptor.\r
32  * \r
33  * @version $Revision$ $Date$\r
34  */\r
35 public class SequenceDescriptor extends\r
36     uk.ac.vamsas.objects.core.descriptors.SequenceTypeDescriptor {\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 SequenceDescriptor() {\r
67     super();\r
68     setExtendsWithoutFlatten(new uk.ac.vamsas.objects.core.descriptors.SequenceTypeDescriptor());\r
69     _nsURI = "http://www.vamsas.ac.uk/schemas/1.0/vamsasTypes";\r
70     _xmlName = "Sequence";\r
71     _elementDefinition = true;\r
72 \r
73     // -- set grouping compositor\r
74     setCompositorAsSequence();\r
75     org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;\r
76     org.exolab.castor.mapping.FieldHandler handler = null;\r
77     org.exolab.castor.xml.FieldValidator fieldValidator = null;\r
78     // -- initialize attribute descriptors\r
79 \r
80     // -- _id\r
81     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
82         java.lang.String.class, "_id", "id",\r
83         org.exolab.castor.xml.NodeType.Attribute);\r
84     super.setIdentity(desc);\r
85     handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
86       public java.lang.Object getValue(java.lang.Object object)\r
87           throws IllegalStateException {\r
88         Sequence target = (Sequence) object;\r
89         return target.getId();\r
90       }\r
91 \r
92       public void setValue(java.lang.Object object, java.lang.Object value)\r
93           throws IllegalStateException, IllegalArgumentException {\r
94         try {\r
95           Sequence target = (Sequence) object;\r
96           target.setId((java.lang.String) value);\r
97         } catch (java.lang.Exception ex) {\r
98           throw new IllegalStateException(ex.toString());\r
99         }\r
100       }\r
101 \r
102       public java.lang.Object newInstance(java.lang.Object parent) {\r
103         return new java.lang.String();\r
104       }\r
105     };\r
106     desc.setHandler(handler);\r
107     desc.setMultivalued(false);\r
108     addFieldDescriptor(desc);\r
109 \r
110     // -- validation code for: _id\r
111     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
112     { // -- local scope\r
113       org.exolab.castor.xml.validators.IdValidator typeValidator;\r
114       typeValidator = new org.exolab.castor.xml.validators.IdValidator();\r
115       fieldValidator.setValidator(typeValidator);\r
116     }\r
117     desc.setValidator(fieldValidator);\r
118     // -- _dictionary\r
119     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
120         java.lang.String.class, "_dictionary", "dictionary",\r
121         org.exolab.castor.xml.NodeType.Attribute);\r
122     desc.setImmutable(true);\r
123     handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
124       public java.lang.Object getValue(java.lang.Object object)\r
125           throws IllegalStateException {\r
126         Sequence target = (Sequence) object;\r
127         return target.getDictionary();\r
128       }\r
129 \r
130       public void setValue(java.lang.Object object, java.lang.Object value)\r
131           throws IllegalStateException, IllegalArgumentException {\r
132         try {\r
133           Sequence target = (Sequence) object;\r
134           target.setDictionary((java.lang.String) value);\r
135         } catch (java.lang.Exception ex) {\r
136           throw new IllegalStateException(ex.toString());\r
137         }\r
138       }\r
139 \r
140       public java.lang.Object newInstance(java.lang.Object parent) {\r
141         return null;\r
142       }\r
143     };\r
144     desc.setHandler(handler);\r
145     desc.setRequired(true);\r
146     desc.setMultivalued(false);\r
147     addFieldDescriptor(desc);\r
148 \r
149     // -- validation code for: _dictionary\r
150     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
151     fieldValidator.setMinOccurs(1);\r
152     { // -- local scope\r
153       org.exolab.castor.xml.validators.StringValidator typeValidator;\r
154       typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
155       fieldValidator.setValidator(typeValidator);\r
156       typeValidator.setWhiteSpace("preserve");\r
157     }\r
158     desc.setValidator(fieldValidator);\r
159     // -- initialize element descriptors\r
160 \r
161     // -- _dbRefList\r
162     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
163         uk.ac.vamsas.objects.core.DbRef.class, "_dbRefList", "dbRef",\r
164         org.exolab.castor.xml.NodeType.Element);\r
165     handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
166       public java.lang.Object getValue(java.lang.Object object)\r
167           throws IllegalStateException {\r
168         Sequence target = (Sequence) object;\r
169         return target.getDbRef();\r
170       }\r
171 \r
172       public void setValue(java.lang.Object object, java.lang.Object value)\r
173           throws IllegalStateException, IllegalArgumentException {\r
174         try {\r
175           Sequence target = (Sequence) object;\r
176           target.addDbRef((uk.ac.vamsas.objects.core.DbRef) value);\r
177         } catch (java.lang.Exception ex) {\r
178           throw new IllegalStateException(ex.toString());\r
179         }\r
180       }\r
181 \r
182       public void resetValue(Object object) throws IllegalStateException,\r
183           IllegalArgumentException {\r
184         try {\r
185           Sequence target = (Sequence) object;\r
186           target.removeAllDbRef();\r
187         } catch (java.lang.Exception ex) {\r
188           throw new IllegalStateException(ex.toString());\r
189         }\r
190       }\r
191 \r
192       public java.lang.Object newInstance(java.lang.Object parent) {\r
193         return new uk.ac.vamsas.objects.core.DbRef();\r
194       }\r
195     };\r
196     desc.setHandler(handler);\r
197     desc.setNameSpaceURI("http://www.vamsas.ac.uk/schemas/1.0/vamsasTypes");\r
198     desc.setMultivalued(true);\r
199     addFieldDescriptor(desc);\r
200 \r
201     // -- validation code for: _dbRefList\r
202     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
203     fieldValidator.setMinOccurs(0);\r
204     { // -- local scope\r
205     }\r
206     desc.setValidator(fieldValidator);\r
207     // -- _vxrefList\r
208     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(\r
209         uk.ac.vamsas.objects.core.Vxref.class, "_vxrefList", "vxref",\r
210         org.exolab.castor.xml.NodeType.Element);\r
211     handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
212       public java.lang.Object getValue(java.lang.Object object)\r
213           throws IllegalStateException {\r
214         Sequence target = (Sequence) object;\r
215         return target.getVxref();\r
216       }\r
217 \r
218       public void setValue(java.lang.Object object, java.lang.Object value)\r
219           throws IllegalStateException, IllegalArgumentException {\r
220         try {\r
221           Sequence target = (Sequence) object;\r
222           target.addVxref((uk.ac.vamsas.objects.core.Vxref) value);\r
223         } catch (java.lang.Exception ex) {\r
224           throw new IllegalStateException(ex.toString());\r
225         }\r
226       }\r
227 \r
228       public void resetValue(Object object) throws IllegalStateException,\r
229           IllegalArgumentException {\r
230         try {\r
231           Sequence target = (Sequence) object;\r
232           target.removeAllVxref();\r
233         } catch (java.lang.Exception ex) {\r
234           throw new IllegalStateException(ex.toString());\r
235         }\r
236       }\r
237 \r
238       public java.lang.Object newInstance(java.lang.Object parent) {\r
239         return new uk.ac.vamsas.objects.core.Vxref();\r
240       }\r
241     };\r
242     desc.setHandler(handler);\r
243     desc.setNameSpaceURI("http://www.vamsas.ac.uk/schemas/1.0/vamsasTypes");\r
244     desc.setMultivalued(true);\r
245     addFieldDescriptor(desc);\r
246 \r
247     // -- validation code for: _vxrefList\r
248     fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
249     fieldValidator.setMinOccurs(0);\r
250     { // -- local scope\r
251     }\r
252     desc.setValidator(fieldValidator);\r
253   }\r
254 \r
255   // -----------/\r
256   // - Methods -/\r
257   // -----------/\r
258 \r
259   /**\r
260    * Method getAccessMode.\r
261    * \r
262    * @return the access mode specified for this class.\r
263    */\r
264   public org.exolab.castor.mapping.AccessMode getAccessMode() {\r
265     return null;\r
266   }\r
267 \r
268   /**\r
269    * Method getIdentity.\r
270    * \r
271    * @return the identity field, null if this class has no identity.\r
272    */\r
273   public org.exolab.castor.mapping.FieldDescriptor getIdentity() {\r
274     return super.getIdentity();\r
275   }\r
276 \r
277   /**\r
278    * Method getJavaClass.\r
279    * \r
280    * @return the Java class represented by this descriptor.\r
281    */\r
282   public java.lang.Class getJavaClass() {\r
283     return uk.ac.vamsas.objects.core.Sequence.class;\r
284   }\r
285 \r
286   /**\r
287    * Method getNameSpacePrefix.\r
288    * \r
289    * @return the namespace prefix to use when marshaling as XML.\r
290    */\r
291   public java.lang.String getNameSpacePrefix() {\r
292     return _nsPrefix;\r
293   }\r
294 \r
295   /**\r
296    * Method getNameSpaceURI.\r
297    * \r
298    * @return the namespace URI used when marshaling and unmarshaling as XML.\r
299    */\r
300   public java.lang.String getNameSpaceURI() {\r
301     return _nsURI;\r
302   }\r
303 \r
304   /**\r
305    * Method getValidator.\r
306    * \r
307    * @return a specific validator for the class described by this\r
308    *         ClassDescriptor.\r
309    */\r
310   public org.exolab.castor.xml.TypeValidator getValidator() {\r
311     return this;\r
312   }\r
313 \r
314   /**\r
315    * Method getXMLName.\r
316    * \r
317    * @return the XML Name for the Class being described.\r
318    */\r
319   public java.lang.String getXMLName() {\r
320     return _xmlName;\r
321   }\r
322 \r
323   /**\r
324    * Method isElementDefinition.\r
325    * \r
326    * @return true if XML schema definition of this Class is that of a global\r
327    *         element or element with anonymous type definition.\r
328    */\r
329   public boolean isElementDefinition() {\r
330     return _elementDefinition;\r
331   }\r
332 \r
333 }\r