001    package railo.transformer.bytecode.statement;
002    
003    import org.objectweb.asm.Opcodes;
004    
005    import railo.transformer.bytecode.BytecodeContext;
006    import railo.transformer.bytecode.BytecodeException;
007    import railo.transformer.bytecode.Statement;
008    import railo.transformer.bytecode.util.ASMUtil;
009    
010    public final class Continue extends StatementBase {
011    
012            /**
013             * Constructor of the class
014             * @param line
015             */
016            public Continue(int line) {
017                    super(line);
018                    setHasFlowController(true);
019            }
020    
021            /**
022             * @see railo.transformer.bytecode.statement.StatementBase#_writeOut(railo.transformer.bytecode.BytecodeContext)
023             */
024            public void _writeOut(BytecodeContext bc) throws BytecodeException {
025                    FlowControl ls = ASMUtil.getAncestorFlowControlStatement(this);
026                    if(ls!=null)
027                            bc.getAdapter().visitJumpInsn(Opcodes.GOTO, ls.getContinueLabel());
028            }
029            /**
030             *
031             * @see railo.transformer.bytecode.statement.StatementBase#setParent(railo.transformer.bytecode.Statement)
032             */
033            public void setParent(Statement parent) {
034                    super.setParent(parent);
035                    parent.setHasFlowController(true);
036            }
037    }