0aede2710d3419aed51e20ff535b2cf492cd2340
[jalview.git] / src / jalview / schemabinding / version2 / descriptors / SequenceDescriptor.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)\r
3  * Copyright (C) 2009 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.Sequence;\r
26 \r
27 /**\r
28  * Class SequenceDescriptor.\r
29  * \r
30  * @version $Revision$ $Date$\r
31  */\r
32 public class SequenceDescriptor extends jalview.schemabinding.version2.descriptors.SequenceTypeDescriptor {\r
33 \r
34 \r
35       //--------------------------/\r
36      //- Class/Member Variables -/\r
37     //--------------------------/\r
38 \r
39     /**\r
40      * Field _elementDefinition.\r
41      */\r
42     private boolean _elementDefinition;\r
43 \r
44     /**\r
45      * Field _nsPrefix.\r
46      */\r
47     private java.lang.String _nsPrefix;\r
48 \r
49     /**\r
50      * Field _nsURI.\r
51      */\r
52     private java.lang.String _nsURI;\r
53 \r
54     /**\r
55      * Field _xmlName.\r
56      */\r
57     private java.lang.String _xmlName;\r
58 \r
59 \r
60       //----------------/\r
61      //- Constructors -/\r
62     //----------------/\r
63 \r
64     public SequenceDescriptor() {\r
65         super();\r
66         setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.SequenceTypeDescriptor());\r
67         _nsURI = "www.vamsas.ac.uk/jalview/version2";\r
68         _xmlName = "Sequence";\r
69         _elementDefinition = true;\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         //-- _dsseqid\r
79         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_dsseqid", "dsseqid", org.exolab.castor.xml.NodeType.Attribute);\r
80         desc.setImmutable(true);\r
81         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
82             public java.lang.Object getValue( java.lang.Object object ) \r
83                 throws IllegalStateException\r
84             {\r
85                 Sequence target = (Sequence) object;\r
86                 return target.getDsseqid();\r
87             }\r
88             public void setValue( java.lang.Object object, java.lang.Object value) \r
89                 throws IllegalStateException, IllegalArgumentException\r
90             {\r
91                 try {\r
92                     Sequence target = (Sequence) object;\r
93                     target.setDsseqid( (java.lang.String) value);\r
94                 } catch (java.lang.Exception ex) {\r
95                     throw new IllegalStateException(ex.toString());\r
96                 }\r
97             }\r
98             public java.lang.Object newInstance(java.lang.Object parent) {\r
99                 return null;\r
100             }\r
101         };\r
102         desc.setHandler(handler);\r
103         desc.setMultivalued(false);\r
104         addFieldDescriptor(desc);\r
105         \r
106         //-- validation code for: _dsseqid\r
107         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
108         { //-- local scope\r
109             org.exolab.castor.xml.validators.StringValidator typeValidator;\r
110             typeValidator = new org.exolab.castor.xml.validators.StringValidator();\r
111             fieldValidator.setValidator(typeValidator);\r
112             typeValidator.setWhiteSpace("preserve");\r
113         }\r
114         desc.setValidator(fieldValidator);\r
115         //-- initialize element descriptors\r
116         \r
117         //-- _DBRefList\r
118         desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.DBRef.class, "_DBRefList", "DBRef", org.exolab.castor.xml.NodeType.Element);\r
119         handler = new org.exolab.castor.xml.XMLFieldHandler() {\r
120             public java.lang.Object getValue( java.lang.Object object ) \r
121                 throws IllegalStateException\r
122             {\r
123                 Sequence target = (Sequence) object;\r
124                 return target.getDBRef();\r
125             }\r
126             public void setValue( java.lang.Object object, java.lang.Object value) \r
127                 throws IllegalStateException, IllegalArgumentException\r
128             {\r
129                 try {\r
130                     Sequence target = (Sequence) object;\r
131                     target.addDBRef( (jalview.schemabinding.version2.DBRef) value);\r
132                 } catch (java.lang.Exception ex) {\r
133                     throw new IllegalStateException(ex.toString());\r
134                 }\r
135             }\r
136             public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {\r
137                 try {\r
138                     Sequence target = (Sequence) object;\r
139                     target.removeAllDBRef();\r
140                 } catch (java.lang.Exception ex) {\r
141                     throw new IllegalStateException(ex.toString());\r
142                 }\r
143             }\r
144             public java.lang.Object newInstance(java.lang.Object parent) {\r
145                 return new jalview.schemabinding.version2.DBRef();\r
146             }\r
147         };\r
148         desc.setHandler(handler);\r
149         desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
150         desc.setMultivalued(true);\r
151         addFieldDescriptor(desc);\r
152         \r
153         //-- validation code for: _DBRefList\r
154         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
155         fieldValidator.setMinOccurs(0);\r
156         { //-- local scope\r
157         }\r
158         desc.setValidator(fieldValidator);\r
159     }\r
160 \r
161 \r
162       //-----------/\r
163      //- Methods -/\r
164     //-----------/\r
165 \r
166     /**\r
167      * Method getAccessMode.\r
168      * \r
169      * @return the access mode specified for this class.\r
170      */\r
171     public org.exolab.castor.mapping.AccessMode getAccessMode(\r
172     ) {\r
173         return null;\r
174     }\r
175 \r
176     /**\r
177      * Method getIdentity.\r
178      * \r
179      * @return the identity field, null if this class has no\r
180      * identity.\r
181      */\r
182     public org.exolab.castor.mapping.FieldDescriptor getIdentity(\r
183     ) {\r
184         return super.getIdentity();\r
185     }\r
186 \r
187     /**\r
188      * Method getJavaClass.\r
189      * \r
190      * @return the Java class represented by this descriptor.\r
191      */\r
192     public java.lang.Class getJavaClass(\r
193     ) {\r
194         return jalview.schemabinding.version2.Sequence.class;\r
195     }\r
196 \r
197     /**\r
198      * Method getNameSpacePrefix.\r
199      * \r
200      * @return the namespace prefix to use when marshaling as XML.\r
201      */\r
202     public java.lang.String getNameSpacePrefix(\r
203     ) {\r
204         return _nsPrefix;\r
205     }\r
206 \r
207     /**\r
208      * Method getNameSpaceURI.\r
209      * \r
210      * @return the namespace URI used when marshaling and\r
211      * unmarshaling as XML.\r
212      */\r
213     public java.lang.String getNameSpaceURI(\r
214     ) {\r
215         return _nsURI;\r
216     }\r
217 \r
218     /**\r
219      * Method getValidator.\r
220      * \r
221      * @return a specific validator for the class described by this\r
222      * ClassDescriptor.\r
223      */\r
224     public org.exolab.castor.xml.TypeValidator getValidator(\r
225     ) {\r
226         return this;\r
227     }\r
228 \r
229     /**\r
230      * Method getXMLName.\r
231      * \r
232      * @return the XML Name for the Class being described.\r
233      */\r
234     public java.lang.String getXMLName(\r
235     ) {\r
236         return _xmlName;\r
237     }\r
238 \r
239     /**\r
240      * Method isElementDefinition.\r
241      * \r
242      * @return true if XML schema definition of this Class is that\r
243      * of a global\r
244      * element or element with anonymous type definition.\r
245      */\r
246     public boolean isElementDefinition(\r
247     ) {\r
248         return _elementDefinition;\r
249     }\r
250 \r
251 }\r