com.imagero.uio
Class UIOStreamBuilder

java.lang.Object
  extended bycom.imagero.uio.UIOStreamBuilder

public class UIOStreamBuilder
extends java.lang.Object

UIOStreamBuilder is a builder pattern implementation and replacement for RandomAccessFactory. Usual process looks like File f = ...; RandomAccessRO ro = new UIOStreamBuilder(f).setByteOrder(RandomAccess.LITTLE_ENDIAN).setBuffered(true).create(); or RandomAccess ra = (RandomAccess)new UIOStreamBuilder(f).setMode(UIOStreamBuilder.READ_WRITE).create(); Defaul values are: mode - UIOStreamBuilder.READ_ONLY byte order - RandomAccess.BIG_ENDIAN buffered - false (however some streams are always buffered)

See Also:
create(), setBuffered(boolean), setByteOrder(int), setMode(java.lang.String), setStart(long), setLength(long)

Field Summary
static java.lang.String READ_ONLY
           
static java.lang.String READ_WRITE
           
 
Constructor Summary
UIOStreamBuilder(Buffer[] bufferSource)
          always buffered
UIOStreamBuilder(BufferManager manager)
          always buffered
UIOStreamBuilder(byte[] byteSource)
           
UIOStreamBuilder(double[] doubleSource)
          always buffered
UIOStreamBuilder(java.io.File file)
           
UIOStreamBuilder(float[] floatSource)
          always buffered
UIOStreamBuilder(java.io.InputStream inputStreamSource)
          always buffered
UIOStreamBuilder(int[] intSource)
          always buffered
UIOStreamBuilder(long[] longSource)
          always buffered
UIOStreamBuilder(MutableBufferManager mutableBufferManager)
          always buffered
UIOStreamBuilder(java.io.OutputStream outputStreamSource)
          always buffered
UIOStreamBuilder(RandomAccess ra)
          always buffered
UIOStreamBuilder(java.io.RandomAccessFile rafSource)
           
UIOStreamBuilder(RandomAccessRO ro)
          always buffered
UIOStreamBuilder(short[] shortSource)
          always buffered
UIOStreamBuilder(java.lang.String filename)
           
UIOStreamBuilder(java.net.URL url)
          always buffered
 
Method Summary
 RandomAccessRO create()
          finally create desired stream
 UIOStreamBuilder setBuffered(boolean buffered)
          set if stream should be buffered or not (rather a hint because some streams are always buffered)
 UIOStreamBuilder setByteOrder(int byteOrder)
          set byte order (big endian or little endian)
 UIOStreamBuilder setLength(long length)
          set stream length
 UIOStreamBuilder setMode(java.lang.String mode)
          set mode (writeable or read only)
 UIOStreamBuilder setStart(long start)
          set start offset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

READ_ONLY

public static final java.lang.String READ_ONLY
See Also:
Constant Field Values

READ_WRITE

public static final java.lang.String READ_WRITE
See Also:
Constant Field Values
Constructor Detail

UIOStreamBuilder

public UIOStreamBuilder(java.lang.String filename)

UIOStreamBuilder

public UIOStreamBuilder(java.io.File file)

UIOStreamBuilder

public UIOStreamBuilder(java.io.RandomAccessFile rafSource)

UIOStreamBuilder

public UIOStreamBuilder(RandomAccess ra)
always buffered

Parameters:
ra -

UIOStreamBuilder

public UIOStreamBuilder(RandomAccessRO ro)
always buffered

Parameters:
ro -

UIOStreamBuilder

public UIOStreamBuilder(byte[] byteSource)

UIOStreamBuilder

public UIOStreamBuilder(short[] shortSource)
always buffered

Parameters:
shortSource -

UIOStreamBuilder

public UIOStreamBuilder(int[] intSource)
always buffered

Parameters:
intSource -

UIOStreamBuilder

public UIOStreamBuilder(long[] longSource)
always buffered

Parameters:
longSource -

UIOStreamBuilder

public UIOStreamBuilder(float[] floatSource)
always buffered

Parameters:
floatSource -

UIOStreamBuilder

public UIOStreamBuilder(double[] doubleSource)
always buffered

Parameters:
doubleSource -

UIOStreamBuilder

public UIOStreamBuilder(BufferManager manager)
always buffered

Parameters:
manager -

UIOStreamBuilder

public UIOStreamBuilder(MutableBufferManager mutableBufferManager)
always buffered

Parameters:
mutableBufferManager -

UIOStreamBuilder

public UIOStreamBuilder(Buffer[] bufferSource)
always buffered

Parameters:
bufferSource -

UIOStreamBuilder

public UIOStreamBuilder(java.net.URL url)
always buffered

Parameters:
url -

UIOStreamBuilder

public UIOStreamBuilder(java.io.InputStream inputStreamSource)
always buffered

Parameters:
inputStreamSource -

UIOStreamBuilder

public UIOStreamBuilder(java.io.OutputStream outputStreamSource)
always buffered

Parameters:
outputStreamSource -
Method Detail

setMode

public UIOStreamBuilder setMode(java.lang.String mode)
set mode (writeable or read only)

Parameters:
mode - READ_ONLY or READ_WRITE
Returns:
this

setByteOrder

public UIOStreamBuilder setByteOrder(int byteOrder)
set byte order (big endian or little endian)

Parameters:
byteOrder - LITTLE_ENDIAN or BIG_ENDIAN (default value - BIG_ENDIAN)
Returns:
this

setStart

public UIOStreamBuilder setStart(long start)
set start offset

Parameters:
start - start offset of stream (default value - 0L)
Returns:
this

setLength

public UIOStreamBuilder setLength(long length)
set stream length

Parameters:
length - stream length
Returns:
this

setBuffered

public UIOStreamBuilder setBuffered(boolean buffered)
set if stream should be buffered or not (rather a hint because some streams are always buffered)

Parameters:
buffered - true or false (default value - false)
Returns:
this

create

public RandomAccessRO create()
                      throws java.io.IOException
finally create desired stream

Returns:
RandomAccess (unbuffered, writeable), RandomAccessRO (unbuffered, read only), RandomAccessBuffer (buffered, writeable), RandomAccessBufferRO(buffered, read only) stream.
Throws:
java.io.IOException