Beispiel #1
0
        public void Add(YAMLNode key, YAMLNode value)
        {
            if (key.NodeType != YAMLNodeType.Scalar)
            {
                throw new Exception($"Only {YAMLNodeType.Scalar} node as a key supported");
            }

            InsertEnd(key, value);
        }
Beispiel #2
0
        private void InsertEnd(YAMLNode key, YAMLNode value)
        {
            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }
            KeyValuePair <YAMLNode, YAMLNode> pair = new KeyValuePair <YAMLNode, YAMLNode>(key, value);

            m_children.Add(pair);
        }
Beispiel #3
0
        public void InsertBegin(YAMLNode key, YAMLNode value)
        {
            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }
            KeyValuePair <YAMLNode, YAMLNode> pair = new KeyValuePair <YAMLNode, YAMLNode>(key, value);

            m_children.Insert(0, pair);
        }
Beispiel #4
0
 private void EndTransition(Emitter emitter, YAMLNode next)
 {
     if (Style == MappingStyle.Block)
     {
         emitter.WriteLine();
     }
     else if (Style == MappingStyle.Flow)
     {
         emitter.WriteSeparator().WriteWhitespace();
     }
     if (next.IsIndent)
     {
         emitter.DecreaseIntent();
     }
 }
Beispiel #5
0
 private void StartTransition(Emitter emitter, YAMLNode next)
 {
     emitter.Write(':').WriteWhitespace();
     if (Style == MappingStyle.Block)
     {
         if (next.IsMultyline)
         {
             emitter.WriteLine();
         }
     }
     if (next.IsIndent)
     {
         emitter.IncreaseIntent();
     }
 }
Beispiel #6
0
        private void StartChild(Emitter emitter, YAMLNode next)
        {
            if (Style == SequenceStyle.Block)
            {
                emitter.Write('-').WriteWhitespace();

                if (next.NodeType == NodeType)
                {
                    emitter.IncreaseIntent();
                }
            }
            if (next.IsIndent)
            {
                emitter.IncreaseIntent();
            }
        }
Beispiel #7
0
        internal override void Emit(Emitter emitter)
        {
            base.Emit(emitter);

            StartChildren(emitter);
            foreach (var kvp in m_children)
            {
                YAMLNode key   = kvp.Key;
                YAMLNode value = kvp.Value;

                key.Emit(emitter);
                StartTransition(emitter, value);
                value.Emit(emitter);
                EndTransition(emitter, value);
            }
            EndChildren(emitter);
        }
Beispiel #8
0
 private void EndChild(Emitter emitter, YAMLNode next)
 {
     if (Style == SequenceStyle.Block)
     {
         emitter.WriteLine();
         if (next.NodeType == NodeType)
         {
             emitter.DecreaseIntent();
         }
     }
     else if (Style == SequenceStyle.Flow)
     {
         emitter.WriteSeparator().WriteWhitespace();
     }
     if (next.IsIndent)
     {
         emitter.DecreaseIntent();
     }
 }
Beispiel #9
0
 public void Add(YAMLNode child)
 {
     m_children.Add(child);
 }
Beispiel #10
0
        public void Add(YAMLNode key, bool value)
        {
            YAMLScalarNode valueNode = new YAMLScalarNode(value);

            Add(key, valueNode);
        }
Beispiel #11
0
        public void Add(string key, YAMLNode value)
        {
            YAMLScalarNode keyNode = new YAMLScalarNode(key);

            InsertEnd(keyNode, value);
        }
Beispiel #12
0
        public void InsertBegin(string key, YAMLNode value)
        {
            YAMLScalarNode keyNode = new YAMLScalarNode(key);

            InsertBegin(keyNode, value);
        }