## org.apache.axis.attachments
Class DimeDelimitedInputStream

    java.lang.Object
      |
      +--java.io.InputStream
            |
            +--java.io.FilterInputStream
                  |
                  +--org.apache.axis.attachments.DimeDelimitedInputStream

public class DimeDelimitedInputStream
extends java.io.FilterInputStream

This class takes the input stream and turns it multiple streams. DIME version 0 format

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  ---
     | VERSION |B|E|C| TYPE_T| OPT_T |         OPTIONS_LENGTH        |   A
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |          ID_LENGTH          |             TYPE_LENGTH         |   Always present 12 bytes
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   even on chunked data.
     |                          DATA_LENGTH                          |   V
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  ---
     |                                                               /
     /                       OPTIONS + PADDING                       /
     /                     (absent for version 0)                    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               /
     /                        ID + PADDING                           /
     /                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               /
     /                        TYPE + PADDING                         /
     /                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               /
     /                        DATA + PADDING                         /
     /                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Author:
  Rick Rineholt

Field Summary
`protected static org.apache.commons.logging.Log` `log`
`protected static int` `streamCount`
`protected java.io.IOException` `streamInError`
`protected int` `streamNo`

Fields inherited from class java.io.FilterInputStream
`in`

Method Summary
`protected int` `_read(byte[] b, int off, int len)`
`int` `available()`
`void` `close()` Closes the stream.
`protected void` `finalClose()`
`java.lang.String` `getContentId()` Get the id for this stream part.
`DimeTypeNameFormat` `getDimeTypeNameFormat()` Read from the boundary delimited stream.
`java.lang.String` `getType()` get type.
`void` `mark(int readlimit)` mark the stream.
`boolean` `markSupported()` markSupported return false;
`protected static int` `newStreamNo()`
`int` `read()` Read from the boundary delimited stream.
`int` `read(byte[] b)` Read from the delimited stream.
`int` `read(byte[] b, int off, int len)` Read from the DIME stream.
`void` `reset()` reset the stream.

Methods inherited from class java.io.FilterInputStream
`skip`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

    protected static org.apache.commons.logging.Log log

### streamNo

    protected int streamNo

### streamInError

    protected java.io.IOException streamInError

### streamCount

    protected static int streamCount

Method Detail

### newStreamNo

    protected static int newStreamNo()

### getContentId

    public java.lang.String getContentId()

  Get the id for this stream part.

  Returns:
    the id;

### getDimeTypeNameFormat

    public DimeTypeNameFormat getDimeTypeNameFormat()

  Read from the boundary delimited stream.

  Returns:
    the number of bytes read. -1 if endof stream.

### getType

    public java.lang.String getType()

  get type.

  Returns:
    the number of bytes read. -1 if endof stream.

### read

    public int read(byte[] b,
                    int off,
                    int len)
             throws java.io.IOException

  Read from the DIME stream.

  Overrides:
    `read` in class `java.io.FilterInputStream`
  Parameters:
    `b` - is the array to read into.
    `off` - is the offset
  Returns:
    the number of bytes read. -1 if endof stream.
    `java.io.IOException`

### _read

    protected int _read(byte[] b,
                        int off,
                        int len)
                 throws java.io.IOException

    `java.io.IOException`

### read

    public int read(byte[] b)
             throws java.io.IOException

  Read from the delimited stream.

  Overrides:
    `read` in class `java.io.FilterInputStream`
  Parameters:
    `b` - is the array to read into. Read as much as possible into the size of this array.
  Returns:
    the number of bytes read. -1 if endof stream.
    `java.io.IOException`

### read

    public int read()
             throws java.io.IOException

  Read from the boundary delimited stream.

  Overrides:
    `read` in class `java.io.FilterInputStream`
  Returns:
    The byte read, or -1 if endof stream.
    `java.io.IOException`

### close

    public void close()
               throws java.io.IOException

  Closes the stream.

  Overrides:
    `close` in class `java.io.FilterInputStream`
    `java.io.IOException`

### mark

    public void mark(int readlimit)

  mark the stream. This is not supported.

  Overrides:
    `mark` in class `java.io.FilterInputStream`

### reset

    public void reset()
               throws java.io.IOException

  reset the stream. This is not supported.

  Overrides:
    `reset` in class `java.io.FilterInputStream`
    `java.io.IOException`

### markSupported

    public boolean markSupported()

  markSupported return false;

  Overrides:
    `markSupported` in class `java.io.FilterInputStream`

### available

    public int available()
                  throws java.io.IOException

  Overrides:
    `available` in class `java.io.FilterInputStream`
    `java.io.IOException`

### finalClose

    protected void finalClose()
                       throws java.io.IOException

    `java.io.IOException`

Copyright © 2003 Apache Web Services Project. All Rights Reserved.