001    package railo.transformer.bytecode.visitor;
002    
003    import org.objectweb.asm.Label;
004    import org.objectweb.asm.Opcodes;
005    import org.objectweb.asm.commons.GeneratorAdapter;
006    
007    import railo.transformer.bytecode.BytecodeContext;
008    
009    public final class AndVisitor {
010            private Label end;
011            private Label l2;
012            public void visitBegin() {
013                    end = new Label();
014            l2 = new Label();
015            }
016            public void visitMiddle(BytecodeContext bc) {
017                    bc.getAdapter().ifZCmp(Opcodes.IFEQ, end);
018    
019                    
020                    
021            }
022            public void visitEnd(BytecodeContext bc) {
023                    GeneratorAdapter adapter = bc.getAdapter();
024            adapter.ifZCmp(Opcodes.IFEQ, end);
025            adapter.push(true);
026            
027            adapter.visitJumpInsn(Opcodes.GOTO, l2);
028            adapter.visitLabel(end);
029    
030            adapter.push(false);
031            adapter.visitLabel(l2);
032            }
033    }