public void SetNthChild(int nth, TNODE parent, TNODE child) { if (parent.Links.Count() > nth) { if (parent.Links[nth - 1].LinkTypeEnum == LinkTypeEnum.Child) { parent.Links[nth - 1].LinkNode = child; } } else if (parent.Links.Count() - 1 == nth) { parent.Links.Add(new LINK(LinkTypeEnum.Child, child)); } }
public List <TNODE> GetParentStar(TNODE node) { List <TNODE> nodes = new List <TNODE>(); TNODE tempNode = node; while (tempNode != null) { TNODE parentNode = GetParent(tempNode); if (parentNode != null) { nodes.Add(parentNode); } tempNode = parentNode; } return(nodes); }
public void SetPrevLink(LinkTypeEnum linkTypeEnum, TNODE node1, TNODE node2) { node1.PrevLinks.Add(new LINK(linkTypeEnum, node2)); }
public void SetFollows(TNODE node1, TNODE node2) { SetLink(LinkTypeEnum.Follows, node2, node1); SetPrevLink(LinkTypeEnum.Follows, node1, node2); }
public TNODE GetNthChild(int nth, TNODE parent) { return(GetLinkedNodes(parent, LinkTypeEnum.Child).ElementAtOrDefault(nth)); }
public List <TNODE> GetFollows(TNODE node) { return(GetLinkedNodes(node, LinkTypeEnum.Follows)); }
public ATTR GetAttr(TNODE node) { return(node.Attr); }
public void SetRoot(TNODE node) { Root = node; }
public bool IsLinked(LinkTypeEnum linkTypeEnum, TNODE node1, TNODE node2) { return(GetLinkedNodes(node1, linkTypeEnum).Contains(node2)); }
public bool IsFollowedStar(TNODE node1, TNODE node2) { return(GetFollowsStar(node2).Contains(node1)); }
public EntityTypeEnum GetType(TNODE node) { return(node.EntityTypeEnum); }
public List <TNODE> GetParentedStarBy(TNODE node) { List <TNODE> nodes = new List <TNODE>(); return(GetParentedStarBy(node, nodes)); }
public List <TNODE> GetParentedBy(TNODE node) { return(GetPrevLinkedNodes(node, LinkTypeEnum.Parent)); }
public TNODE GetParent(TNODE node) { return(GetLinkedNodes(node, LinkTypeEnum.Parent).FirstOrDefault()); }
public void SetParent(TNODE child, TNODE parent) { SetLink(LinkTypeEnum.Parent, child, parent); SetPrevLink(LinkTypeEnum.Parent, parent, child); }
public bool IsParent(TNODE parent, TNODE child) { return(GetParent(child) == parent); }
public void SetRightSibling(TNODE nodeL, TNODE nodeR) { SetLink(LinkTypeEnum.RightSibling, nodeL, nodeR); SetLink(LinkTypeEnum.LeftSibling, nodeL, nodeR); }
public bool IsParentStar(TNODE parent, TNODE child) { return(GetParentStar(child).Contains(parent)); }
public TNODE GetTNodeDeepCopy(TNODE node) { return(new TNODE(node)); }
public void SetAttr(TNODE node, ATTR attr) { node.Attr = attr; }
public TNODE GetFirstChild(TNODE parent) { List <TNODE> childNodes = GetLinkedNodes(parent, LinkTypeEnum.Child); return(childNodes.FirstOrDefault()); }
public void SetChildOfLink(TNODE child, TNODE parent) { SetLink(LinkTypeEnum.Child, parent, child); }
public List <TNODE> GetFollowsStar(TNODE node) { List <TNODE> nodes = new List <TNODE>(); return(GetFollowsStar(node, nodes)); }
public LINK(LinkTypeEnum linkTypeEnum, TNODE nodeToLink) { LinkNode = nodeToLink; LinkTypeEnum = linkTypeEnum; }