public static NodeRefererEntry arrayClear(NodeRefererEntry refererEntry) { Ensure.ensure(refererEntry.entry.isBranch); ImmutableNodeReferer resultReferer = ImmutableNodeReferer.makeBranch(new List <ImmutableNodeReferer>()); return(new NodeRefererEntry(resultReferer)); }
public static ImmutableNodeReferer makeImmutableNodeRefererForArray(IList <Variant> values) { var resultChildren = new List <ImmutableNodeReferer>(new ImmutableNodeReferer[values.Count]); for (int i = 0; i < values.Count; i++) { resultChildren[i] = ImmutableNodeReferer.makeNonbranch(ValueNode.makeAtomic(values[i])); } return(ImmutableNodeReferer.makeBranch(resultChildren)); }
public static ImmutableNodeReferer makeString(string value) { ImmutableNodeReferer result = ImmutableNodeReferer.makeBranch(); result.children = result.children.Add(ImmutableNodeReferer.makeNonbranch(ValueNode.makeDatatype("string"))); for (int i = 0; i < value.Length; i++) { result.children = result.children.Add(ImmutableNodeReferer.makeNonbranch(ValueNode.makeAtomic(Variant.makeInt(value[i])))); } return(result); }
// shallow copie of branch or just passthrough if element is nonbranch // doesn't touch parent public static ImmutableNodeReferer copy(ImmutableNodeReferer element) { if (!element.isBranch) { return(element); } ImmutableNodeReferer result = ImmutableNodeReferer.makeBranch(); // copy for (int i = 0; i < element.children.Count(); i++) { result.children = result.children.Add(element.children[i]); } return(result); }