Package org.biojava.utils
Class FileAsList
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList
-
- org.biojava.utils.FileAsList
-
- All Implemented Interfaces:
java.lang.Iterable
,java.util.Collection
,java.util.List
,Commitable
public abstract class FileAsList extends java.util.AbstractList implements Commitable
FileAsList
creates a writableList
implementation backed by a random access file. There is a restriction on the record length that the string representation of that integer may not be longer than 4 bytes. This is because a fixed 4 byte leader is used to encode the record length in the file.- Author:
- Matthew Pocock, Keith James, Greg Cox
-
-
Constructor Summary
Constructors Constructor Description FileAsList(java.io.File mappedFile, boolean mutable)
Creates a newFileAsList
instance from an existing backing file.FileAsList(java.io.File mappedFile, int recordLength)
Creates a newFileAsList
and corresponding backing file.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
add(java.lang.Object o)
void
clear()
void
commit()
commit
commits pending changes.protected abstract void
generateRecord(byte[] buffer, java.lang.Object item)
java.lang.Object
get(int indx)
abstract java.util.Comparator
getComparator()
java.util.Iterator
iterator()
protected abstract java.lang.Object
parseRecord(byte[] buffer)
byte[]
rawGet(int indx)
rawGet
reads the record at the specified index as a raw byte array.void
rollback()
rollback
reverses pending changes to restore initial (or prior commit) state.java.lang.Object
set(int indx, java.lang.Object o)
This always returns null, not the previous object.int
size()
-
Methods inherited from class java.util.AbstractList
add, addAll, equals, hashCode, indexOf, lastIndexOf, listIterator, listIterator, remove, removeRange, subList
-
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
-
-
-
-
Constructor Detail
-
FileAsList
public FileAsList(java.io.File mappedFile, int recordLength) throws java.io.IOException
Creates a newFileAsList
and corresponding backing file.- Parameters:
mappedFile
- aFile
used to back the list. This file must not already exist.recordLength
- anint
byte record length.- Throws:
java.io.IOException
- if an error occurs.
-
FileAsList
public FileAsList(java.io.File mappedFile, boolean mutable) throws java.io.IOException
Creates a newFileAsList
instance from an existing backing file.- Parameters:
mappedFile
- aFile
used to back the list. This file must already exist.mutable
- true if this list should support edits, false otherwise- Throws:
java.io.IOException
- if an error occurs.
-
-
Method Detail
-
rawGet
public byte[] rawGet(int indx)
rawGet
reads the record at the specified index as a raw byte array.- Parameters:
indx
- anint
list index.- Returns:
- a
byte []
array containing the raw record data.
-
get
public java.lang.Object get(int indx)
- Specified by:
get
in interfacejava.util.List
- Specified by:
get
in classjava.util.AbstractList
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection
- Specified by:
size
in interfacejava.util.List
- Specified by:
size
in classjava.util.AbstractCollection
-
add
public boolean add(java.lang.Object o)
- Specified by:
add
in interfacejava.util.Collection
- Specified by:
add
in interfacejava.util.List
- Overrides:
add
in classjava.util.AbstractList
-
set
public java.lang.Object set(int indx, java.lang.Object o)
This always returns null, not the previous object.- Specified by:
set
in interfacejava.util.List
- Overrides:
set
in classjava.util.AbstractList
-
clear
public void clear()
- Specified by:
clear
in interfacejava.util.Collection
- Specified by:
clear
in interfacejava.util.List
- Overrides:
clear
in classjava.util.AbstractList
-
commit
public void commit()
Description copied from interface:Commitable
commit
commits pending changes.- Specified by:
commit
in interfaceCommitable
-
rollback
public void rollback()
Description copied from interface:Commitable
rollback
reverses pending changes to restore initial (or prior commit) state. This always succededs or raises an unchecked exception. If the rollback fails, you must raise an AssertionFailure.- Specified by:
rollback
in interfaceCommitable
-
parseRecord
protected abstract java.lang.Object parseRecord(byte[] buffer)
-
generateRecord
protected abstract void generateRecord(byte[] buffer, java.lang.Object item) throws java.io.IOException
- Throws:
java.io.IOException
-
getComparator
public abstract java.util.Comparator getComparator()
-
iterator
public java.util.Iterator iterator()
- Specified by:
iterator
in interfacejava.util.Collection
- Specified by:
iterator
in interfacejava.lang.Iterable
- Specified by:
iterator
in interfacejava.util.List
- Overrides:
iterator
in classjava.util.AbstractList
-
-