Package org.apache.druid.segment
Class QueryableIndexSegment
- java.lang.Object
-
- org.apache.druid.segment.QueryableIndexSegment
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Segment
public class QueryableIndexSegment extends Object implements Segment
-
-
Constructor Summary
Constructors Constructor Description QueryableIndexSegment(QueryableIndex index, SegmentId segmentId)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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()
-
-
-
Constructor Detail
-
QueryableIndexSegment
public QueryableIndexSegment(QueryableIndex index, SegmentId segmentId)
-
-
Method Detail
-
getDataInterval
public org.joda.time.Interval getDataInterval()
- Specified by:
getDataInterval
in interfaceSegment
-
asQueryableIndex
public QueryableIndex asQueryableIndex()
- Specified by:
asQueryableIndex
in interfaceSegment
-
asStorageAdapter
public StorageAdapter asStorageAdapter()
- Specified by:
asStorageAdapter
in interfaceSegment
-
close
public void close()
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
as
@Nullable public <T> T as(@Nonnull Class<T> clazz)
Description copied from interface:Segment
Request an implementation of a particular interface. If the passed-in interface isQueryableIndex
orStorageAdapter
, then this method behaves identically toSegment.asQueryableIndex()
orSegment.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 thanQueryableIndex
orStorageAdapter
are limited to using those classes within the extension. This means that one extension cannot rely on the `Segment.as` behavior of another extension.
-
-