private static String getSupportedParamOverloads(Map<String, Parameter> parameterMap,
                                                     ParameterOverload[] parameterOverloads) {
        StringJoiner stringJoiner = new StringJoiner(", ");
        for (ParameterOverload parameterOverload : parameterOverloads) {
            String[] parameterNames = parameterOverload.parameterNames();
            if (parameterNames.length != 0) {
                StringJoiner paramOverloadStringJoiner = new StringJoiner(", ", "(", ")");
                for (int i = 0; i < parameterNames.length; i++) {
                    StringBuilder stringBuilder = new StringBuilder();
                    if (!SiddhiConstants.REPETITIVE_PARAMETER_NOTATION.equals(parameterNames[i])) {
                        stringBuilder.append(getFormattedStringForDataType(parameterMap.
                                get(parameterNames[i]).type()));
                        stringBuilder.append(" ").append(parameterNames[i]);
                    } else {
                        stringBuilder.append(getFormattedStringForDataType(parameterMap.
                                get(parameterNames[i - 1]).type()));
                        stringBuilder.append(" ").append(SiddhiConstants.REPETITIVE_PARAMETER_NOTATION);
                    }
                    paramOverloadStringJoiner.add(stringBuilder);
                }
                stringJoiner.add(paramOverloadStringJoiner.toString());
            }
        }
        return stringJoiner.toString();
    }
The method which validates the extension specific parameters of siddhi App with the pattern specified in the
{@link ParameterOverload} annotation in the extension class

@param objectHavingAnnotation       the object which has Extension annotation
@param attributeExpressionExecutors the executors of each function parameters
@throws SiddhiAppValidationException SiddhiAppValidation exception
modules/siddhi-core/src/main/java/io/siddhi/core/util/extension/validator/InputParameterValidator.java