## org.biojava.utils
Class FileAsList

    java.lang.Object
      java.util.AbstractCollection<E>
          java.util.AbstractList
              org.biojava.utils.FileAsList

All Implemented Interfaces:
  Iterable, Collection, List, Commitable

    public abstract class FileAsList

extends AbstractList
implements Commitable

`FileAsList` creates a writable `List` 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

Field Summary

Fields inherited from class java.util.AbstractList
`modCount`

Constructor Summary
`FileAsList(File mappedFile, boolean mutable)` Creates a new `FileAsList` instance from an existing backing file.
`FileAsList(File mappedFile, int recordLength)` Creates a new `FileAsList` and corresponding backing file.

Method Summary
`boolean` `add(Object o)`
`void` `clear()`
`void` `commit()` `commit` commits pending changes.
`protected abstract void` `generateRecord(byte[] buffer, Object item)`
`Object` `get(int indx)`
`abstract Comparator` `getComparator()`
`Iterator` `iterator()`
`protected abstract 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.
`Object` `set(int indx, 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`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface java.util.List
`addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray`

Constructor Detail

### FileAsList

    public FileAsList(File mappedFile,
                      int recordLength)
               throws IOException

  Creates a new `FileAsList` and corresponding backing file.

  Parameters:
    `mappedFile` - a `File` used to back the list. This file must not already exist.
    `recordLength` - an `int` byte record length.
  Throws:
    `IOException` - if an error occurs.

### FileAsList

    public FileAsList(File mappedFile,
                      boolean mutable)
               throws IOException

  Creates a new `FileAsList` instance from an existing backing file.

  Parameters:
    `mappedFile` - a `File` used to back the list. This file must already exist.
    `mutable` - true if this list should support edits, false otherwise
  Throws:
    `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` - an `int` list index.
  Returns:
    a `byte []` array containing the raw record data.

### get

    public Object get(int indx)

  Specified by:
    `get` in interface `List`
  Specified by:
    `get` in class `AbstractList`

### size

    public int size()

  Specified by:
    `size` in interface `Collection`
  Specified by:
    `size` in interface `List`
  Specified by:
    `size` in class `AbstractCollection`

### add

    public boolean add(Object o)

  Specified by:
    `add` in interface `Collection`
  Specified by:
    `add` in interface `List`
  Overrides:
    `add` in class `AbstractList`

### set

    public Object set(int indx,
                      Object o)

  This always returns null, not the previous object.

  Specified by:
    `set` in interface `List`
  Overrides:
    `set` in class `AbstractList`

### clear

    public void clear()

  Specified by:
    `clear` in interface `Collection`
  Specified by:
    `clear` in interface `List`
  Overrides:
    `clear` in class `AbstractList`

### commit

    public void commit()

  Description copied from interface: `Commitable`
  `commit` commits pending changes.

  Specified by:
    `commit` in interface `Commitable`

### 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 interface `Commitable`

### parseRecord

    protected abstract Object parseRecord(byte[] buffer)

### generateRecord

    protected abstract void generateRecord(byte[] buffer,
                                           Object item)
                                    throws IOException

  Throws:
    `IOException`

### getComparator

    public abstract Comparator getComparator()

### iterator

    public Iterator iterator()

  Specified by:
    `iterator` in interface `Iterable`
  Specified by:
    `iterator` in interface `Collection`
  Specified by:
    `iterator` in interface `List`
  Overrides:
    `iterator` in class `AbstractList`