Interface TableDefinitionSchema

All Superinterfaces:
com.fishlib.base.log.LogOutputAppendable
All Known Subinterfaces:
MutableSchema, Schema, SchemaXml
All Known Implementing Classes:
CopyTableSchema, InvalidSchema, Schema.AbstractSchema, Schema.Delegating

public interface TableDefinitionSchema extends com.fishlib.base.log.LogOutputAppendable
An immutable schema that defines a particular table.
  • Method Details

    • getNamespace

      @NotNull String getNamespace()
      Returns:
      The namespace of the table
    • getTableName

      @NotNull String getTableName()
      Returns:
      The name of the table
    • getDefaultMergeFormat

      @NotNull Database.StorageFormat getDefaultMergeFormat()
      Returns:
      the preferred merge storage format
    • getMergeCodecName

      @Nullable String getMergeCodecName(@NotNull String mergeFormat)
      For the specified merge format, return the defined codec name, if any.
      Parameters:
      mergeFormat - the merge format
      Returns:
      the codec name, if defined
    • getNamespaceSet

      @NotNull NamespaceSet getNamespaceSet()
      Returns:
      The NamespaceSet to which this schema belongs
    • getStorageType

      int getStorageType()
      Get the StorageType as an integer enum value.
      Returns:
      the storage type
    • getTableType

      @NotNull TableType getTableType(boolean intraday)
      Get the table type for this schema, depending on if it was an intraday table or not. Note that the intraday setting is ignored for User table types.
      Parameters:
      intraday - true if the returned type should reflect an intraday table
      Returns:
      The table type
      ImplNote:
      This method's table type inference does not account for new table types; in particular, for User tables. To do so, use getTableTypeV2(boolean) instead. This method is not scheduled for removal, but should only be used within Legacy workers or infrastructure code.
    • getTableTypeV2

      @NotNull TableType getTableTypeV2(boolean intraday)
      Get the table type for this schema, depending on if it was an intraday table or not. The intraday setting is used even for User table types.
      Parameters:
      intraday - true if the returned type should reflect an intraday table
      Returns:
      The table type
    • getVersion

      @NotNull SchemaVersion getVersion()
      Returns:
      The version of this schema
    • getTableDefinition

      @NotNull TableDefinition getTableDefinition()
      Returns:
      The TableDefinition corresponding to this Schema
    • getTableDescription

      @NotNull String getTableDescription()
      Returns:
      The table description from the schema.
    • getColumnDescriptions

      @NotNull Map<String,String> getColumnDescriptions()
      Get an unmodifiable map of column names to column descriptions. The map may not contain any columns that don't have descriptions.
      Returns:
      A map of column names to column descriptions
    • append

      default com.fishlib.base.log.LogOutput append(com.fishlib.base.log.LogOutput logOutput)
      Specified by:
      append in interface com.fishlib.base.log.LogOutputAppendable