public Boolean Equals(Object o) { if (o is Triggerable) { Triggerable t = (Triggerable)o; if (this == t) { return(true); } if (this.expr.Equals(t.expr)) { //check triggers List <TreeReference> Atriggers = this.getTriggers(); List <TreeReference> Btriggers = t.getTriggers(); //order and quantity don't matter; all that matters is every trigger in A exists in B and vice versa for (int k = 0; k < 2; k++) { List <TreeReference> v1 = (k == 0 ? Atriggers : Btriggers); List <TreeReference> v2 = (k == 0 ? Btriggers : Atriggers); for (int i = 0; i < v1.Count; i++) { if (v2.IndexOf(v1[i]) == -1) { return(false); } } } return(true); } else { return(false); } } else { return(false); } }
public override bool Equals(System.Object o) { if (o is Triggerable) { Triggerable t = (Triggerable) o; if (this == t) return true; if (this.expr.Equals(t.expr)) { // The original logic did not make any sense -- // the try { // resolved triggers should match... return (Atriggers.size() == Btriggers.size()) && Atriggers.containsAll(Btriggers); } catch (XPathException e) { return false; } } else { return false; } } else { return false; } }