public bool Contains(WorldSymbol x, WorldSymbol y) { if (x == null || y == null) { return(false); } return(Relations[x].Contains(y)); }
public WorldIndex(WorldSymbol symbol) { Symbols.Add(symbol); if (symbol.ParentSymbol != null) { ParentIndex = new WorldIndex(symbol.ParentSymbol); Symbols.AddRange(ParentIndex.Symbols); } }
internal void AddRelation(WorldSymbol x, WorldSymbol y) { if (!Relations.ContainsKey(x)) { Relations.Add(x, new List <WorldSymbol>()); } if (!Relations[x].Contains(y)) { Relations[x].Add(y); foreach (var property in properties) { property.AddRelation(this, x, y); } } }
public void AddRelation(AccessibilityRelation relation, WorldSymbol x, WorldSymbol y) { if (x == y) { return; } var relations = relation.Relations.Where(rel => rel.Key == y); foreach (var rel in relations) { foreach (var target in rel.Value) { relation.AddRelation(x, target); } } relations = relation.Relations.Where(rel => rel.Value.Contains(x)); foreach (var rel in relations) { relation.AddRelation(rel.Key, y); } }
public void AddSymbol(WorldSymbol symbol) { symbol.ParentSymbol = EndSymbol; Symbols.Add(symbol); ParentIndex = new WorldIndex(symbol.ParentSymbol); }
public void AddRelation(AccessibilityRelation relation, WorldSymbol x, WorldSymbol y) { relation.AddRelation(y, x); }