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    }