Class Part

    • Field Detail

      • BOUNDARY_BYTES

        protected static final byte[] BOUNDARY_BYTES
        Deprecated.
        The boundary as a byte array.
      • CRLF_BYTES

        protected static final byte[] CRLF_BYTES
        Carriage return/linefeed as a byte array
      • QUOTE_BYTES

        protected static final byte[] QUOTE_BYTES
        Content dispostion as a byte array
      • EXTRA_BYTES

        protected static final byte[] EXTRA_BYTES
        Extra characters as a byte array
      • CONTENT_DISPOSITION_BYTES

        protected static final byte[] CONTENT_DISPOSITION_BYTES
        Content dispostion as a byte array
      • CONTENT_TYPE_BYTES

        protected static final byte[] CONTENT_TYPE_BYTES
        Content type header as a byte array
      • CHARSET_BYTES

        protected static final byte[] CHARSET_BYTES
        Content charset as a byte array
      • CONTENT_TRANSFER_ENCODING

        protected static final String CONTENT_TRANSFER_ENCODING
        Content type header
        See Also:
        Constant Field Values
      • CONTENT_TRANSFER_ENCODING_BYTES

        protected static final byte[] CONTENT_TRANSFER_ENCODING_BYTES
        Content type header as a byte array
    • Constructor Detail

      • Part

        public Part()
    • Method Detail

      • getBoundary

        public static String getBoundary()
        Deprecated.
        uses a constant string. Rather use getPartBoundary()
        Return the boundary string.
        Returns:
        the boundary string
      • getName

        public abstract String getName()
        Return the name of this part.
        Returns:
        The name.
      • getContentType

        public abstract String getContentType()
        Returns the content type of this part.
        Returns:
        the content type, or null to exclude the content type header
      • getCharSet

        public abstract String getCharSet()
        Return the character encoding of this part.
        Returns:
        the character encoding, or null to exclude the character encoding header
      • getTransferEncoding

        public abstract String getTransferEncoding()
        Return the transfer encoding of this part.
        Returns:
        the transfer encoding, or null to exclude the transfer encoding header
      • getPartBoundary

        protected byte[] getPartBoundary()
        Gets the part boundary to be used.
        Returns:
        the part boundary as an array of bytes.
        Since:
        3.0
      • isRepeatable

        public boolean isRepeatable()
        Tests if this part can be sent more than once.
        Returns:
        true if sendData(OutputStream) can be successfully called more than once.
        Since:
        3.0
      • sendStart

        protected void sendStart​(OutputStream out)
                          throws IOException
        Write the start to the specified output stream
        Parameters:
        out - The output stream
        Throws:
        IOException - If an IO problem occurs.
      • sendDispositionHeader

        protected void sendDispositionHeader​(OutputStream out)
                                      throws IOException
        Write the content disposition header to the specified output stream
        Parameters:
        out - The output stream
        Throws:
        IOException - If an IO problem occurs.
      • sendContentTypeHeader

        protected void sendContentTypeHeader​(OutputStream out)
                                      throws IOException
        Write the content type header to the specified output stream
        Parameters:
        out - The output stream
        Throws:
        IOException - If an IO problem occurs.
      • sendTransferEncodingHeader

        protected void sendTransferEncodingHeader​(OutputStream out)
                                           throws IOException
        Write the content transfer encoding header to the specified output stream
        Parameters:
        out - The output stream
        Throws:
        IOException - If an IO problem occurs.
      • sendEndOfHeader

        protected void sendEndOfHeader​(OutputStream out)
                                throws IOException
        Write the end of the header to the output stream
        Parameters:
        out - The output stream
        Throws:
        IOException - If an IO problem occurs.
      • sendData

        protected abstract void sendData​(OutputStream out)
                                  throws IOException
        Write the data to the specified output stream
        Parameters:
        out - The output stream
        Throws:
        IOException - If an IO problem occurs.
      • lengthOfData

        protected abstract long lengthOfData()
                                      throws IOException
        Return the length of the main content
        Returns:
        long The length.
        Throws:
        IOException - If an IO problem occurs
      • sendEnd

        protected void sendEnd​(OutputStream out)
                        throws IOException
        Write the end data to the output stream.
        Parameters:
        out - The output stream
        Throws:
        IOException - If an IO problem occurs.
      • send

        public void send​(OutputStream out)
                  throws IOException
        Write all the data to the output stream. If you override this method make sure to override #length() as well
        Parameters:
        out - The output stream
        Throws:
        IOException - If an IO problem occurs.
      • length

        public long length()
                    throws IOException
        Return the full length of all the data. If you override this method make sure to override #send(OutputStream) as well
        Returns:
        long The length.
        Throws:
        IOException - If an IO problem occurs
      • toString

        public String toString()
        Return a string representation of this object.
        Overrides:
        toString in class Object
        Returns:
        A string representation of this object.
        See Also:
        Object.toString()
      • sendParts

        public static void sendParts​(OutputStream out,
                                     Part[] parts)
                              throws IOException
        Write all parts and the last boundary to the specified output stream.
        Parameters:
        out - The stream to write to.
        parts - The parts to write.
        Throws:
        IOException - If an I/O error occurs while writing the parts.
      • sendParts

        public static void sendParts​(OutputStream out,
                                     Part[] parts,
                                     byte[] partBoundary)
                              throws IOException
        Write all parts and the last boundary to the specified output stream.
        Parameters:
        out - The stream to write to.
        parts - The parts to write.
        partBoundary - The ASCII bytes to use as the part boundary.
        Throws:
        IOException - If an I/O error occurs while writing the parts.
        Since:
        3.0
      • getLengthOfParts

        public static long getLengthOfParts​(Part[] parts)
                                     throws IOException
        Return the total sum of all parts and that of the last boundary
        Parameters:
        parts - The parts.
        Returns:
        The total length
        Throws:
        IOException - If an I/O error occurs while writing the parts.
      • getLengthOfParts

        public static long getLengthOfParts​(Part[] parts,
                                            byte[] partBoundary)
                                     throws IOException
        Gets the length of the multipart message including the given parts.
        Parameters:
        parts - The parts.
        partBoundary - The ASCII bytes to use as the part boundary.
        Returns:
        The total length
        Throws:
        IOException - If an I/O error occurs while writing the parts.
        Since:
        3.0