class FunctionEncoder {

    static String buildMethodSignature(String methodName, List<Type> parameters) {
        StringBuilder result = new StringBuilder();
        result.append(methodName);
        result.append("(");

        List<String> types = new ArrayList<String>(parameters.size());
        String params = "";

        for (int i = 0; i < parameters.size(); i++) {
            Type type = parameters.get(i);

            params += type.getTypeAsString();
            if (i + 1 < parameters.size()) {
                params += ",";  // no whitespace
            }

            types.add(type.getTypeAsString());
        }

        result.append(params);
        result.append(")");
        return result.toString();
    }

    private  FunctionEncoder();

}