001 package railo.transformer.bytecode.expression.type; 002 003 import org.objectweb.asm.Type; 004 import org.objectweb.asm.commons.GeneratorAdapter; 005 006 import railo.transformer.bytecode.BytecodeContext; 007 import railo.transformer.bytecode.BytecodeException; 008 import railo.transformer.bytecode.expression.ExpressionBase; 009 import railo.transformer.bytecode.util.Types; 010 import railo.transformer.bytecode.visitor.ArrayVisitor; 011 012 public class LiteralStringArray extends ExpressionBase { 013 014 private String[] arr; 015 016 public LiteralStringArray(String[] arr, int line){ 017 super(line); 018 this.arr=arr; 019 } 020 021 public Type _writeOut(BytecodeContext bc, int mode) throws BytecodeException { 022 GeneratorAdapter adapter = bc.getAdapter(); 023 ArrayVisitor av=new ArrayVisitor(); 024 av.visitBegin(adapter,Types.STRING,arr.length); 025 for(int y=0;y<arr.length;y++){ 026 av.visitBeginItem(adapter, y); 027 adapter.push(arr[y]); 028 av.visitEndItem(bc); 029 } 030 av.visitEnd(); 031 return Types.STRING_ARRAY; 032 } 033 }