// This file is copyrighted and is part of nzdis-oql package. // See the file LICENSE for copyright information and the terms and conditions for copying, distributing and modifications of nzdis-oql package. // @copyright@ package nzdis.lang.oql; /**/ import nzdis.lang.oql.node.Node; import java.util.Hashtable; /** * Utility class for OQL Abstract Syntax Tree back to well-formed * ASCII representation. * *@author Mariusz Nowostawski *@version @version@ $Revision: 1.1 $ */ public class ToAscii { public static String toString(final String oql) { try{ Node ast = TreeBuilder.getNode(oql, true); return toString(ast); }catch(Exception ex){ ex.printStackTrace(); return null; } } public static String toString(final Node ast){ final Oql2AsciiWalker walker = new Oql2AsciiWalker(); final OqlOutputStrategyString s = new OqlOutputStrategyString(); walker.setStategy(s); ast.apply(walker); StringBuffer buf = s.toAscii(); return buf.toString(); } public static String toString(final Node ast, final Hashtable context){ final Oql2AsciiWalker walker = new Oql2AsciiWalker(); final OqlOutputStrategyString s = new OqlOutputStrategyString(); walker.setStategy(s); walker.setContext(context); ast.apply(walker); StringBuffer buf = s.toAscii(); return buf.toString(); } }