001    package railo.transformer.bytecode;
002    
003    import java.util.List;
004    
005    
006    /**
007     * Body tag (Statement collector)
008     */
009    public interface Body extends Statement {
010    
011            /**
012             * adds a statement to the Page
013             * @param statement 
014             */
015            public abstract void addFirst(Statement statement);
016            public abstract void addStatement(Statement statement);
017    
018            /**
019             * returns all statements
020             * @return the statements
021             */
022            public abstract boolean hasStatements();
023            
024            public abstract List<Statement> getStatements();
025    
026            /**
027             * move all statements to target body
028             * @param trg
029             */
030            public abstract void moveStatmentsTo(Body trg);
031    
032            /**
033             * returns if body has content or not
034             * @return is empty
035             */
036            public abstract boolean isEmpty();
037            
038            public void addPrintOut(String str, Position start,Position end);
039    
040            public void remove(Statement stat);
041    
042    }