package org.nextprot.api.web.xstream.converters;
import org.nextprot.api.core.domain.annotation.Annotation;
import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
@NextprotConverter
public class AnnotationConverter implements Converter {
public AnnotationConverter() {
super();
}
public boolean canConvert(@SuppressWarnings("rawtypes") Class clazz) {
return Annotation.class.isAssignableFrom(clazz);
}
public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) {
Annotation annotation = (Annotation) value;
writer.startNode("unique-name");
writer.setValue(annotation.getUniqueName());
writer.endNode();
if(annotation.getCvTermAccessionCode() != null){
writer.startNode("cvterm-accession-code");
writer.setValue(annotation.getCvTermAccessionCode());
writer.endNode();
}
writer.startNode("category");
writer.setValue(annotation.getCategory());
writer.endNode();
writer.startNode("target-isoform-list");
context.convertAnother(annotation.getTargetingIsoformsMap());
writer.endNode();
}
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
return null;
}
}