public static IFunctionInfo getExternalFunctionInfo(MetadataTransactionContext txnCtx, Function function)
throws AlgebricksException {
String functionKind = function.getKind();
IFunctionInfo finfo = null;
if (FunctionKind.SCALAR.toString().equalsIgnoreCase(functionKind)) {
finfo = getScalarFunctionInfo(txnCtx, function);
} else if (FunctionKind.AGGREGATE.toString().equalsIgnoreCase(functionKind)) {
finfo = getAggregateFunctionInfo(txnCtx, function);
} else if (FunctionKind.STATEFUL.toString().equalsIgnoreCase(functionKind)) {
finfo = getStatefulFunctionInfo(txnCtx, function);
} else if (FunctionKind.UNNEST.toString().equalsIgnoreCase(functionKind)) {
finfo = getUnnestFunctionInfo(txnCtx, function);
}
return finfo;
}