Package org.apfloat.internal
Class FloatDiskDataStorage
java.lang.Object
org.apfloat.spi.DataStorage
org.apfloat.internal.DiskDataStorage
org.apfloat.internal.FloatDiskDataStorage
- All Implemented Interfaces:
Serializable
Disk-based data storage for the
float
element type.- Version:
- 1.8.0
- Author:
- Mikko Tommila
- See Also:
-
Nested Class Summary
Nested classes/interfaces 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
ConstructorsModifierConstructorDescriptionDefault constructor.protected
FloatDiskDataStorage
(FloatDiskDataStorage floatDiskDataStorage, long offset, long length) Subsequence constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected ArrayAccess
createArrayAccess
(int mode, int startColumn, int columns, int rows) Create an empty ArrayAccess.protected ArrayAccess
createTransposedArrayAccess
(int mode, int startColumn, int columns, int rows) Create an empty transposed ArrayAccess.protected int
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 when it is treated as a linear block.protected DataStorage
implSubsequence
(long offset, long length) Implementation of getting a subsequence of this data storage.iterator
(int mode, long startPosition, long endPosition) Constructs a new iterator.Methods inherited from class org.apfloat.internal.DiskDataStorage
getBlockSize, getFileChannel, getFilename, implCopyFrom, implGetArray, implGetSize, implGetTransposedArray, implSetSize, isCached, setArray, setTransposedArray, transferFrom, transferTo
Methods inherited from class org.apfloat.spi.DataStorage
copyFrom, copyFrom, getArray, getArray, getOffset, getSize, getTransposedArray, isReadOnly, isSubsequenced, setReadOnly, setSize, subsequence
-
Constructor Details
-
FloatDiskDataStorage
Default constructor.- Throws:
ApfloatRuntimeException
-
FloatDiskDataStorage
Subsequence constructor.- Parameters:
floatDiskDataStorage
- The originating data storage.offset
- The subsequence starting position.length
- The subsequence length.
-
-
Method Details
-
implSubsequence
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 classDataStorage
- 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 when it is treated as a linear block. The validity of the arguments of this method do not need to be checked.- Specified by:
implGetArray
in classDataStorage
- 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.- Returns:
- The array access.
- Throws:
ApfloatRuntimeException
-
createArrayAccess
Description copied from class:DiskDataStorage
Create an empty ArrayAccess.- Specified by:
createArrayAccess
in classDiskDataStorage
- Parameters:
mode
- Whether the array is prepared for reading, writing or both. The value should beDataStorage.READ
,DataStorage.WRITE
or a combination of these.startColumn
- The starting column where data is stored.columns
- The number of columns of data.rows
- The number of rows of data.- Returns:
- Access to an empty array of the specified size and position.
-
createTransposedArrayAccess
Description copied from class:DiskDataStorage
Create an empty transposed ArrayAccess.- Specified by:
createTransposedArrayAccess
in classDiskDataStorage
- Parameters:
mode
- Whether the array is prepared for reading, writing or both. The value should beDataStorage.READ
,DataStorage.WRITE
or a combination of these.startColumn
- The starting column where data is stored.columns
- The number of columns of data.rows
- The number of rows of data.- Returns:
- Access to an empty array of the specified size and position.
-
iterator
public DataStorage.Iterator iterator(int mode, long startPosition, long endPosition) throws IllegalArgumentException, IllegalStateException, ApfloatRuntimeException Description copied from class:DataStorage
Constructs a new iterator. Elements can be iterated either in forward or in reverse order, depending on ifstartPosition
is less than or greater thanendPosition
, correspondingly.- Specified by:
iterator
in classDataStorage
- 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 isstartPosition - 1
.endPosition
- End position of iterator in the data set. For forward access, the last accessible element in the iterator isendPosition - 1
.- Returns:
- An iterator.
- Throws:
IllegalArgumentException
- If the requested area is out of bounds of the data storage.IllegalStateException
- If write access is requested for a read-only data storage.ApfloatRuntimeException
-
getUnitSize
protected int getUnitSize()Description copied from class:DiskDataStorage
Size of the element type, in bytes.- Specified by:
getUnitSize
in classDiskDataStorage
- Returns:
- Size of the element type, in bytes.
-