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    /**
011     * Plus operation
012     */
013    public final class And extends RefSupport implements Ref {
014    
015            private Ref right;
016            private Ref left;
017    
018            /**
019             * constructor of the class
020             * @param left
021             * @param right
022             */
023            public And(Ref left, Ref right) {
024                    this.left=left;
025                    this.right=right;
026            }
027    
028            @Override
029        public Object getValue(PageContext pc) throws PageException {
030                    return (Caster.toBooleanValue(left.getValue(pc)) && Caster.toBooleanValue(right.getValue(pc)))?Boolean.TRUE:Boolean.FALSE;
031            }
032    
033            @Override
034        public String getTypeName() {
035                    return "operation";
036            }
037    }