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 = ...;
 RandomAccessIO ro = new UIOStreamBuilder(f).setByteOrder(RandomAccessIO.LITTLE_ENDIAN).setBuffered(true).create();
 or
 RandomAccessIO ra = (RandomAccessIO)new UIOStreamBuilder(f).setMode(UIOStreamBuilder.READ_WRITE).create();

 Defaul values are:
 mode - UIOStreamBuilder.READ_ONLY
 byte order - RandomAccessIO.BIG_ENDIAN
 buffered - false (however some streams are always buffered)

 

See Also:
create(), setBuffered(boolean), setByteOrder(int), setBufferSize(int), setCacheFile(java.io.File), setMaxBufferCount(int), setMode(java.lang.String), setStart(long), setLength(long)

Field Summary
static int DEFAULT_CHUNK_COUNT
           
static int DEFAULT_CHUNK_SIZE
           
static java.lang.String READ_ONLY
           
static java.lang.String READ_WRITE
           
 
Constructor Summary
UIOStreamBuilder(byte[] byteSource)
           
UIOStreamBuilder(byte[][] byteSource)
           
UIOStreamBuilder(char[] charSource)
           
UIOStreamBuilder(char[][] charSource)
           
UIOStreamBuilder(double[] doubleSource)
           
UIOStreamBuilder(double[][] doubleSource)
           
UIOStreamBuilder(java.io.File file)
           
UIOStreamBuilder(float[] floatSource)
           
UIOStreamBuilder(float[][] floatSource)
           
UIOStreamBuilder(java.io.InputStream in)
          always buffered
UIOStreamBuilder(int[] intSource)
           
UIOStreamBuilder(int[][] intSource)
           
UIOStreamBuilder(long[] longSource)
           
UIOStreamBuilder(long[][] longSource)
           
UIOStreamBuilder(java.io.OutputStream out)
          Always buffered.
UIOStreamBuilder(java.io.RandomAccessFile rafSource)
           
UIOStreamBuilder(RandomAccessInput ro)
           
UIOStreamBuilder(RandomAccessIO ra)
           
UIOStreamBuilder(short[] shortSource)
           
UIOStreamBuilder(short[][] shortSource)
           
UIOStreamBuilder(java.lang.String filename)
           
UIOStreamBuilder(java.net.URL url)
          always buffered
 
Method Summary
 RandomAccessInput create()
          finally create desired stream
 boolean isReadOnly()
           
 UIOStreamBuilder setBuffered(boolean buffered)
          set if stream should be buffered or not (rather a hint because some streams are always buffered)
 UIOStreamBuilder setBufferSize(int bufferSize)
          set size for memory chunks used by MemoryAccessManager - for unbuffered streams this parameter is ignored.
 UIOStreamBuilder setByteOrder(int byteOrder)
          set byte order (big endian or little endian)
 UIOStreamBuilder setCacheFile(java.io.File f)
          Set file which can be used to cache data (only for Streams)
 UIOStreamBuilder setLength(long length)
          set stream length
 UIOStreamBuilder setMaxBufferCount(int max)
          set maxBufferCount for MemoryAccessManager - for unbuffered streams this parameter is ignored.
 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

DEFAULT_CHUNK_SIZE

public static int DEFAULT_CHUNK_SIZE

DEFAULT_CHUNK_COUNT

public static int DEFAULT_CHUNK_COUNT
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(RandomAccessIO ra)

UIOStreamBuilder

public UIOStreamBuilder(RandomAccessInput ro)

UIOStreamBuilder

public UIOStreamBuilder(byte[] byteSource)

UIOStreamBuilder

public UIOStreamBuilder(byte[][] byteSource)

UIOStreamBuilder

public UIOStreamBuilder(short[] shortSource)

UIOStreamBuilder

public UIOStreamBuilder(short[][] shortSource)

UIOStreamBuilder

public UIOStreamBuilder(char[] charSource)

UIOStreamBuilder

public UIOStreamBuilder(char[][] charSource)

UIOStreamBuilder

public UIOStreamBuilder(int[] intSource)

UIOStreamBuilder

public UIOStreamBuilder(int[][] intSource)

UIOStreamBuilder

public UIOStreamBuilder(long[] longSource)

UIOStreamBuilder

public UIOStreamBuilder(long[][] longSource)

UIOStreamBuilder

public UIOStreamBuilder(float[] floatSource)

UIOStreamBuilder

public UIOStreamBuilder(float[][] floatSource)

UIOStreamBuilder

public UIOStreamBuilder(double[] doubleSource)

UIOStreamBuilder

public UIOStreamBuilder(double[][] doubleSource)

UIOStreamBuilder

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

Parameters:
url -

UIOStreamBuilder

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

Parameters:
in -

UIOStreamBuilder

public UIOStreamBuilder(java.io.OutputStream out)
Always buffered. Two things are very important: 1. closing RandomAccessOutput created by this method does not close OutputStream 2. To write data to OutputStream RandomAccessOutput must be closed or flushed.

Parameters:
out - OutputStream
Method Detail

isReadOnly

public boolean isReadOnly()

setMode

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

Parameters:
mode - READ_ONLY or READ_WRITE
Returns:
UIOStreamBuilder

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

setStart

public UIOStreamBuilder setStart(long start)
set start offset

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

setLength

public UIOStreamBuilder setLength(long length)
set stream length

Parameters:
length - stream length
Returns:
UIOStreamBuilder

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

setMaxBufferCount

public UIOStreamBuilder setMaxBufferCount(int max)
set maxBufferCount for MemoryAccessManager - for unbuffered streams this parameter is ignored.

Parameters:
max -
Returns:
UIOStreamBuilder

setBufferSize

public UIOStreamBuilder setBufferSize(int bufferSize)
set size for memory chunks used by MemoryAccessManager - for unbuffered streams this parameter is ignored.

Parameters:
bufferSize -
Returns:
UIOStreamBuilder

setCacheFile

public UIOStreamBuilder setCacheFile(java.io.File f)
Set file which can be used to cache data (only for Streams)

Parameters:
f - File
Returns:
UIOStreamBuilder

create

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

Returns:
RandomAccessIinput
Throws:
java.io.IOException