// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.core.filter.common;
/**
* Defines the different id tracker implementations available.
*
* @author Brett Henderson
*
*/
public enum IdTrackerType {
/**
* The BitSet implementation maintains an array of bits set to 0 or 1. This is the most compact
* storage representation for individual ids but is very wasteful when the ids are sparsely
* allocated because a bit is allocated for every id in the id range. This should be used if a
* large portion of the entire dataset must be stored.
*/
BitSet,
/**
* The IdList implementation maintains an array of selected ids. This use 32 bits per id but is
* more efficient when a smaller number of ids are being stored. For example, in a bounding box
* implementation this implementation will be more efficient if the bounding box contains less
* than approximately 1/32 of the entire dataset.
*/
IdList,
/**
* The dynamic implementation maintains an array of segments. Each segment manages a fixed range
* of ids. Each segment is created on demand. Each segment internally manages the id list with
* either one of the two other id list implementations depending on the number of ids to be
* managed.
*/
Dynamic
}