public boolean equals(Object obj) {if (this == obj) {return true;}if (obj == null) {return false;}if (getClass() != obj.getClass()) {return false;}ExpressionValueSource other = (ExpressionValueSource) obj;if (expression == null) {if (other.expression != null) {return false;}} else if (!expression.sourceText.equals(other.expression.sourceText)) {return false;}if (needsScores != other.needsScores) {return false;}if (!Arrays.equals(variables, other.variables)) {return false;}return true;}

public override bool Equals(object obj){if (this == obj){return true;}if (obj == null){return false;}if (GetType() != obj.GetType()){return false;}ExpressionValueSource other = (ExpressionValueSource)obj;if (expression == null){if (other.expression != null){return false;}}else{if (!expression.Equals(other.expression)){return false;}}if (needsScores != other.needsScores){return false;}if (!Arrays.Equals(variables, other.variables)){return false;}return true;}
