001    package railo.transformer.bytecode.statement.java;
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.expression.ExpressionBase;
008    
009    public class CastOp extends ExpressionBase {
010    
011            private Object value;
012            private Class type;
013            private DataBag db;
014    
015            public CastOp(int line, Object value, Class type, DataBag db) {
016                    super(line);
017                    this.value=value;
018                    this.type=type;
019                    this.db=db;
020            }
021    
022            /**
023             * @see railo.transformer.bytecode.expression.ExpressionBase#_writeOut(railo.transformer.bytecode.BytecodeContext, int)
024             */
025            public Type _writeOut(BytecodeContext bc, int mode) throws BytecodeException {
026                    Type to = Type.getType(type);
027                    
028                    Assign.writeOut(db, bc, to, mode, value, getLine(),true);
029                    return to;
030            }
031    
032    }