001 package railo.transformer.bytecode.expression.type; 002 003 import org.objectweb.asm.Type; 004 005 import railo.transformer.bytecode.BytecodeContext; 006 import railo.transformer.bytecode.BytecodeException; 007 import railo.transformer.bytecode.Position; 008 import railo.transformer.bytecode.expression.ExpressionBase; 009 import railo.transformer.bytecode.expression.var.Variable; 010 import railo.transformer.bytecode.literal.LitString; 011 import railo.transformer.bytecode.util.Types; 012 013 public class CollectionKey extends ExpressionBase { 014 015 private String value; 016 017 public CollectionKey(String value) { 018 super(null,null); 019 this.value=value; 020 } 021 022 public CollectionKey(String value,Position start,Position end) { 023 super(start,end); 024 this.value=value; 025 } 026 027 @Override 028 public Type _writeOut(BytecodeContext bc, int mode) throws BytecodeException { 029 Variable.registerKey(bc, LitString.toExprString(value)); 030 return Types.COLLECTION_KEY; 031 } 032 033 }