public override void visit(BaseModelElement obj, bool visitSubNodes)
{
ModelElement element = (ModelElement) obj;
string guid = element.Guid;
if (guid != null)
{
ModelElement cachedElement;
if (_dictionary.TryGetValue(guid, out cachedElement))
{
if (cachedElement != null && element != cachedElement)
{
throw new Exception("Model element collision found");
}
}
else
{
_dictionary[element.Guid] = element;
}
}
base.visit(obj, visitSubNodes);
}