org.openstreetmap.osmosis.core.store
Class IndexStore<K,T extends IndexElement<K>>

java.lang.Object
  extended by org.openstreetmap.osmosis.core.store.IndexStore<K,T>
Type Parameters:
K - The index key type.
T - The index element type to be stored.
All Implemented Interfaces:
Completable, Releasable

public class IndexStore<K,T extends IndexElement<K>>
extends java.lang.Object
implements Completable

Writes data into an index file and sorts it if input data is unordered. The data must be fixed width to allow index values to be randomly accessed later.

Author:
Brett Henderson

Constructor Summary
IndexStore(java.lang.Class<T> elementType, java.util.Comparator<K> ordering, java.io.File indexFile)
          Creates a new instance.
IndexStore(java.lang.Class<T> elementType, java.util.Comparator<K> ordering, java.lang.String tempFilePrefix)
          Creates a new instance.
 
Method Summary
 void complete()
          Ensures that all information is fully persisted.
 IndexStoreReader<K,T> createReader()
          Creates a new reader capable of accessing the contents of this store.
 void release()
          Performs resource cleanup tasks such as closing files, or database connections.
 void write(T element)
          Writes the specified element to the index.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IndexStore

public IndexStore(java.lang.Class<T> elementType,
                  java.util.Comparator<K> ordering,
                  java.io.File indexFile)
Creates a new instance.

Parameters:
elementType - The type of index element to be stored in the index.
ordering - A comparator that sorts index elements desired index key ordering.
indexFile - The file to use for storing the index.

IndexStore

public IndexStore(java.lang.Class<T> elementType,
                  java.util.Comparator<K> ordering,
                  java.lang.String tempFilePrefix)
Creates a new instance.

Parameters:
elementType - The type of index element to be stored in the index.
ordering - A comparator that sorts index elements desired index key ordering.
tempFilePrefix - The prefix of the temporary file.
Method Detail

write

public void write(T element)
Writes the specified element to the index.

Parameters:
element - The index element which includes the identifier when stored.

createReader

public IndexStoreReader<K,T> createReader()
Creates a new reader capable of accessing the contents of this store. The reader must be explicitly released when no longer required. Readers must be released prior to this store.

Returns:
A store reader.

complete

public void complete()
Ensures that all information is fully persisted. This includes database commits, file buffer flushes, etc. Implementations must call complete on any nested Completable objects. Where the releasable method of a Releasable class should be called within a finally block, this method should typically be the final statement within the try block.

Specified by:
complete in interface Completable

release

public void release()
Performs resource cleanup tasks such as closing files, or database connections. This must be called after all processing is complete and may be called multiple times. Implementations must call release on any nested Releasable objects. It should be called within a finally block to ensure it is called in exception scenarios.

Specified by:
release in interface Releasable