@Override
    public Object parse(SourceData sourceData, int rowIndex, Context context) {
        Object leftStringObj = leftStringParser.parse(sourceData, rowIndex, context);
        Object lengthObj = lengthParser.parse(sourceData, rowIndex, context);
        Object rightStringObj = rightStringParser.parse(sourceData, rowIndex, context);
        if (leftStringObj == null || lengthObj == null || rightStringObj == null) {
            return null;
        }
        int len = Integer.parseInt(OperatorTools.parseString(lengthObj));
        if (len < 0) {
            return null;
        }
        String leftStr = OperatorTools.parseString(leftStringObj);
        if (len <= leftStr.length()) {
            return leftStr.substring(0, len);
        }
        String rightStr = OperatorTools.parseString(rightStringObj);
        if (rightStr.isEmpty()) {
            return "";
        }
        StringBuilder builder = new StringBuilder(len);
        builder.append(leftStr);
        while (builder.length() < len) {
            builder.append(rightStr);
        }
        return builder.substring(0, len);
    }
RpadFunction  ->  RPAD(s1,len,s2)
description:
- Return NULL if any of the three parameters is NULL or 'len' is less than 0
- Return the substring of 's1' with subscripts in the range of [0, 'len') if 'len' is less than or equal to the length of 's1'
- Return "" if 's2' is "" and 'len' is longer than the length of 's1'
- Return the result string of padding string 's2' at the end of string 's1' to make the length of the string 'len'
         if 's2' is not ""
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/string/RpadFunction.java