package railo.transformer.bytecode; import railo.runtime.exp.TemplateException; import railo.transformer.bytecode.statement.FlowControlFinal; /** * A single Statement */ public interface Statement { /** * sets parent statement to statement * @param parent */ public void setParent(Statement parent); public boolean hasFlowController(); public void setHasFlowController(boolean has); /** * @return returns the parent statement */ public Statement getParent(); /** * write out the stament to adapter * @param adapter * @throws TemplateException */ public void writeOut(BytecodeContext bc) throws BytecodeException; /** * sets the line value. * @param line The line to set. */ public void setStart(Position startLine); /** * sets the line value. * @param line The line to set. */ public void setEnd(Position endLine); /** * @return the startLine */ public Position getStart(); /** * @return the endLine */ public Position getEnd(); /** * @return return the label where the finally block of this tags starts, IF there is a finally block, otherwise return null; */ public FlowControlFinal getFlowControlFinal(); }