static public bool IsChildOf(this Relatable item, Relatable parent) { if (item.GetParents <Relatable>().Has(parent)) { return(true); } return(false); }
static public bool IsParentOf(this Relatable item, Relatable child) { if (child != null) { if (child.IsChildOf(item)) { return(true); } } return(false); }
static public IEnumerable <T> GetAncestors <T>(this Relatable item, int depth) { return(item.GetSelfAndParents <T>().Offset(depth)); }
static public T GetAncestor <T>(this Relatable item, int depth) { return(item.GetSelfAndParents <T>().Get(depth)); }
static public T GetSelfOrParent <T>(this Relatable item, Predicate <T> predicate) { return(item.GetSelfAndParents <T>().FindFirst(predicate)); }
static public T GetSelfOrParent <T>(this Relatable item) { return(item.GetSelfAndParents <T>().GetFirst()); }
static public IEnumerable <T> GetSelfAndParents <T>(this Relatable item) { return(item.GetSelfAndParents().Convert <object, T>()); }
static public IEnumerable <object> GetSelfAndParents(this Relatable item) { return(item.GetParents().Prepend(item)); }
static public IEnumerable <object> GetParents(this Relatable item) { return(RelatableExtensions_Parent_Internal.GetParents(item)); }
static public object GetImmediateParent(this Relatable item) { return(RelatableExtensions_Parent_Internal.GetImmediateParent(item)); }
static public IEnumerable <T> GetSelfAndDeepChildren <T>(this Relatable item) { return(item.GetSelfAndChildren <T>(Predicates <object> .EVERYTHING)); }
static public IEnumerable <T> GetSelfAndTopicalChildren <T>(this Relatable item) { return(item.GetSelfAndChildren <T>(o => o.IsNot <T>())); }
static public IEnumerable <T> GetSelfAndChildren <T>(this Relatable item, Predicate <object> predicate) { return(item.GetSelfAndChildren(predicate).Convert <object, T>()); }
static public IEnumerable <object> GetSelfAndChildren(this Relatable item, Predicate <object> predicate) { return(RelatableExtensions_Children_Internal.GetSelfAndChildren(item, predicate)); }
static public IEnumerable <T> GetImmediateChildren <T>(this Relatable item) { return(item.GetImmediateChildren().Convert <object, T>()); }
static public IEnumerable <object> GetImmediateChildren(this Relatable item) { return(RelatableExtensions_Children_Internal.GetImmediateChildren(item)); }