1 29 30 package com.caucho.jaxb.skeleton; 31 32 import com.caucho.jaxb.JAXBContextImpl; 33 34 import javax.xml.bind.JAXBException; 35 import javax.xml.bind.Marshaller; 36 import javax.xml.bind.Unmarshaller; 37 import javax.xml.namespace.QName ; 38 import javax.xml.stream.XMLStreamException; 39 import javax.xml.stream.XMLStreamReader; 40 import javax.xml.stream.XMLStreamWriter; 41 import java.io.IOException ; 42 import java.util.LinkedHashMap ; 43 import java.util.logging.Logger ; 44 45 public abstract class Skeleton { 46 public static final String XML_SCHEMA_NS = "http://www.w3.org/2001/XMLSchema"; 47 public static final String XML_SCHEMA_PREFIX = "xsd"; 48 49 private static final Logger log = Logger.getLogger(Skeleton.class.getName()); 50 51 protected JAXBContextImpl _context; 52 protected QName _typeName; 53 54 protected LinkedHashMap <String ,Accessor> _attributeAccessors 55 = new LinkedHashMap <String ,Accessor>(); 56 57 protected LinkedHashMap <String ,Accessor> _elementAccessors 58 = new LinkedHashMap <String ,Accessor>(); 59 60 protected Skeleton(JAXBContextImpl context) 61 { 62 _context = context; 63 } 64 65 public QName getTypeName() 66 { 67 return _typeName; 68 } 69 70 public abstract Object read(Unmarshaller u, XMLStreamReader in) 71 throws IOException , XMLStreamException, JAXBException; 72 73 public abstract void write(Marshaller m, XMLStreamWriter out, 74 Object obj, QName fieldName) 75 throws IOException , XMLStreamException, JAXBException; 76 77 protected Accessor getAccessor(QName q) 78 { 79 return _elementAccessors.get(q.getLocalPart()); 80 } 81 82 public abstract void generateSchema(XMLStreamWriter out) 83 throws JAXBException, XMLStreamException; 84 85 public QName getElementName(Object object) 86 { 87 return null; 88 } 89 } 90 | Popular Tags |