/// <summary> /// Visits the children of a <see cref="DeviceOrphan"/>. /// </summary> /// <param name="orphan">The orphan to visit.</param> protected internal override void VisitDevice(DeviceOrphan orphan) => DefaultVisit(orphan);
/// <summary> /// Visits a single <see cref="DeviceOrphan"/>. /// </summary> /// <param name="orphan">The orphan to visit.</param> protected internal abstract void VisitDevice(DeviceOrphan orphan);
/// <summary> /// Visits a single <see cref="DeviceOrphan"/> and produces a value of type <typeparamref name="TResult"/>. /// </summary> /// <param name="orphan">The orphan to visit.</param> /// <returns>The result of visitng the orphan.</returns> protected internal abstract TResult VisitDevice(DeviceOrphan orphan);
/// <summary> /// Visits the children of a <see cref="DeviceOrphan"/> and replaces the orphan if any of its children are modified. /// </summary> /// <param name="orphan">The orphan to visit.</param> /// <returns>If any children were modified, a new orphan with the modified children. Otherwise, the original orphan.</returns> protected internal override PrtgOrphan VisitDevice(DeviceOrphan orphan) { return(orphan.WithChildren(VisitList(orphan.Children))); }