public virtual int compareTo(GraphElement o) { const int BEFORE = -1; const int EQUAL = 0; const int AFTER = 1; if (this == o) { return(EQUAL); } if (labelSet == null && o.labelSet != null) { return(BEFORE); } if (labelSet != null && o.labelSet == null) { return(AFTER); } if (labelSet == null && o.labelSet == null) { return(EQUAL); } int comparison = EQUAL; foreach (SymbolTable table in labelSet.Keys) { int?ocode = o.labelSet.get(table); int?tcode = labelSet.get(table); if (ocode != null && tcode != null) { if (!ocode.Equals(tcode)) { try { comparison = table.getSymbolCodeToString(tcode.Value).CompareTo(table.getSymbolCodeToString(ocode.Value)); if (comparison != EQUAL) { return(comparison); } } catch (MaltChainedException) { } } } } return(EQUAL); }
public override bool Equals(object obj) { GraphElement ge = (GraphElement)obj; return(belongsToGraph == ge.BelongsToGraph && labelSet == null ? ge.LabelSet == null : labelSet.Equals(ge.LabelSet)); }