Class ImportTableWriterFactoryBase

java.lang.Object
io.deephaven.importers.ImportTableWriterFactoryBase
All Implemented Interfaces:
ImportTableWriterFactory
Direct Known Subclasses:
DirectoryImportTableFactory, MultiPartitionImportTableWriterFactory, SinglePartitionImportTableFactory

public abstract class ImportTableWriterFactoryBase extends Object implements ImportTableWriterFactory
A base for table writer factories with common utility code to validate and prepare table destination directories, and create the table writers.
  • Field Details

    • namespace

      protected final String namespace
    • tableName

      protected final String tableName
    • tableDefinition

      protected final io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.TableDefinition tableDefinition
    • writableTableDefinition

      protected final io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.TableDefinition writableTableDefinition
    • outputMode

      protected final ImportOutputMode outputMode
  • Constructor Details

    • ImportTableWriterFactoryBase

      protected ImportTableWriterFactoryBase(String dbNamespace, String tableName, ImportOutputMode outputMode, @NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.TableDefinition tableDefinition)
  • Method Details

    • getTableDefinition

      public io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.TableDefinition getTableDefinition()
      Note this returns the full table definition including partitioning columns.
      Specified by:
      getTableDefinition in interface ImportTableWriterFactory
      Returns:
      the table definition.
    • getLocalAppendableTable

      @NotNull public @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.appendable.local.LocalAppendableTable getLocalAppendableTable(String columnPartitionValue, boolean forceAppend)
      The method validates the destination against the ImportOutputMode included for the CsvImport unless forceAppend is true. Creates a new LocalAppendableTable instance to return.
      Specified by:
      getLocalAppendableTable in interface ImportTableWriterFactory
      Parameters:
      columnPartitionValue - the column partition to use. Some implementations allow nulls.
      forceAppend - when true will use ImportOutputMode.APPEND when initializing the instance of LocalAppendableTable being returned. A value of false will use the ImportOutputMode provided as part of the import call
      Returns:
      A new LocalAppendableTable using the destination retrieved using the provided column partition value and resolved ImportOutputMode
    • getTableWriter

      public io.deephaven.shadow.enterprise.com.illumon.iris.binarystore.TableWriter getTableWriter(String columnPartitionValue, boolean forceAppend)
      Description copied from interface: ImportTableWriterFactory
      Get a TableWriter for the table and specified partition, optionally appending.
      Specified by:
      getTableWriter in interface ImportTableWriterFactory
      Parameters:
      columnPartitionValue - the column partition to use. Some implementations allow nulls.
      forceAppend - if the table should be appended or replaced.
      Returns:
      an appropriate TableWriter
    • getTableWriter

      protected io.deephaven.shadow.enterprise.com.illumon.iris.binarystore.TableWriter getTableWriter(File destinationDirectory, boolean forceAppend)