001    package railo.runtime.interpreter.ref.op;
002    
003    import railo.runtime.PageContext;
004    import railo.runtime.exp.PageException;
005    import railo.runtime.interpreter.ref.Ref;
006    import railo.runtime.interpreter.ref.RefSupport;
007    import railo.runtime.op.Caster;
008    
009    /**
010     * imp operation
011     */
012    public final class Cont extends RefSupport implements Ref {
013    
014        private Ref cont;
015        private Ref right;
016        private Ref left;
017    
018        /**
019         * constructor of the class
020         * @param left
021         * @param right
022         */
023        public Cont(Ref cont, Ref left, Ref right) {
024            this.cont=cont;
025            this.left=left;
026            this.right=right;
027        }
028    
029        @Override
030            public Object getValue(PageContext pc) throws PageException {
031            return Caster.toBooleanValue(cont.getValue(pc))?left.getValue(pc):right.getValue(pc);
032        }
033    
034        @Override
035        public String getTypeName() {
036            return "operation";
037        }
038    }