io.deephaven.engine.table.impl.ColumnSourceManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of deephaven-engine-table Show documentation
Show all versions of deephaven-engine-table Show documentation
Engine Table: Implementation and closely-coupled utilities
/**
* Copyright (c) 2016-2022 Deephaven Data Labs and Patent Pending
*/
package io.deephaven.engine.table.impl;
import io.deephaven.engine.rowset.WritableRowSet;
import io.deephaven.engine.table.impl.locations.ImmutableTableLocationKey;
import io.deephaven.engine.table.impl.locations.TableLocation;
import io.deephaven.engine.table.impl.sources.DeferredGroupingColumnSource;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.Map;
/**
* Manager for ColumnSources in a Table.
*/
public interface ColumnSourceManager {
/**
* Get a map of name to {@link DeferredGroupingColumnSource} for the column sources maintained by this manager.
*
* @return An unmodifiable view of the column source map maintained by this manager.
*/
Map> getColumnSources();
/**
* Turn off column grouping, and clear the groupings on all GROUPING column sources. Note that this does *not*
* affect PARTITIONING columns.
*/
void disableGrouping();
/**
* Add a table location to the list to be checked in run().
*
* @param tableLocation The table location to be added
*/
void addLocation(@NotNull TableLocation tableLocation);
/**
* Observe size changes in the previously added table locations, and update the managed column sources accordingly.
*
* @return The RowSet of added keys
*/
WritableRowSet refresh();
/**
* Get the added locations, first the ones that have been "included" (found to exist with non-zero size) in order of
* inclusion, then the remainder in order of discovery.
*
* @return All known locations, ordered as described
*/
Collection allLocations();
/**
* Get the added locations that have been found to exist and have non-zero size.
*
* @return The added locations that have been found to exist and have non-zero size
*/
@SuppressWarnings("unused")
Collection includedLocations();
/**
* Report whether this ColumnSourceManager has no locations that have been "included" (i.e. found to exist with
* non-zero size).
*
* @return True if there are no included locations
*/
boolean isEmpty();
/**
* Remove a table location key from the sources.
*
* @return true if the location key was actually removed
* @param tableLocationKey the location key being removed
*/
boolean removeLocationKey(@NotNull ImmutableTableLocationKey tableLocationKey);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy