public static FunctionDecl getFunctionDecl(Function function) throws AsterixException { String functionBody = function.getFunctionBody(); List<String> params = function.getParams(); List<VarIdentifier> varIdentifiers = new ArrayList<VarIdentifier>(); StringBuilder builder = new StringBuilder(); builder.append(" use dataverse " + function.getDataverseName() + ";"); builder.append(" declare function " + function.getName().split("@")[0]); builder.append("("); for (String param : params) { VarIdentifier varId = new VarIdentifier(param); varIdentifiers.add(varId); builder.append(param); builder.append(","); } if (params.size() > 0) { builder.delete(builder.length() - 1, builder.length()); } builder.append(")"); builder.append("{"); builder.append("\n"); builder.append(functionBody); builder.append("\n"); builder.append("}"); AQLParser parser = new AQLParser(new StringReader(new String(builder))); List<Statement> statements = parser.parse(); FunctionDecl decl = (FunctionDecl) statements.get(1); return decl; }