/// <summary> /// Calculates hash code for the edge data object. It is derived from semantic and data hash when available. /// </summary> /// <returns>Hash</returns> public override int GetHashCode() { if (Data == null) { return(Semantic.GetHashCode()); } else { return(Semantic.GetHashCode() ^ Data.GetHashCode()); } }