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