@SuppressWarnings("unchecked")
    @Override
    public Object parse(SourceData sourceData, int rowIndex, Context context) {
        Object arrayObj = arrayParser.parse(sourceData, rowIndex, context);
        Object ascendingOrderObj = null;
        Object nullFirstObj = null;
        if (ascendingOrderParser != null) {
            ascendingOrderObj = ascendingOrderParser.parse(sourceData, rowIndex, context);
        }
        if (nullFirstParser != null) {
            nullFirstObj = nullFirstParser.parse(sourceData, rowIndex, context);
        }
        if (arrayObj == null) {
            return null;
        }
        // default value
        boolean ascendingOrder = ascendingOrderObj == null || OperatorTools.parseBoolean(ascendingOrderObj);
        boolean nullFirst = nullFirstObj == null || OperatorTools.parseBoolean(nullFirstObj);

        if (arrayObj instanceof ArrayList) {
            ArrayList<Object> array = (ArrayList<Object>) arrayObj;
            if (array.isEmpty()) {
                return null;
            }
            // sort array
            return arraySort(array, ascendingOrder, nullFirst);
        }
        return null;
    }
ArraySortFunction  ->  ARRAY_SORT(array[, ascending_order[, null_first]])
description:
- Return NULL if 'array' is null;
- Return the array in sorted order.
Note: The function sorts an array, defaulting to ascending order with NULLs at the start when only the array is input.
      Specifying ascending_order as true orders the array in ascending with NULLs first, and setting it to false orders
      it in descending with NULLs last. Independently, null_first as true moves NULLs to the beginning, and as false
      to the end, irrespective of the sorting order. The function returns null if any input is null.
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/collection/ArraySortFunction.java