jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRefBase.java
Print this page
@@ -21,10 +21,11 @@
* $Id: VariableRefBase.java,v 1.5 2005/09/28 13:48:18 pvedula Exp $
*/
package com.sun.org.apache.xalan.internal.xsltc.compiler;
+import com.sun.org.apache.xalan.internal.utils.Objects;
import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type;
import com.sun.org.apache.xalan.internal.xsltc.compiler.util.TypeCheckError;
/**
* @author Morten Jorgensen
@@ -95,28 +96,32 @@
/**
* Two variable references are deemed equal if they refer to the
* same variable.
*/
+ @Override
public boolean equals(Object obj) {
- try {
- return (_variable == ((VariableRefBase) obj)._variable);
- }
- catch (ClassCastException e) {
- return false;
+ return obj == this || (obj instanceof VariableRefBase)
+ && (_variable == ((VariableRefBase) obj)._variable);
}
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(this._variable);
}
/**
* Returns a string representation of this variable reference on the
* format 'variable-ref(<var-name>)'.
* @return Variable reference description
*/
+ @Override
public String toString() {
return "variable-ref("+_variable.getName()+'/'+_variable.getType()+')';
}
+ @Override
public Type typeCheck(SymbolTable stable)
throws TypeCheckError
{
// Returned cached type if available
if (_type != null) return _type;