@Override
    public Object parse(SourceData sourceData, int rowIndex, Context context) {
        if (numberParser != null) {
            Object valueObj = numberParser.parse(sourceData, rowIndex, context);
            if (valueObj == null) {
                return null;
            }
            BigDecimal value = OperatorTools.parseBigDecimal(valueObj);
            if (value.scale() > 0 || value.compareTo(BigDecimal.ZERO) < 0) {
                log.warn("Factorial is only defined for non-negative integers. Invalid input: {}", value);
                return null;
            }
            return factorial(value.intValue());
        }
        return null;
    }
FactorialFunction  ->  factorial(numeric)
Description:
- Return NULL if 'numeric' is NULL;
- Return the factorial of a non-negative
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/arithmetic/FactorialFunction.java