@InterfaceAudience.LimitedPrivate(value="Coprocesssor") @InterfaceStability.Evolving public abstract class ColumnInterpreter<T,S,P extends com.google.protobuf.Message,Q extends com.google.protobuf.Message,R extends com.google.protobuf.Message> extends Object
LongColumnInterpreter 
 for an example.
 
 Takes two generic parameters and three Message parameters. 
 The cell value type of the interpreter is <T>.
 During some computations like sum, average, the return type can be different
 than the cell value data type, for eg, sum of int cell values might overflow
 in case of a int result, we should use Long for its result. Therefore, this
 class mandates to use a different (promoted) data type for result of these
 computations <S>. All computations are performed on the promoted data type
 <S>. There is a conversion method
 castToReturnType(Object) which takes a <T> type and
 returns a <S> type.
 The AggregateIm>lementation uses PB messages to initialize the
 user's ColumnInterpreter implementation, and for sending the responses
 back to AggregationClient.
| Constructor and Description | 
|---|
| ColumnInterpreter() | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract S | add(S l1,
   S l2) | 
| abstract T | castToCellType(S response)The response message comes as type S. | 
| abstract S | castToReturnType(T o)provides casting opportunity between the data types. | 
| abstract int | compare(T l1,
       T l2)This takes care if either of arguments are null. | 
| abstract double | divideForAvg(S o,
            Long l)used for computing average of <S> data values. | 
| abstract T | getCellValueFromProto(Q q)This method gets the PB message corresponding to the cell type | 
| abstract T | getMaxValue()returns the maximum value for this type T | 
| abstract T | getMinValue() | 
| abstract S | getPromotedValueFromProto(R r)This method gets the promoted type from the proto message | 
| abstract Q | getProtoForCellType(T t)This method gets the PB message corresponding to the cell type | 
| abstract R | getProtoForPromotedType(S s)This method gets the PB message corresponding to the promoted type | 
| abstract P | getRequestData()This method should return any additional data that is needed on the
 server side to construct the ColumnInterpreter. | 
| abstract T | getValue(byte[] colFamily,
        byte[] colQualifier,
        Cell c) | 
| abstract S | increment(S o) | 
| abstract void | initialize(P msg)This method should initialize any field(s) of the ColumnInterpreter with
 a parsing of the passed message bytes (used on the server side). | 
| abstract S | multiply(S o1,
        S o2) | 
public ColumnInterpreter()
public abstract T getValue(byte[] colFamily, byte[] colQualifier, Cell c) throws IOException
colFamily - colQualifier - c - IOExceptionpublic abstract S add(S l1, S l2)
l1 - l2 - public abstract T getMaxValue()
public abstract T getMinValue()
public abstract S castToReturnType(T o)
o - public abstract int compare(T l1, T l2)
public abstract double divideForAvg(S o, Long l)
o - l - public abstract P getRequestData()
initialize(P)
 method. If there is no ColumnInterpreter specific data (for e.g.,
 LongColumnInterpreter)
  then null should be returned.public abstract void initialize(P msg)
msg - public abstract Q getProtoForCellType(T t)
t - public abstract T getCellValueFromProto(Q q)
q - public abstract R getProtoForPromotedType(S s)
s - public abstract S getPromotedValueFromProto(R r)
r - public abstract T castToCellType(S response)
castToReturnType(Object)response - Copyright © 2007–2021 The Apache Software Foundation. All rights reserved.