Class RegionedColumnSourceObjectWithDictionary<T,D>

All Implemented Interfaces:
LongSizedDataStructure, ChunkSource<Attributes.Values>, ChunkSource.WithPrev<Attributes.Values>, DefaultChunkSource<Attributes.Values>, DefaultChunkSource.SupportsContiguousGet<Attributes.Values>, DefaultChunkSource.WithPrev<Attributes.Values>, FillContextMaker, GetContextMaker, PageStore<Attributes.Values,Attributes.Values,ColumnRegionObject<T,Attributes.Values>>, PagingChunkSource<Attributes.Values>, ColumnSource<T>, ColumnSourceGetDefaults.ForObject<T>, ElementSource<T>, ImmutableColumnSource<T>, MakeRegion<Attributes.Values,ColumnRegionObject<T,Attributes.Values>>, RegionedColumnSource<T>, RegionedPageStore<Attributes.Values,Attributes.Values,ColumnRegionObject<T,Attributes.Values>>, SymbolTableSource<T>, Releasable, SizedColumnSource<T>, TupleExporter<T>, TupleSource<T>, Serializable

public class RegionedColumnSourceObjectWithDictionary<T,D> extends RegionedColumnSourceObject.AsValues<T,D> implements ColumnSourceGetDefaults.ForObject<T>, SymbolTableSource<T>
See Also:
  • Constructor Details

    • RegionedColumnSourceObjectWithDictionary

      public RegionedColumnSourceObjectWithDictionary(@NotNull Class<T> dataType, @NotNull ObjectDecoder<D> decoder)
  • Method Details

    • allowsReinterpret

      public <ALTERNATE_DATA_TYPE> boolean allowsReinterpret(@NotNull Class<ALTERNATE_DATA_TYPE> alternateDataType)
      Description copied from interface: ColumnSource
      Test if a reinterpret call will succeed.
      Specified by:
      allowsReinterpret in interface ColumnSource<T>
      Overrides:
      allowsReinterpret in class AbstractColumnSource<T>
      Type Parameters:
      ALTERNATE_DATA_TYPE - the dataType to inquire about
      Parameters:
      alternateDataType - The alternative type to consider
      Returns:
      If a reinterpret on this column source with the supplied alternateDataType will succeed.
    • doReinterpret

      protected <ALTERNATE_DATA_TYPE> ColumnSource<ALTERNATE_DATA_TYPE> doReinterpret(@NotNull Class<ALTERNATE_DATA_TYPE> alternateDataType)
      Description copied from class: AbstractColumnSource
      Supply allowed reinterpret results. The default implementation handles the most common case to avoid code duplication.
      Overrides:
      doReinterpret in class AbstractColumnSource<T>
      Type Parameters:
      ALTERNATE_DATA_TYPE - the dataType to reinterpret to
      Parameters:
      alternateDataType - The alternate data type
      Returns:
      The resulting ColumnSource
    • hasSymbolTable

      public boolean hasSymbolTable(@NotNull ReadOnlyIndex sourceIndex)
      Specified by:
      hasSymbolTable in interface SymbolTableSource<T>
      Parameters:
      sourceIndex - The Index whose keys must be mappable
      Returns:
      Whether this SymbolTableSource can provide a symbol table that covers all keys in sourceIndex.
    • asDictionary

      public RegionedColumnSource<T> asDictionary()
    • getStaticSymbolTable

      public QueryTable getStaticSymbolTable(@NotNull ReadOnlyIndex sourceIndex, boolean useLookupCaching)
      Description copied from interface: SymbolTableSource

      Get a static Table view of this SymbolTableSource's symbol table, providing a many:1 or 1:1 mapping of unique long identifiers to the symbol values in this source.

      Specified by:
      getStaticSymbolTable in interface SymbolTableSource<T>
      Parameters:
      sourceIndex - The Index whose keys must be mappable via the result Table's identifier column
      useLookupCaching - Whether symbol lookups performed to generate the symbol table should apply caching
      Returns:
      The symbol table
    • getSymbolTable

      public final Table getSymbolTable(@NotNull QueryTable sourceTable, boolean useLookupCaching)
      Description copied from interface: SymbolTableSource

      Get a Table view of this SymbolTableSource's symbol table, providing a many:1 or 1:1 mapping of unique long identifiers to the symbol values in this source.

      The result will be refreshing if table is a refreshing DynamicTable.

      Specified by:
      getSymbolTable in interface SymbolTableSource<T>
      Parameters:
      sourceTable - The QueryTable whose Index keys must be mappable via the result Table's identifier column
      useLookupCaching - Whether symbol lookups performed to generate the symbol table should apply caching
      Returns:
      The symbol table
    • addRegion

      @OverridingMethodsMustInvokeSuper public int addRegion(@NotNull com.illumon.dataobjects.ColumnDefinition<?> columnDefinition, @NotNull ColumnLocation columnLocation, @NotNull SourceTableColumnInstructions instructions)
      Description copied from interface: RegionedColumnSource
      Add a region to this regioned column source. Elements in this region are ordered after elements in other regions added previously.
      Specified by:
      addRegion in interface RegionedColumnSource<DATA_TYPE>
      Parameters:
      columnDefinition - The column definition for this column source (potentially varies by region)
      columnLocation - The column location for the region being added
      Returns:
      The index assigned to the added region
    • getRegionCount

      public final int getRegionCount()
      Description copied from interface: RegionedPageStore
      Get the number of regions.
      Specified by:
      getRegionCount in interface RegionedPageStore<DATA_TYPE,ATTR extends Attributes.Values,REGION_TYPE extends ColumnRegion<ATTR>>
      Returns:
      The number of regions that have been added
    • getRegion

      public ColumnRegionObject<T,Attributes.Values> getRegion(int regionIndex)
      Description copied from interface: RegionedPageStore
      Map from a region index to its corresponding region.
      Specified by:
      getRegion in interface RegionedPageStore<DATA_TYPE,ATTR extends Attributes.Values,REGION_TYPE extends ColumnRegion<ATTR>>
      Parameters:
      regionIndex - The region index
      Returns:
      The region for the supplied region index
    • releaseCachedResources

      @OverridingMethodsMustInvokeSuper public void releaseCachedResources()
      Description copied from interface: ColumnSource
      Release any resources held for caching purposes. Implementations need not guarantee that concurrent accesses are correct, as the purpose of this method is to ensure cleanup for column sources that will no longer be used.
      Specified by:
      releaseCachedResources in interface ColumnSource<DATA_TYPE>
      Specified by:
      releaseCachedResources in interface Releasable
    • getNullRegion

      @NotNull public final ColumnRegionObject<T,Attributes.Values> getNullRegion()