@Override
    public Object parse(SourceData sourceData, int rowIndex, Context context) {
        Object arrayObj = arrayParser.parse(sourceData, rowIndex, context);
        Object needleObj = needleParser.parse(sourceData, rowIndex, context);
        if (arrayObj == null || needleObj == null) {
            return null;
        }
        if (arrayObj instanceof ArrayList) {
            ArrayList<?> array = (ArrayList<?>) arrayObj;
            if (array.isEmpty()) {
                return null;
            }
            for (int i = 0; i < array.size(); i++) {
                if (array.get(i) == null) {
                    continue;
                }
                if (array.get(i).equals(needleObj)) {
                    return i + 1;
                }
            }

            return 0;
        }
        return null;
    }
ArrayPositionFunction  ->  ARRAY_POSITION(array, element)
description:
- Return NULL if 'array' is null;
- Return the position of the first occurrence of 'element' in the given 'array' as int;
- Return 0 if the given value could not be found in the 'array'.
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/collection/ArrayPositionFunction.java