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;
  }
 public static void executeAQL(String aql) throws Exception {
   AQLParser parser = new AQLParser(new StringReader(aql));
   List<Statement> statements;
   statements = parser.Statement();
   SessionConfig pc = new SessionConfig(out, OutputFormat.ADM);
   AqlTranslator translator = new AqlTranslator(statements, pc);
   translator.compileAndExecute(
       AsterixAppContextInfo.getInstance().getHcc(), null, AqlTranslator.ResultDelivery.SYNC);
 }