Package org.apache.druid.segment
Interface BaseObjectColumnValueSelector<T>
-
- All Known Subinterfaces:
AggregateCombiner<T>
,ColumnValueSelector<T>
,DimensionSelector
,DoubleColumnSelector
,FloatColumnSelector
,HistoricalColumnSelector<T>
,HistoricalDimensionSelector
,LongColumnSelector
,SettableColumnValueSelector<T>
,SingleValueHistoricalDimensionSelector
- All Known Implementing Classes:
AbstractDimensionSelector
,BaseExpressionColumnValueSelector
,BaseSingleValueDimensionSelector
,ConstantDimensionSelector
,ConstantExprEvalSelector
,ConstantMultiValueDimensionSelector
,DoubleAggregateCombiner
,DoubleWrappingDimensionSelector
,ExpressionColumnValueSelector
,ExpressionMultiValueDimensionSelector
,FloatWrappingDimensionSelector
,GenericFirstAggregateCombiner
,GenericLastAggregateCombiner
,HyperLogLogCollectorAggregateCombiner
,IncrementalIndexRowHolder
,IndexedTableColumnValueSelector
,IndexedTableDimensionSelector
,LongAggregateCombiner
,LongSumAggregateCombiner
,LongWrappingDimensionSelector
,NestedFieldVirtualColumn.FieldDimensionSelector
,NestedFieldVirtualColumn.RawFieldColumnSelector
,NestedFieldVirtualColumn.RawFieldLiteralColumnValueSelector
,NilColumnValueSelector
,NullableNumericAggregateCombiner
,NumericArrayFieldSelector
,ObjectAggregateCombiner
,ObjectBasedColumnSelector
,ObjectColumnSelector
,ObjectToArrayColumnValueSelector
,ObjectToNumberColumnValueSelector
,PossiblyNullColumnValueSelector
,PossiblyNullDimensionSelector
,RowBasedExpressionColumnValueSelector
,SettableDimensionValueSelector
,SettableDoubleColumnValueSelector
,SettableFloatColumnValueSelector
,SettableLongColumnValueSelector
,SettableObjectColumnValueSelector
,SingleLongInputCachingExpressionColumnValueSelector
,SingleScanTimeDimensionSelector
,SingleStringInputCachingExpressionColumnValueSelector
,SingleStringInputDeferredEvaluationExpressionDimensionSelector
public interface BaseObjectColumnValueSelector<T>
Object value selecting polymorphic "part" of theColumnValueSelector
interface. Users ofgetObject()
are encouraged to reduce the parameter/field/etc. type to BaseObjectColumnValueSelector to make it impossible to accidently call any method other thangetObject()
. All implementations of this interface MUST also implementColumnValueSelector
. Typically created byColumnSelectorFactory.makeColumnValueSelector(String)
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Class<? extends T>
classOfObject()
Most-specific class of object returned bygetObject()
, if known in advance.T
getObject()
Returns the currently-selected object.
-
-
-
Method Detail
-
getObject
@Nullable T getObject()
Returns the currently-selected object. The behavior of this method depends on the type of selector, which can be determined by callingColumnSelectorFactory.getColumnCapabilities(String)
on the sameColumnSelectorFactory
that you got this selector from. If the capabilties are nonnull, the selector type is given byTypeSignature.getType()
. String selectors, where type isColumnType.STRING
, may return any type of object from this method, especially in cases where the selector is casting objects to string at selection time. Callers are encouraged to avoid the need to deal with various objects by usingColumnSelectorFactory.makeDimensionSelector(org.apache.druid.query.dimension.DimensionSpec)
instead. Numeric selectors, whereTypeSignature.isNumeric()
, may return any type ofNumber
. Callers that wish to deal with more specific types should treat the originalColumnValueSelector
as aBaseLongColumnValueSelector
,BaseDoubleColumnValueSelector
, orBaseFloatColumnValueSelector
instead. Array selectors, whereTypeSignature.isArray()
, must returnObject[]
. The array may contain null elements, and the array itself may also be null. Selectors of unknown type, whereColumnSelectorFactory.getColumnCapabilities(String)
returns null, may return any type of object. Callers must be prepared for a wide variety of possible input objects. This case is common during ingestion, where selectors are built on top of external data.
-
classOfObject
Class<? extends T> classOfObject()
Most-specific class of object returned bygetObject()
, if known in advance. This method returnsObject
when selectors do not know in advance what class of object they may return.
-
-