Class SingleBody

java.lang.Object
org.apache.james.mime4j.dom.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.
  • Field Details

    • parent

      private Entity parent
  • Constructor Details

    • SingleBody

      protected SingleBody()
      Sole constructor.
  • Method Details

    • 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:
    • setParent

      public void setParent(Entity parent)
      Description copied from interface: Body
      Sets the parent of this body.
      Specified by:
      setParent in interface Body
      Parameters:
      parent - the parent.
      See Also:
    • 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
    • size

      public long size() throws IOException
      Throws:
      IOException
    • 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: