JAFDataHandlerSerializerpublic class JAFDataHandlerSerializer extends Object implements org.apache.axis.encoding.SerializerJAFDataHandler Serializer |
Fields Summary |
---|
protected static Log | log |
Methods Summary |
---|
public java.lang.String | getMechanismType() return Constants.AXIS_SAX;
| public void | serialize(javax.xml.namespace.QName name, org.xml.sax.Attributes attributes, java.lang.Object value, org.apache.axis.encoding.SerializationContext context)Serialize a JAF DataHandler quantity.
DataHandler dh= (DataHandler)value;
//Add the attachment content to the message.
Attachments attachments= context.getCurrentMessage().getAttachmentsImpl();
if (attachments == null) {
// Attachments apparently aren't supported.
// Instead of throwing NullPointerException like
// we used to do, throw something meaningful.
throw new IOException(Messages.getMessage("noAttachments"));
}
SOAPConstants soapConstants = context.getMessageContext().getSOAPConstants();
Part attachmentPart= attachments.createAttachmentPart(dh);
AttributesImpl attrs = new AttributesImpl();
if (attributes != null && 0 < attributes.getLength())
attrs.setAttributes(attributes); //copy the existing ones.
int typeIndex=-1;
if((typeIndex = attrs.getIndex(Constants.URI_DEFAULT_SCHEMA_XSI,
"type")) != -1){
//Found a xsi:type which should not be there for attachments.
attrs.removeAttribute(typeIndex);
}
if(attachments.getSendType() == Attachments.SEND_TYPE_MTOM) {
context.setWriteXMLType(null);
context.startElement(name, attrs);
AttributesImpl attrs2 = new AttributesImpl();
attrs2.addAttribute("", soapConstants.getAttrHref(), soapConstants.getAttrHref(),
"CDATA", attachmentPart.getContentIdRef());
context.startElement(new QName(Constants.URI_XOP_INCLUDE, Constants.ELEM_XOP_INCLUDE), attrs2);
context.endElement();
context.endElement();
} else {
boolean doTheDIME = false;
if(attachments.getSendType() == Attachments.SEND_TYPE_DIME)
doTheDIME = true;
attrs.addAttribute("", soapConstants.getAttrHref(), soapConstants.getAttrHref(),
"CDATA", doTheDIME ? attachmentPart.getContentId() : attachmentPart.getContentIdRef() );
context.startElement(name, attrs);
context.endElement(); //There is no data to so end the element.
}
| public org.w3c.dom.Element | writeSchema(java.lang.Class javaType, org.apache.axis.wsdl.fromJava.Types types)Return XML schema for the specified type, suitable for insertion into
the <types> element of a WSDL document, or underneath an
<element> or <attribute> declaration.
return null;
|
|