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    }