Class PythonTableDataService.TableLocationImpl

All Implemented Interfaces:
LogOutputAppendable, DelegatingLivenessReferent, LivenessReferent, TableLocation, TableLocationState, NamedImplementation
Enclosing class:
PythonTableDataService

public class PythonTableDataService.TableLocationImpl extends AbstractTableLocation
TableLocation implementation for TableService.
  • Method Details

    • makeColumnLocation

      @NotNull protected @NotNull ColumnLocation makeColumnLocation(@NotNull @NotNull String name)
      Specified by:
      makeColumnLocation in class AbstractTableLocation
    • refresh

      public void refresh()
      Description copied from interface: TableLocation
      Initialize or run state information.
    • getSortedColumns

      @NotNull public @NotNull List<SortColumn> getSortedColumns()
      Description copied from interface: TableLocation
      Get an ordered list of columns this location is sorted by.
      Returns:
      A non-null ordered list of SortColumns
    • getDataIndexColumns

      @NotNull public @NotNull List<String[]> getDataIndexColumns()
      Description copied from interface: TableLocation
      Get a list of the columns by which this location is indexed
      Returns:
      A non-null list of String[] arrays containing the key column names for each existing index
    • hasDataIndex

      public boolean hasDataIndex(@NotNull @NotNull String... columns)
      Description copied from interface: TableLocation
      Check if this TableLocation has a data index for the specified columns.
      Parameters:
      columns - The set of columns to check for
      Returns:
      Whether the TableLocation has an index for the specified columns
    • loadDataIndex

      @Nullable public @Nullable BasicDataIndex loadDataIndex(@NotNull @NotNull String... columns)
      Description copied from class: AbstractTableLocation
      Load the data index from the location implementation. Implementations of this method should not perform any result caching.
      Specified by:
      loadDataIndex in class AbstractTableLocation
      Parameters:
      columns - The columns to load an index for
      Returns:
      The data index, or null if none exists
    • activateUnderlyingDataSource

      protected void activateUnderlyingDataSource()
      Description copied from class: SubscriptionAggregator

      Refresh and activate update pushing from the implementing class.

      If the implementation will deliver notifications in a different thread than the one that calls this method, then this method must be asynchronous - that is, it must not block pending delivery of results. This requirement holds even if that other thread has nothing to do with the initial activation request!

      Listeners should guard against duplicate notifications, especially if the implementation delivers synchronous notifications.

      The implementation should call activationSuccessful() when done activating and delivering initial run results, unless activationFailed() was called instead.

      Must be called under the subscription lock.

      Overrides:
      activateUnderlyingDataSource in class SubscriptionAggregator<TableLocation.Listener>
    • deactivateUnderlyingDataSource

      protected void deactivateUnderlyingDataSource()
      Description copied from class: SubscriptionAggregator
      Deactivate pushed updates from the implementing class. Must be called under the subscription lock.
      Overrides:
      deactivateUnderlyingDataSource in class SubscriptionAggregator<TableLocation.Listener>
    • matchSubscriptionToken

      protected <T> boolean matchSubscriptionToken(T token)
      Description copied from class: SubscriptionAggregator
      Verify that a notification pertains to a currently-active subscription. Must be called under the subscription lock.
      Overrides:
      matchSubscriptionToken in class SubscriptionAggregator<TableLocation.Listener>
      Parameters:
      token - A subscription-related object that the subclass can use to match a notification
      Returns:
      True iff notification delivery should proceed
    • getImplementationName

      public String getImplementationName()
      Description copied from interface: NamedImplementation

      Get a name for the implementing class. Useful for abstract classes that implement LogOutputAppendable or override toString.

      The default implementation is correct, but not suitable for high-frequency usage.

      Returns:
      A name for the implementing class