Interface DimensionHandler<EncodedType extends Comparable<EncodedType>,​EncodedKeyComponentType,​ActualType extends Comparable<ActualType>>

  • Type Parameters:
    EncodedType - class of a single encoded value
    EncodedKeyComponentType - A row key contains a component for each dimension, this param specifies the class of this dimension's key component. A column type that supports multivalue rows should use an array type (Strings would use int[]). Column types without multivalue row support should use single objects (e.g., Long, Float).
    ActualType - class of a single actual value
    All Known Implementing Classes:
    DoubleDimensionHandler, FloatDimensionHandler, LongDimensionHandler, NestedCommonFormatColumnHandler, NestedDataColumnHandlerV4, StringDimensionHandler

    public interface DimensionHandler<EncodedType extends Comparable<EncodedType>,​EncodedKeyComponentType,​ActualType extends Comparable<ActualType>>
    Processing related interface A DimensionHandler is an object that encapsulates indexing, column merging/building, and querying operations for a given dimension type (e.g., dict-encoded String, Long). These operations are handled by sub-objects created through a DimensionHandler's methods: DimensionIndexer, DimensionMerger, and DimensionColumnReader, respectively. Each DimensionHandler object is associated with a single dimension. This interface allows type-specific behavior column logic, such as choice of indexing structures and disk formats. to be contained within a type-specific set of handler objects, simplifying processing classes such as IncrementalIndex and IndexMerger and allowing for abstracted development of additional dimension types. A DimensionHandler is a stateless object, and thus thread-safe; its methods should be pure functions. The EncodedType and ActualType are Comparable because columns used as dimensions must have sortable values.