@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.
 
 <T> Cell value data type
 <S> Promoted data type
 <P> PB message that is used to transport initializer specific bytes
 <Q> PB message that is used to transport Cell (<T>) instance
 <R> PB message that is used to transport Promoted (<S>) instance
| Constructor and Description | 
|---|
| ColumnInterpreter() | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract S | add(S l1,
   S l2)Returns sum or non null value among (if either of them is null); otherwise returns a null. | 
| 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)Returns value of type T | 
| abstract S | increment(S o)Returns increment | 
| 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)Returns multiplication | 
public abstract T getValue(byte[] colFamily, byte[] colQualifier, Cell c) throws IOException
IOExceptionpublic abstract S add(S l1, S l2)
public abstract T getMaxValue()
public abstract T getMinValue()
public abstract S castToReturnType(T o)
public abstract int compare(T l1, T l2)
public abstract double divideForAvg(S o, Long 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)
public abstract Q getProtoForCellType(T t)
public abstract T getCellValueFromProto(Q q)
public abstract R getProtoForPromotedType(S s)
public abstract S getPromotedValueFromProto(R r)
public abstract T castToCellType(S response)
castToReturnType(Object)Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.