// 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.ANamedParamExpr; import nzdis.lang.oql.node.Token; import java.util.Hashtable; import java.util.Vector; /** * Abstract strategy for OQL Pretty Printer. * *@author Mariusz Nowostawski *@version @version@ $Revision: 1.1 $ */ abstract class OqlOutputStrategy { boolean needSpace = false; Vector indent = new Vector(); int nlnum; public OqlOutputStrategy() { indent.addElement(new Integer(0)); nlnum = 0; } public void pushIndent(int indentoffset) { indent.insertElementAt(new Integer(((Integer)indent.elementAt(0)).intValue()+indentoffset),0); } public void popIndent() { indent.removeElementAt(0); } abstract public void doSubst(ANamedParamExpr node, Hashtable context); abstract public void withoutSpace(Token node); abstract public void withSpace(Token node); abstract public void withNewLine(Token node); }