1 29 30 package com.caucho.jaxb.skeleton; 31 32 import com.caucho.jaxb.JAXBUtil; 33 import com.caucho.util.L10N; 34 35 import javax.xml.bind.JAXBException; 36 import javax.xml.bind.Marshaller; 37 import javax.xml.bind.Unmarshaller; 38 import javax.xml.namespace.QName ; 39 import javax.xml.stream.XMLStreamException; 40 import javax.xml.stream.XMLStreamReader; 41 import javax.xml.stream.XMLStreamWriter; 42 import java.io.IOException ; 43 44 47 public class SkeletonProperty extends Property { 48 private static final L10N L = new L10N(SkeletonProperty.class); 49 50 private Skeleton _skeleton; 51 52 public SkeletonProperty(Skeleton skeleton) 53 { 54 _skeleton = skeleton; 55 } 56 57 public Object read(Unmarshaller u, XMLStreamReader in, QName qname) 58 throws IOException , XMLStreamException, JAXBException 59 { 60 if (in.getEventType() != in.START_ELEMENT || ! in.getName().equals(qname)) 61 return null; 62 63 Object ret = _skeleton.read(u, in); 64 65 while (in.getEventType() != in.END_ELEMENT) 66 in.nextTag(); 67 68 if (! in.getName().equals(qname)) 69 throw new IOException (L.l("Expected </{0}>, not </{1}>", 70 qname.getLocalPart(), in.getLocalName())); 71 72 in.nextTag(); 73 74 return ret; 75 } 76 77 public void write(Marshaller m, XMLStreamWriter out, Object obj, QName qname) 78 throws IOException , XMLStreamException, JAXBException 79 { 80 _skeleton.write(m, out, obj, qname); 83 } 84 85 public String getSchemaType() 86 { 87 return JAXBUtil.qNameToString(_skeleton.getTypeName()); 88 } 89 90 public boolean isXmlPrimitiveType() 91 { 92 return false; 93 } 94 95 public String toString() 96 { 97 return "SkeletonProperty[" + _skeleton + "]"; 98 } 99 } 100 101 102 | Popular Tags |