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    }