/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.gosu.parser.expressions; import gw.lang.parser.expressions.IIdentityExpression; /** * Represents an identity expression in the Gosu grammar: * <pre> * <i>identity-expression</i> * <relational-expression> * <identity-expression> <b>===</b> <relational-expression> * <identity-expression> <b>!==</b> <relational-expression> * </pre> * <p/> * * @see gw.lang.parser.IGosuParser */ public class IdentityExpression extends ConditionalExpression implements IIdentityExpression { private boolean _bEquals; public Object evaluate() { if( !isCompileTimeConstant() ) { return super.evaluate(); } return isEquals() ? getLHS().evaluate() == getRHS().evaluate() : getLHS().evaluate() != getRHS().evaluate(); } public String toString() { return getLHS().toString() + (isEquals() ? " === " : " !== ") + getRHS().toString(); } public boolean isEquals() { return _bEquals; } public void setEquals( boolean bEquals ) { _bEquals = bEquals; } }