Esempio n. 1
0
        public static NodeRefererEntry arrayClear(NodeRefererEntry refererEntry)
        {
            Ensure.ensure(refererEntry.entry.isBranch);

            ImmutableNodeReferer resultReferer = ImmutableNodeReferer.makeBranch(new List <ImmutableNodeReferer>());

            return(new NodeRefererEntry(resultReferer));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        // 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);
        }