Annotation Type CustomFunctionResolver
@Retention(RUNTIME) @Target(METHOD) public @interface CustomFunctionResolverA Java annotation that can be used on a method, M, that implements a StreamBase Java custom function. The value of the annotation must be a String whose value is the name of another method, R, in the same class as M.
Constraints on R's declaration:
- R must be public and static.
- R must take the same number of arguments as M.
- All of R's arguments must be of type
- R's return type must be CompleteDataType.
StreamBase calls R under one of the following circumstances:
- A custom function call passes one or more parameters of StreamBase type List or Tuple.
- A custom function returns a value whose Java type is
- A custom function call matches multiple Java functions (e.g., calljava is called with a StreamBase long value and there are two identically-named Java methods, one of which takes a Java long and one of which takes a Java Long.
- A CompleteDataType that describes the type of M's return value (note: the CompleteDataType must be consistent with M's actual return type), or
nullif M can not be called with actual parameters of the specified types (e.g., because the schema of a tuple argument doesn't match the function's requirements).