001 package railo.transformer.bytecode.visitor; 002 003 import org.objectweb.asm.Opcodes; 004 import org.objectweb.asm.Type; 005 import org.objectweb.asm.commons.GeneratorAdapter; 006 007 import railo.transformer.bytecode.BytecodeContext; 008 009 public final class ArrayVisitor { 010 011 public void visitBegin(GeneratorAdapter adapter,Type type,int length) { 012 adapter.push(length); 013 adapter.newArray(type); 014 } 015 public void visitBeginItem(GeneratorAdapter adapter,int index) { 016 adapter.dup(); 017 adapter.push(index); 018 } 019 public void visitEndItem(BytecodeContext bc) { 020 bc.getAdapter().visitInsn(Opcodes.AASTORE); 021 } 022 023 public void visitEndItem(GeneratorAdapter adapter) { 024 adapter.visitInsn(Opcodes.AASTORE); 025 } 026 027 public void visitEnd() { 028 } 029 030 }