Class AbstractXOPType

java.lang.Object
org.apache.cxf.aegis.type.AegisType
org.apache.cxf.aegis.type.mtom.AbstractXOPType
Direct Known Subclasses:
ByteArrayType, DataHandlerType, DataSourceType

public abstract class AbstractXOPType extends AegisType
Base class for MtoM types.
  • Field Details

  • Constructor Details

    • AbstractXOPType

      public AbstractXOPType(boolean useXmimeBinaryType, String expectedContentTypes)
      Create an XOP type. This type will use xmime to publish and receive the content type via xmime:base64Binary if useXmimeBinaryType is true. If expectedContentTypes != null, then it will use xmime to advertise expected content types.
      Parameters:
      useXmimeBinaryType - whether to use xmime:base64Binary.
      expectedContentTypes - whether to public xmime:expectedContentTypes.
  • Method Details

    • readMtoM

      public Object readMtoM(MessageReader reader, Context context) throws DatabindingException
      This is called from base64Type when it recognizes an XOP attachment.
      Parameters:
      reader -
      context -
      Returns:
      Throws:
      DatabindingException
    • readObject

      public Object readObject(MessageReader reader, Context context) throws DatabindingException
      This defers to the plain base64 type, which calls back into here above for XOP. Read in the XML fragment and create an object.
      Specified by:
      readObject in class AegisType
      Returns:
      Throws:
      DatabindingException
    • readAttachment

      protected abstract Object readAttachment(org.apache.cxf.message.Attachment att, Context context) throws IOException
      Throws:
      IOException
    • writeObject

      public void writeObject(Object object, MessageWriter writer, Context context) throws DatabindingException
      Description copied from class: AegisType
      Writes the object to the MessageWriter.
      Specified by:
      writeObject in class AegisType
      Throws:
      DatabindingException
    • createAttachment

      protected abstract org.apache.cxf.message.Attachment createAttachment(Object object, String id)
    • getContentType

      protected abstract String getContentType(Object object, Context context)
    • wrapBytes

      protected abstract Object wrapBytes(byte[] bareBytes, String contentType)
      If one of these types arrives unoptimized, we need to convert it to the desired return type.
      Parameters:
      bareBytes - the bytes pulled out of the base64.
      contentType - when we support xmime:contentType, this will be passed along.
      Returns:
    • getBytes

      protected abstract byte[] getBytes(Object object)
      if MtoM is not enabled, we need bytes to turn into base64.
      Returns:
    • addToSchemaElement

      public void addToSchemaElement(org.apache.ws.commons.schema.XmlSchemaElement schemaElement)
      Description copied from class: AegisType
      If the type object merely wants to contribute attributes to the xsd:element element, it can implement this.
      Overrides:
      addToSchemaElement in class AegisType
    • usesXmime

      public boolean usesXmime()
      Overrides:
      usesXmime in class AegisType