Class SingleBody

  • All Implemented Interfaces:
    Body, Disposable
    Direct Known Subclasses:
    BinaryBody, TextBody

    public abstract class SingleBody
    extends Object
    implements Body
    Abstract implementation of a single message body; that is, a body that does not contain (directly or indirectly) any other child bodies. It also provides the parent functionality required by bodies.
    • Constructor Detail

      • SingleBody

        protected SingleBody()
        Sole constructor.
    • Method Detail

      • getParent

        public Entity getParent()
        Description copied from interface: Body
        Gets the parent of this body.
        Specified by:
        getParent in interface Body
        Returns:
        the parent.
        See Also:
        Body.getParent()
      • getInputStream

        public abstract InputStream getInputStream()
                                            throws IOException
        Gets a InputStream which reads the bytes of the body.
        Returns:
        the stream, transfer decoded
        Throws:
        IOException - on I/O errors.
      • writeTo

        public void writeTo​(OutputStream out)
                     throws IOException
        Writes this single body to the given stream. The default implementation copies the input stream obtained by getInputStream() to the specified output stream. May be overwritten by a subclass to improve performance.
        Parameters:
        out - the stream to write to.
        Throws:
        IOException - in case of an I/O error
      • copy

        public SingleBody copy()
        Returns a copy of this SingleBody (optional operation).

        The general contract of this method is as follows:

        • Invoking getParent() on the copy returns null. That means that the copy is detached from the parent entity of this SingleBody. The copy may get attached to a different entity later on.
        • The underlying content does not have to be copied. Instead it may be shared between multiple copies of a SingleBody.
        • If the underlying content is shared by multiple copies the implementation has to make sure that the content gets deleted when the last copy gets disposed of (and not before that).

        This implementation always throws an UnsupportedOperationException.

        Returns:
        a copy of this SingleBody.
        Throws:
        UnsupportedOperationException - if the copy operation is not supported by this single body.
      • dispose

        public void dispose()
        Subclasses should override this method if they have allocated resources that need to be freed explicitly (e.g. cannot be simply reclaimed by the garbage collector). The default implementation of this method does nothing.
        Specified by:
        dispose in interface Disposable
        See Also:
        Disposable.dispose()