public void write(Object obj, MessagePartInfo part, Element output) { AegisType type = databinding.getType(part); if (type == null) { throw new Fault(new Message("NO_MESSAGE_FOR_PART", LOG)); } Context context = new Context(databinding.getAegisContext()); context.setAttachments(attachments); type = TypeUtil.getWriteType(databinding.getAegisContext(), obj, type); try { W3CDOMStreamWriter domWriter = new W3CDOMStreamWriter(output); ElementWriter writer = new ElementWriter(domWriter); MessageWriter w2 = writer.getElementWriter(part.getConcreteName()); if (type.isNillable() && type.isWriteOuter() && obj == null) { w2.writeXsiNil(); w2.close(); return; } type.writeObject(obj, w2, context); w2.close(); } catch (DatabindingException e) { throw new RuntimeException(e); } }
public Object read(MessagePartInfo part, XMLStreamReader input) { try { AegisType type = part.getProperty("org.apache.cxf.aegis.outerType", AegisType.class); if (type == null) { type = databinding.getType(part); return reader.read(input, type); } else { ArrayType arrayType = (ArrayType) type; return reader.readFlatArray(input, arrayType, part.getConcreteName()); } } catch (Exception e) { throw new Fault(e); } }
public Object read(QName name, XMLStreamReader input, Class typeClass) { MessagePartInfo info = databinding.getPartFromClass(typeClass); return info == null ? read(input) : read(info, input); }
public XMLStreamDataReader(AegisDatabinding databinding, Bus bus) { this.databinding = databinding; reader = new AegisXMLStreamDataReader(databinding.getAegisContext()); }