Interface TableLocation

All Superinterfaces:
LogOutputAppendable, NamedImplementation, TableLocationState
All Known Implementing Classes:
AbstractTableLocation, NonexistentTableLocation, ParquetTableLocation

public interface TableLocation extends NamedImplementation, LogOutputAppendable, TableLocationState
Building block for Deephaven "source" tables, with helper methods for discovering locations and their sizes. A location allows access to columns, size, and possibly other metadata for a single partition that may be included in a source table.
  • Method Details

    • getTableKey

      @NotNull @NotNull ImmutableTableKey getTableKey()
      Returns:
      An ImmutableTableKey instance for the enclosing table
    • getKey

      @NotNull @NotNull ImmutableTableLocationKey getKey()
      Returns:
      An ImmutableTableLocationKey instance for this location
    • supportsSubscriptions

      boolean supportsSubscriptions()
      Does this location support subscriptions? That is, can this location ever have ticking data?
      Returns:
      True if this location supports subscriptions
    • subscribe

      void subscribe(@NotNull @NotNull TableLocation.Listener listener)

      Subscribe to pushed location updates. Subscribing more than once with the same listener without an intervening unsubscribe is an error, and may result in undefined behavior.

      This is a possibly asynchronous operation - listener will receive 1 or more handleUpdate callbacks, followed by 0 or 1 handleException callbacks during invocation and continuing after completion, on a thread determined by the implementation. Don't hold a lock that prevents notification delivery while subscribing!

      This method only guarantees eventually consistent state. To force a state update, use run() after subscription completes.

      Parameters:
      listener - A listener
    • unsubscribe

      void unsubscribe(@NotNull @NotNull TableLocation.Listener listener)
      Unsubscribe from pushed location updates.
      Parameters:
      listener - The listener to forget about
    • refresh

      void refresh()
      Initialize or run state information.
    • getColumnLocation

      @NotNull @NotNull ColumnLocation getColumnLocation(@NotNull @NotNull CharSequence name)
      Parameters:
      name - The column name
      Returns:
      The ColumnLocation for the defined column under this table location
    • append

      @FinalDefault default LogOutput append(@NotNull @NotNull LogOutput logOutput)
      Specified by:
      append in interface LogOutputAppendable
    • toStringHelper

      @FinalDefault default String toStringHelper()
    • toGenericString

      @FinalDefault default String toGenericString()
      Format the table key without implementation specific bits.
      Returns:
      a formatted string
    • toStringDetailed

      @FinalDefault default String toStringDetailed()
      Optional toString path with more implementation detail.
      Returns:
      detailed conversion to string