| Constructor and Description |
|---|
ArrayListSegment(SegmentId segmentId,
ArrayList<RowType> rows,
RowAdapter<RowType> rowAdapter,
RowSignature rowSignature)
Create a list-based segment.
|
| Modifier and Type | Method and Description |
|---|---|
<T> T |
as(Class<T> clazz)
Request an implementation of a particular interface.
|
QueryableIndex |
asQueryableIndex() |
StorageAdapter |
asStorageAdapter() |
void |
close() |
org.joda.time.Interval |
getDataInterval() |
SegmentId |
getId() |
public ArrayListSegment(SegmentId segmentId, ArrayList<RowType> rows, RowAdapter<RowType> rowAdapter, RowSignature rowSignature)
The provided List must be in time-order according to the provided RowAdapter.timestampFunction().
The cursor returned by RowBasedStorageAdapter.makeCursors(org.apache.druid.query.filter.Filter, org.joda.time.Interval, org.apache.druid.segment.VirtualColumns, org.apache.druid.java.util.common.granularity.Granularity, boolean, org.apache.druid.query.QueryMetrics<?>) makes no attempt to verify this, and callers
will expect it.
The provided "rowSignature" will be used for reporting available columns and their capabilities to users of
asStorageAdapter(). Note that the ColumnSelectorFactory implementation returned by this segment's
storage adapter will allow creation of selectors on any field, using the RowAdapter.columnFunction(java.lang.String) for that
field, even if it doesn't appear in "rowSignature".
segmentId - segment identifier; will be returned by getId()rows - objects that comprise this segment. Must be re-iterable if support for Cursor.reset()
is required. Otherwise, does not need to be re-iterable.rowAdapter - adapter used for reading these objectsrowSignature - signature of the columns in these objects@Nonnull public org.joda.time.Interval getDataInterval()
getDataInterval in interface Segment@Nullable public QueryableIndex asQueryableIndex()
asQueryableIndex in interface Segment@Nonnull public StorageAdapter asStorageAdapter()
asStorageAdapter in interface Segment@Nullable public <T> T as(Class<T> clazz)
SegmentQueryableIndex or StorageAdapter, then this method behaves
identically to Segment.asQueryableIndex() or Segment.asStorageAdapter(). Other interfaces are only
expected to be requested by callers that have specific knowledge of extra features provided by specific
segment types. For example, an extension might provide a custom Segment type that can offer both
StorageAdapter and some new interface. That extension can also offer a Query that uses that new interface.
Implementations which accept classes other than QueryableIndex or StorageAdapter are limited
to using those classes within the extension. This means that one extension cannot rely on the `Segment.as`
behavior of another extension.public void close()
close in interface Closeableclose in interface AutoCloseableCopyright © 2011–2023 The Apache Software Foundation. All rights reserved.