java.lang.Object
edu.internet2.middleware.grouperClientExt.org.apache.commons.httpclient.methods.multipart.Part
Direct Known Subclasses:
PartBase

public abstract class Part extends Object
Abstract class for one Part of a multipart post object.
Since:
2.0
  • Field Details

    • BOUNDARY

      protected static final String BOUNDARY
      The boundary
      See Also:
    • BOUNDARY_BYTES

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

      protected static final String CRLF
      Carriage return/linefeed
      See Also:
    • CRLF_BYTES

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

      protected static final String QUOTE
      Content dispostion characters
      See Also:
    • QUOTE_BYTES

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

      protected static final String EXTRA
      Extra characters
      See Also:
    • EXTRA_BYTES

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

      protected static final String CONTENT_DISPOSITION
      Content dispostion characters
      See Also:
    • CONTENT_DISPOSITION_BYTES

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

      protected static final String CONTENT_TYPE
      Content type header
      See Also:
    • CONTENT_TYPE_BYTES

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

      protected static final String CHARSET
      Content charset
      See Also:
    • 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:
    • CONTENT_TRANSFER_ENCODING_BYTES

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

    • Part

      public Part()
  • Method Details

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