Package org.forgerock.http.io
Class BranchingInputStream
- java.lang.Object
 - 
- java.io.InputStream
 - 
- org.forgerock.http.io.BranchingInputStream
 
 
 
- 
- All Implemented Interfaces:
 Closeable,AutoCloseable
- Direct Known Subclasses:
 FileBranchingStream
public abstract class BranchingInputStream extends InputStream
An input stream that can branch into separate input streams to perform divergent reads. 
- 
- 
Constructor Summary
Constructors Modifier Constructor Description protectedBranchingInputStream(BranchingInputStream parent)Initialise theBranchingInputStreamwith the specified parent. 
- 
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract BranchingInputStreambranch()Creates a new branch at this stream's current position.abstract voidclose()Closes this branching stream and all of the branches created from it.abstract BranchingInputStreamcopy()Creates a twin of this stream at this stream's current position.BranchingInputStreamparent()Returns the parent branching input stream from which this branch was created, ornullif this is the trunk.- 
Methods inherited from class java.io.InputStream
available, mark, markSupported, nullInputStream, read, read, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo 
 - 
 
 - 
 
- 
- 
Constructor Detail
- 
BranchingInputStream
protected BranchingInputStream(BranchingInputStream parent)
Initialise theBranchingInputStreamwith the specified parent.- Parameters:
 parent- The parent stream, or null if it is the trunk.
 
 - 
 
- 
Method Detail
- 
branch
public abstract BranchingInputStream branch() throws IOException
Creates a new branch at this stream's current position. The returned stream will have this stream as its parent.- Returns:
 - a new branching stream, in the same position as this branch.
 - Throws:
 IOException- if an I/O exception occurs.
 
- 
copy
public abstract BranchingInputStream copy() throws IOException
Creates a twin of this stream at this stream's current position. The returned stream will have the same parent as this stream.- Returns:
 - a new twin stream, in the same position as this branch.
 - Throws:
 IOException- if an I/O exception occurs.
 
- 
close
public abstract void close() throws IOExceptionCloses this branching stream and all of the branches created from it.- Specified by:
 closein interfaceAutoCloseable- Specified by:
 closein interfaceCloseable- Overrides:
 closein classInputStream- Throws:
 IOException- if an I/O exception occurs.
 
- 
parent
public BranchingInputStream parent()
Returns the parent branching input stream from which this branch was created, ornullif this is the trunk.- Returns:
 - the parent branching input stream from which this branch was
         created, or 
nullif this is the trunk. 
 
 - 
 
 -