Class V2Logger

java.lang.Object
io.deephaven.enterprise.schema.internal.V2Logger

@Immutable public abstract class V2Logger extends Object
Encapsulates the schema information specific to a V2Logger.
  • Constructor Details

    • V2Logger

      public V2Logger()
  • Method Details

    • namespace

      public abstract String namespace()
      The namespace.
      Returns:
      the namespace
    • tableName

      public abstract String tableName()
      The table name.
      Returns:
      the table name
    • getColumns

      public abstract Map<String,V2LoggerColumn> getColumns()
      Retrieve the map of column names to V2LoggerColumn objects that define how this logger operates.
      Returns:
      a map of column names to column information
    • getColumn

      @NotNull public final V2LoggerColumn getColumn(String name)
      Retrieve the V2LoggerColumn object for the named column.
      Parameters:
      name - the name of the column
      Returns:
      the V2LoggerColumn information, or null if not present
    • generateLogMethod

      @Default public boolean generateLogMethod()
      Returns:
      should this logger include a "log" method and the necessary writer. If false, only buffer preparation methods are available.
    • logFormat

      public abstract int logFormat()
      Returns:
      the application version (log format) for the binary logs generated by this logger
    • loggerClass

      public abstract Optional<String> loggerClass()
      Returns:
      the full classname (including package) of this logger?
    • loggerInterface

      public abstract Optional<String> loggerInterface()
      Returns:
      the full classname (including package) of an optional interface implemented by this logger.
    • generateLoggerInfo

      @Default public boolean generateLoggerInfo()
      By default, is true.
      Returns:
      include LoggerInfo support
    • includeRowFlags

      @Default public boolean includeRowFlags()
      By default, is false.
      Returns:
      should the log and row population methods include the row flags byte?
    • columnPartitionArgument

      public abstract Optional<String> columnPartitionArgument()
      Returns:
      an argument name for dynamic partitions. If not specified, then the system is responsible for determining the partition to use.
    • timePartitionColumn

      public abstract Optional<String> timePartitionColumn()
      Returns:
      a temporal column that should be used to calculate the partition column.
    • objectInputTypes

      public abstract Map<String,V2ObjectInput> objectInputTypes()
      Returns:
      the map of the log function ObjectInputs (for POJOs) parameter names to type names.
    • threadSafe

      @Default public boolean threadSafe()
      Should this logger generate thread safe code. By default, is true.

      If you use codecs, this results in a ThreadLocal for each column codec. If the logger is not marked thread safe, then a single codec is used without the overhead of a thread local variable.

      Note, that even if a logger is thread safe, the writer may not be. If you include flags on logged rows, there is no synchronization between transactions and you must externally synchronize.

      Returns:
      if this logger is internally thread safe
    • listenerOnly

      @Default public boolean listenerOnly()
      Should this logger definition only be used for generating a listener in the DIS. By default, is false.

      This is useful for maintaining old log formats, but not continuing to generate the logger.

      Returns:
      true if this is a definition for a listener only
    • loggerOnly

      @Default public boolean loggerOnly()
      Should this logger definition only be used for generating a logger, and not a listener. By default, is false.

      This is required if you have multiple loggers for a single format; only one listener for each format is permitted to prevent ambiguity.

      Returns:
      true if this is a definition for a logger only
    • importStateType

      public abstract Optional<String> importStateType()
      What is the type of the import state for this logger's listener?
      Returns:
      the name of the import state for this logger's listener.
    • importStateColumns

      public abstract List<String> importStateColumns()
      The columns that are passed as input to this import state.
      Returns:
      the list of column names used as import for this import state.