Package org.apache.druid.segment
Class ColumnProcessors
- java.lang.Object
-
- org.apache.druid.segment.ColumnProcessors
-
public class ColumnProcessors extends Object
Creates "column processors", which are objects that wrap a single input column and provide some functionality on top of it.- See Also:
which this may eventually replace
-
-
Field Summary
Fields Modifier and Type Field Description static ColumnCapabilities
NIL_COLUMN_CAPABILITIES
Capabilites that are used when we return a nil selector for a nonexistent column.
-
Constructor Summary
Constructors Constructor Description ColumnProcessors()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> T
makeProcessor(String column, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory)
Make a processor for a particular named column.static <T> T
makeProcessor(Expr expr, ColumnType exprTypeHint, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory)
Make a processor for a particular expression.static <T> T
makeProcessor(DimensionSpec dimensionSpec, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory)
Make a processor for a particularDimensionSpec
.static <T> T
makeVectorProcessor(String column, VectorColumnProcessorFactory<T> processorFactory, VectorColumnSelectorFactory selectorFactory)
Make a processor for a particular named column.static <T> T
makeVectorProcessor(DimensionSpec dimensionSpec, VectorColumnProcessorFactory<T> processorFactory, VectorColumnSelectorFactory selectorFactory)
Make a processor for a particularDimensionSpec
.
-
-
-
Field Detail
-
NIL_COLUMN_CAPABILITIES
public static final ColumnCapabilities NIL_COLUMN_CAPABILITIES
Capabilites that are used when we return a nil selector for a nonexistent column.
-
-
Method Detail
-
makeProcessor
public static <T> T makeProcessor(String column, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory)
Make a processor for a particular named column.- Type Parameters:
T
- processor type- Parameters:
column
- the columnprocessorFactory
- the processor factoryselectorFactory
- the column selector factory
-
makeProcessor
public static <T> T makeProcessor(DimensionSpec dimensionSpec, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory)
Make a processor for a particularDimensionSpec
.- Type Parameters:
T
- processor type- Parameters:
dimensionSpec
- the dimension specprocessorFactory
- the processor factoryselectorFactory
- the column selector factory
-
makeProcessor
public static <T> T makeProcessor(Expr expr, ColumnType exprTypeHint, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory)
Make a processor for a particular expression. If the expression is a simple identifier, this behaves identically tomakeProcessor(String, ColumnProcessorFactory, ColumnSelectorFactory)
and accesses the column directly. Otherwise, it uses an expression selector of typeexprTypeHint
.- Type Parameters:
T
- processor type- Parameters:
expr
- the parsed expressionexprTypeHint
- expression selector type to use for exprs that are not simple identifiersprocessorFactory
- the processor factoryselectorFactory
- the column selector factory
-
makeVectorProcessor
public static <T> T makeVectorProcessor(String column, VectorColumnProcessorFactory<T> processorFactory, VectorColumnSelectorFactory selectorFactory)
Make a processor for a particular named column.- Type Parameters:
T
- processor type- Parameters:
column
- the columnprocessorFactory
- the processor factoryselectorFactory
- the column selector factory
-
makeVectorProcessor
public static <T> T makeVectorProcessor(DimensionSpec dimensionSpec, VectorColumnProcessorFactory<T> processorFactory, VectorColumnSelectorFactory selectorFactory)
Make a processor for a particularDimensionSpec
.- Type Parameters:
T
- processor type- Parameters:
dimensionSpec
- the dimension specprocessorFactory
- the processor factoryselectorFactory
- the column selector factory
-
-