internal void AddInternal(bool isLast, JToken previous, object content) { if (IsMultiContent(content)) { IEnumerable enumerable = content as IEnumerable; JToken multiPrevious = previous; foreach (object c in enumerable) { AddInternal(isLast, multiPrevious, c); multiPrevious = (multiPrevious != null) ? multiPrevious._next : Last; } } else { JToken o = CreateFromContent(content); ValidateToken(o); if (o.Parent != null) { o = o.CloneNode(); } else { JContainer parent = this; while (parent.Parent != null) { parent = parent.Parent; } if (o == parent) { o = o.CloneNode(); } } JToken next = (previous != null) ? previous._next : o; o.Parent = this; o.Next = next; if (previous != null) { previous.Next = o; } if (isLast || previous == null) { _content = o; } } }
internal JContainer(JContainer other) { ValidationUtils.ArgumentNotNull(other, "c"); JToken content = other.Last; if (content != null) { do { content = content._next; Add(content.CloneNode()); }while (content != other.Last); } }