public static bool operator ==(PropertyRoute x, PropertyRoute y) { if (object.ReferenceEquals(x, y)) { return(true); } if (object.ReferenceEquals(x, null) || object.ReferenceEquals(y, null)) { return(false); } return((PropertyRouteSegment.Equals(x.m_current, y.m_current)) && (x.m_parent == y.m_parent)); }
internal static PropertyRoute Combine(PropertyRouteSegment segment, PropertyRoute ancestors) { if (ancestors == null) { return(new PropertyRoute(segment)); } if (ancestors.Current.Type != PropertyRouteSegmentType.Other) { return(new PropertyRoute(segment, ancestors)); } var path = PropertyRouteParser.Parse(new PropertyRoute(segment, new PropertyRoute(ancestors.Current))); Debug.Assert(!string.IsNullOrEmpty(path)); return(new PropertyRoute(new PropertyRouteSegment(PropertyRouteSegmentType.Other, path), ancestors.Parent)); }
private PropertyRoute(PropertyRouteSegment segment, PropertyRoute parent) { m_current = segment; m_parent = parent; }
internal PropertyRoute(PropertyRouteSegment segment) : this(segment, null) { }
internal static PropertyRoute Combine(PropertyRoute descendants, PropertyRouteSegment segment) { return(PropertyRoute.Combine(descendants, new PropertyRoute(segment))); }
internal static PropertyRoute ToPropertyRoute(PropertyRouteSegment segment) { return(new PropertyRoute(segment)); }
internal void PushDescendant(PropertyRouteSegment segment) { m_segments.Add(segment); }
internal void PushAncestor(PropertyRouteSegment segment) { m_segments.Insert(0, segment); }