org.apfloat.internal
Class IntDiskDataStorage

java.lang.Object
  extended byorg.apfloat.spi.DataStorage
      extended byorg.apfloat.internal.DiskDataStorage
          extended byorg.apfloat.internal.IntDiskDataStorage
All Implemented Interfaces:
java.io.Serializable

public final class IntDiskDataStorage
extends DiskDataStorage

Disk-based data storage for the int element type.

Version:
1.0.1
Author:
Mikko Tommila
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class org.apfloat.spi.DataStorage
DataStorage.AbstractIterator, DataStorage.Iterator
 
Field Summary
 
Fields inherited from class org.apfloat.spi.DataStorage
READ, READ_WRITE, WRITE
 
Constructor Summary
  IntDiskDataStorage()
          Default constructor.
protected IntDiskDataStorage(IntDiskDataStorage intDiskDataStorage, long offset, long length)
          Subsequence constructor.
 
Method Summary
protected  int getUnitSize()
          Size of the element type, in bytes.
protected  ArrayAccess implGetArray(int mode, long offset, int length)
          Gets an array access to the data of this data storage.
protected  ArrayAccess implGetTransposedArray(int mode, int startColumn, int columns, int rows)
          Maps a transposed block of data to a memory array.
protected  DataStorage implSubsequence(long offset, long length)
          Implementation of getting a subsequence of this data storage.
 DataStorage.Iterator iterator(int mode, long startPosition, long endPosition)
          Constructs a new iterator.
 
Methods inherited from class org.apfloat.internal.DiskDataStorage
getBlockSize, getFileChannel, getFilename, implCopyFrom, implGetSize, implSetSize, transferFrom, transferTo
 
Methods inherited from class org.apfloat.spi.DataStorage
copyFrom, copyFrom, getArray, getOffset, getSize, getTransposedArray, isReadOnly, isSubsequenced, setReadOnly, setSize, subsequence
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IntDiskDataStorage

public IntDiskDataStorage()
                   throws ApfloatRuntimeException
Default constructor.


IntDiskDataStorage

protected IntDiskDataStorage(IntDiskDataStorage intDiskDataStorage,
                             long offset,
                             long length)
Subsequence constructor.

Parameters:
intDiskDataStorage - The originating data storage.
offset - The subsequence starting position.
length - The subsequence length.
Method Detail

implSubsequence

protected DataStorage implSubsequence(long offset,
                                      long length)
                               throws ApfloatRuntimeException
Description copied from class: DataStorage
Implementation of getting a subsequence of this data storage. The validity of the arguments of this method do not need to be checked.

Specified by:
implSubsequence in class DataStorage
Parameters:
offset - The subsequence starting position.
length - The subsequence length.
Returns:
Data storage that represents the specified part of this data storage.
Throws:
ApfloatRuntimeException

implGetArray

protected ArrayAccess implGetArray(int mode,
                                   long offset,
                                   int length)
                            throws ApfloatRuntimeException
Description copied from class: DataStorage
Gets an array access to the data of this data storage. The validity of the arguments of this method do not need to be checked.

Specified by:
implGetArray in class DataStorage
Parameters:
mode - Access mode for the array access: DataStorage.READ, DataStorage.WRITE or both.
offset - Starting position of the array access in the data storage.
length - Number of accessible elements in the array access.
Throws:
ApfloatRuntimeException

implGetTransposedArray

protected ArrayAccess implGetTransposedArray(int mode,
                                             int startColumn,
                                             int columns,
                                             int rows)
                                      throws ApfloatRuntimeException
Description copied from class: DataStorage
Maps a transposed block of data to a memory array. The validity of the arguments of this method do not need to be checked.

Specified by:
implGetTransposedArray in class DataStorage
Parameters:
mode - Whether the array is prepared for reading, writing or both. The value should be DataStorage.READ, DataStorage.WRITE or a combination of these.
startColumn - The starting column where data is read.
columns - The number of columns of data to read.
rows - The number of rows of data to read. This should be equivalent to n1, number of rows in the matrix.
Returns:
Access to an array of size columns x rows containing the transposed data.
Throws:
ApfloatRuntimeException

iterator

public DataStorage.Iterator iterator(int mode,
                                     long startPosition,
                                     long endPosition)
                              throws java.lang.IllegalArgumentException,
                                     java.lang.IllegalStateException,
                                     ApfloatRuntimeException
Description copied from class: DataStorage
Constructs a new iterator. Elements can be iterated either in forward or in reverse order, depending on if startPosition is less than or greater than endPosition, correspondingly.

Specified by:
iterator in class DataStorage
Parameters:
mode - Access mode for iterator: DataStorage.READ, DataStorage.WRITE or both.
startPosition - Starting position of iterator in the data set. For reverse access, the first element in the iterator is startPosition - 1.
endPosition - End position of iterator in the data set. For forward access, the last accessible element in the iterator is endPosition - 1.
Throws:
java.lang.IllegalStateException - If write access is requested for a read-only data storage.
java.lang.IllegalArgumentException - If the requested area is out of bounds of the data storage.
ApfloatRuntimeException

getUnitSize

protected int getUnitSize()
Description copied from class: DiskDataStorage
Size of the element type, in bytes.

Specified by:
getUnitSize in class DiskDataStorage
Returns:
Size of the element type, in bytes.