<?xml version="1.0" encoding="UTF-8"?>\r
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" xmlns:jalview="www.jalview.org/colours" xmlns:jv="www.jalview.org" targetNamespace="www.jalview.org" elementFormDefault="qualified" attributeFormDefault="unqualified">\r
-<xs:import namespace="www.vamsas.ac.uk/jalview/version2" schemaLocation="vamsas.xsd"/>\r
-<xs:import namespace="www.jalview.org/colours" schemaLocation="JalviewUserColours.xsd"/>\r
+ <xs:import namespace="www.vamsas.ac.uk/jalview/version2" schemaLocation="vamsas.xsd"/>\r
+ <xs:import namespace="www.jalview.org/colours" schemaLocation="JalviewUserColours.xsd"/>\r
<xs:complexType name="JalviewModel">\r
<xs:sequence>\r
<xs:element name="creationDate" type="xs:dateTime"/>\r
</xs:sequence>\r
</xs:complexType>\r
<xs:complexType name="feature">\r
+ <xs:sequence>\r
+ <xs:element name="otherData" minOccurs="0" maxOccurs="unbounded">\r
+ <xs:complexType>\r
+ <xs:attribute name="key" type="xs:string" use="required"/>\r
+ <xs:attribute name="value" type="xs:string" use="required"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
<xs:attribute name="begin" type="xs:int" use="required"/>\r
<xs:attribute name="end" type="xs:int" use="required"/>\r
<xs:attribute name="type" type="xs:string" use="required"/>\r
<xs:attribute name="description" type="xs:string" use="optional"/>\r
<xs:attribute name="status" type="xs:string" use="optional"/>\r
<xs:attribute name="featureGroup" type="xs:string" use="optional"/>\r
+ <xs:attribute name="score" type="xs:float" use="optional"/>\r
</xs:complexType>\r
<xs:complexType name="pdbentry">\r
<xs:sequence minOccurs="0" maxOccurs="unbounded">\r
public float score;\r
public String type;\r
public String description;\r
- Hashtable otherDetails;\r
+ public Hashtable otherDetails;\r
public java.util.Vector links;\r
\r
// Feature group can be set from a features file\r
features.setDescription(sf[index].getDescription());\r
features.setType(sf[index].getType());\r
features.setFeatureGroup(sf[index].getFeatureGroup());\r
+ features.setScore(sf[index].getScore());\r
+ if(sf[index].links!=null)\r
+ {\r
+ for(int l=0; l<sf[index].links.size(); l++)\r
+ {\r
+ OtherData keyValue = new OtherData();\r
+ keyValue.setKey("LINK_"+l);\r
+ keyValue.setValue(sf[index].links.elementAt(l).toString());\r
+ features.addOtherData(keyValue);\r
+ }\r
+ }\r
+ if(sf[index].otherDetails!=null)\r
+ {\r
+ String key;\r
+ Enumeration keys = sf[index].otherDetails.keys();\r
+ while(keys.hasMoreElements())\r
+ {\r
+ key = keys.nextElement().toString();\r
+ OtherData keyValue = new OtherData();\r
+ keyValue.setKey( key );\r
+ keyValue.setValue(\r
+ sf[index].otherDetails.get(key).toString());\r
+ features.addOtherData(keyValue);\r
+ }\r
+ }\r
+\r
jseq.addFeatures(features);\r
index ++;\r
}\r
features[f].getBegin(), features[f].getEnd(),\r
features[f].getFeatureGroup());\r
\r
+ sf.setScore(features[f].getScore());\r
+ for(int od=0; od<features[f].getOtherDataCount(); od++)\r
+ {\r
+ OtherData keyValue = features[f].getOtherData(od);\r
+ if(keyValue.getKey().startsWith("LINK"))\r
+ sf.addLink(keyValue.getValue());\r
+ else\r
+ sf.setValue(keyValue.getKey(), keyValue.getValue());\r
+\r
+ }\r
+\r
al.getSequenceAt(i).getDatasetSequence().addSequenceFeature(sf);\r
}\r
}\r
import java.io.Reader;\r
import java.io.Serializable;\r
import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
import org.exolab.castor.xml.MarshalException;\r
import org.exolab.castor.xml.Marshaller;\r
import org.exolab.castor.xml.Unmarshaller;\r
*/\r
private java.lang.String _featureGroup;\r
\r
+ /**\r
+ * Field _score\r
+ */\r
+ private float _score;\r
+\r
+ /**\r
+ * keeps track of state for field: _score\r
+ */\r
+ private boolean _has_score;\r
+\r
+ /**\r
+ * Field _otherDataList\r
+ */\r
+ private java.util.Vector _otherDataList;\r
+\r
\r
//----------------/\r
//- Constructors -/\r
\r
public Feature() {\r
super();\r
+ _otherDataList = new Vector();\r
} //-- jalview.schemabinding.version2.Feature()\r
\r
\r
//-----------/\r
\r
/**\r
+ * Method addOtherData\r
+ * \r
+ * \r
+ * \r
+ * @param vOtherData\r
+ */\r
+ public void addOtherData(jalview.schemabinding.version2.OtherData vOtherData)\r
+ throws java.lang.IndexOutOfBoundsException\r
+ {\r
+ _otherDataList.addElement(vOtherData);\r
+ } //-- void addOtherData(jalview.schemabinding.version2.OtherData) \r
+\r
+ /**\r
+ * Method addOtherData\r
+ * \r
+ * \r
+ * \r
+ * @param index\r
+ * @param vOtherData\r
+ */\r
+ public void addOtherData(int index, jalview.schemabinding.version2.OtherData vOtherData)\r
+ throws java.lang.IndexOutOfBoundsException\r
+ {\r
+ _otherDataList.insertElementAt(vOtherData, index);\r
+ } //-- void addOtherData(int, jalview.schemabinding.version2.OtherData) \r
+\r
+ /**\r
* Method deleteBegin\r
* \r
*/\r
} //-- void deleteEnd() \r
\r
/**\r
+ * Method deleteScore\r
+ * \r
+ */\r
+ public void deleteScore()\r
+ {\r
+ this._has_score= false;\r
+ } //-- void deleteScore() \r
+\r
+ /**\r
+ * Method enumerateOtherData\r
+ * \r
+ * \r
+ * \r
+ * @return Enumeration\r
+ */\r
+ public java.util.Enumeration enumerateOtherData()\r
+ {\r
+ return _otherDataList.elements();\r
+ } //-- java.util.Enumeration enumerateOtherData() \r
+\r
+ /**\r
* Returns the value of field 'begin'.\r
* \r
* @return int\r
} //-- java.lang.String getFeatureGroup() \r
\r
/**\r
+ * Method getOtherData\r
+ * \r
+ * \r
+ * \r
+ * @param index\r
+ * @return OtherData\r
+ */\r
+ public jalview.schemabinding.version2.OtherData getOtherData(int index)\r
+ throws java.lang.IndexOutOfBoundsException\r
+ {\r
+ //-- check bounds for index\r
+ if ((index < 0) || (index > _otherDataList.size())) {\r
+ throw new IndexOutOfBoundsException();\r
+ }\r
+ \r
+ return (jalview.schemabinding.version2.OtherData) _otherDataList.elementAt(index);\r
+ } //-- jalview.schemabinding.version2.OtherData getOtherData(int) \r
+\r
+ /**\r
+ * Method getOtherData\r
+ * \r
+ * \r
+ * \r
+ * @return OtherData\r
+ */\r
+ public jalview.schemabinding.version2.OtherData[] getOtherData()\r
+ {\r
+ int size = _otherDataList.size();\r
+ jalview.schemabinding.version2.OtherData[] mArray = new jalview.schemabinding.version2.OtherData[size];\r
+ for (int index = 0; index < size; index++) {\r
+ mArray[index] = (jalview.schemabinding.version2.OtherData) _otherDataList.elementAt(index);\r
+ }\r
+ return mArray;\r
+ } //-- jalview.schemabinding.version2.OtherData[] getOtherData() \r
+\r
+ /**\r
+ * Method getOtherDataCount\r
+ * \r
+ * \r
+ * \r
+ * @return int\r
+ */\r
+ public int getOtherDataCount()\r
+ {\r
+ return _otherDataList.size();\r
+ } //-- int getOtherDataCount() \r
+\r
+ /**\r
+ * Returns the value of field 'score'.\r
+ * \r
+ * @return float\r
+ * @return the value of field 'score'.\r
+ */\r
+ public float getScore()\r
+ {\r
+ return this._score;\r
+ } //-- float getScore() \r
+\r
+ /**\r
* Returns the value of field 'status'.\r
* \r
* @return String\r
} //-- boolean hasEnd() \r
\r
/**\r
+ * Method hasScore\r
+ * \r
+ * \r
+ * \r
+ * @return boolean\r
+ */\r
+ public boolean hasScore()\r
+ {\r
+ return this._has_score;\r
+ } //-- boolean hasScore() \r
+\r
+ /**\r
* Method isValid\r
* \r
* \r
} //-- void marshal(org.xml.sax.ContentHandler) \r
\r
/**\r
+ * Method removeAllOtherData\r
+ * \r
+ */\r
+ public void removeAllOtherData()\r
+ {\r
+ _otherDataList.removeAllElements();\r
+ } //-- void removeAllOtherData() \r
+\r
+ /**\r
+ * Method removeOtherData\r
+ * \r
+ * \r
+ * \r
+ * @param index\r
+ * @return OtherData\r
+ */\r
+ public jalview.schemabinding.version2.OtherData removeOtherData(int index)\r
+ {\r
+ java.lang.Object obj = _otherDataList.elementAt(index);\r
+ _otherDataList.removeElementAt(index);\r
+ return (jalview.schemabinding.version2.OtherData) obj;\r
+ } //-- jalview.schemabinding.version2.OtherData removeOtherData(int) \r
+\r
+ /**\r
* Sets the value of field 'begin'.\r
* \r
* @param begin the value of field 'begin'.\r
} //-- void setFeatureGroup(java.lang.String) \r
\r
/**\r
+ * Method setOtherData\r
+ * \r
+ * \r
+ * \r
+ * @param index\r
+ * @param vOtherData\r
+ */\r
+ public void setOtherData(int index, jalview.schemabinding.version2.OtherData vOtherData)\r
+ throws java.lang.IndexOutOfBoundsException\r
+ {\r
+ //-- check bounds for index\r
+ if ((index < 0) || (index > _otherDataList.size())) {\r
+ throw new IndexOutOfBoundsException();\r
+ }\r
+ _otherDataList.setElementAt(vOtherData, index);\r
+ } //-- void setOtherData(int, jalview.schemabinding.version2.OtherData) \r
+\r
+ /**\r
+ * Method setOtherData\r
+ * \r
+ * \r
+ * \r
+ * @param otherDataArray\r
+ */\r
+ public void setOtherData(jalview.schemabinding.version2.OtherData[] otherDataArray)\r
+ {\r
+ //-- copy array\r
+ _otherDataList.removeAllElements();\r
+ for (int i = 0; i < otherDataArray.length; i++) {\r
+ _otherDataList.addElement(otherDataArray[i]);\r
+ }\r
+ } //-- void setOtherData(jalview.schemabinding.version2.OtherData) \r
+\r
+ /**\r
+ * Sets the value of field 'score'.\r
+ * \r
+ * @param score the value of field 'score'.\r
+ */\r
+ public void setScore(float score)\r
+ {\r
+ this._score = score;\r
+ this._has_score = true;\r
+ } //-- void setScore(float) \r
+\r
+ /**\r
* Sets the value of field 'status'.\r
* \r
* @param status the value of field 'status'.\r
super();\r
nsURI = "www.jalview.org";\r
xmlName = "feature";\r
+ \r
+ //-- set grouping compositor\r
+ setCompositorAsSequence();\r
org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;\r
org.exolab.castor.xml.XMLFieldHandler handler = null;\r
org.exolab.castor.xml.FieldValidator fieldValidator = null;\r
fieldValidator.setValidator(typeValidator);\r
}\r
desc.setValidator(fieldValidator);\r
+ //-- _score\r
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(float.class, "_score", "score", org.exolab.castor.xml.NodeType.Attribute);\r
+ handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+ public java.lang.Object getValue( java.lang.Object object ) \r
+ throws IllegalStateException\r
+ {\r
+ Feature target = (Feature) object;\r
+ if(!target.hasScore())\r
+ return null;\r
+ return new java.lang.Float(target.getScore());\r
+ }\r
+ public void setValue( java.lang.Object object, java.lang.Object value) \r
+ throws IllegalStateException, IllegalArgumentException\r
+ {\r
+ try {\r
+ Feature target = (Feature) object;\r
+ // if null, use delete method for optional primitives \r
+ if (value == null) {\r
+ target.deleteScore();\r
+ return;\r
+ }\r
+ target.setScore( ((java.lang.Float)value).floatValue());\r
+ }\r
+ catch (java.lang.Exception ex) {\r
+ throw new IllegalStateException(ex.toString());\r
+ }\r
+ }\r
+ public java.lang.Object newInstance( java.lang.Object parent ) {\r
+ return null;\r
+ }\r
+ } );\r
+ desc.setHandler(handler);\r
+ addFieldDescriptor(desc);\r
+ \r
+ //-- validation code for: _score\r
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+ { //-- local scope\r
+ FloatValidator typeValidator = new FloatValidator();\r
+ fieldValidator.setValidator(typeValidator);\r
+ }\r
+ desc.setValidator(fieldValidator);\r
//-- initialize element descriptors\r
\r
+ //-- _otherDataList\r
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.OtherData.class, "_otherDataList", "otherData", org.exolab.castor.xml.NodeType.Element);\r
+ handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+ public java.lang.Object getValue( java.lang.Object object ) \r
+ throws IllegalStateException\r
+ {\r
+ Feature target = (Feature) object;\r
+ return target.getOtherData();\r
+ }\r
+ public void setValue( java.lang.Object object, java.lang.Object value) \r
+ throws IllegalStateException, IllegalArgumentException\r
+ {\r
+ try {\r
+ Feature target = (Feature) object;\r
+ target.addOtherData( (jalview.schemabinding.version2.OtherData) value);\r
+ }\r
+ catch (java.lang.Exception ex) {\r
+ throw new IllegalStateException(ex.toString());\r
+ }\r
+ }\r
+ public java.lang.Object newInstance( java.lang.Object parent ) {\r
+ return new jalview.schemabinding.version2.OtherData();\r
+ }\r
+ } );\r
+ desc.setHandler(handler);\r
+ desc.setNameSpaceURI("www.jalview.org");\r
+ desc.setMultivalued(true);\r
+ addFieldDescriptor(desc);\r
+ \r
+ //-- validation code for: _otherDataList\r
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+ fieldValidator.setMinOccurs(0);\r
+ { //-- local scope\r
+ }\r
+ desc.setValidator(fieldValidator);\r
} //-- jalview.schemabinding.version2.FeatureDescriptor()\r
\r
\r