aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs')
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs200
1 files changed, 0 insertions, 200 deletions
diff --git a/csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs b/csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs
deleted file mode 100644
index 8cc8ed6b..00000000
--- a/csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs
+++ /dev/null
@@ -1,200 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using Google.ProtocolBuffers.Descriptors;
-
-namespace Google.ProtocolBuffers.Serialization
-{
- /// <summary>
- /// Allows writing messages to a name/value dictionary
- /// </summary>
- public class DictionaryWriter : AbstractWriter
- {
- private readonly IDictionary<string, object> _output;
-
- /// <summary>
- /// Constructs a writer using a new dictionary
- /// </summary>
- public DictionaryWriter()
- : this(new Dictionary<string, object>(StringComparer.Ordinal))
- {
- }
-
- /// <summary>
- /// Constructs a writer using an existing dictionary
- /// </summary>
- public DictionaryWriter(IDictionary<string, object> output)
- {
- ThrowHelper.ThrowIfNull(output, "output");
- _output = output;
- }
-
- /// <summary>
- /// Creates the dictionary instance for a child message.
- /// </summary>
- protected virtual DictionaryWriter Create()
- {
- return new DictionaryWriter();
- }
-
- /// <summary>
- /// Accesses the dictionary that is backing this writer
- /// </summary>
- public IDictionary<string, object> ToDictionary()
- {
- return _output;
- }
-
- /// <summary>
- /// Writes the message to the the formatted stream.
- /// </summary>
- public override void WriteMessage(IMessageLite message)
- {
- message.WriteTo(this);
- }
-
-
- /// <summary>
- /// No-op
- /// </summary>
- public override void WriteMessageStart()
- { }
-
- /// <summary>
- /// No-op
- /// </summary>
- public override void WriteMessageEnd()
- { }
-
- /// <summary>
- /// Writes a Boolean value
- /// </summary>
- protected override void Write(string field, bool value)
- {
- _output[field] = value;
- }
-
- /// <summary>
- /// Writes a Int32 value
- /// </summary>
- protected override void Write(string field, int value)
- {
- _output[field] = value;
- }
-
- /// <summary>
- /// Writes a UInt32 value
- /// </summary>
- protected override void Write(string field, uint value)
- {
- _output[field] = value;
- }
-
- /// <summary>
- /// Writes a Int64 value
- /// </summary>
- protected override void Write(string field, long value)
- {
- _output[field] = value;
- }
-
- /// <summary>
- /// Writes a UInt64 value
- /// </summary>
- protected override void Write(string field, ulong value)
- {
- _output[field] = value;
- }
-
- /// <summary>
- /// Writes a Single value
- /// </summary>
- protected override void Write(string field, float value)
- {
- _output[field] = value;
- }
-
- /// <summary>
- /// Writes a Double value
- /// </summary>
- protected override void Write(string field, double value)
- {
- _output[field] = value;
- }
-
- /// <summary>
- /// Writes a String value
- /// </summary>
- protected override void Write(string field, string value)
- {
- _output[field] = value;
- }
-
- /// <summary>
- /// Writes a set of bytes
- /// </summary>
- protected override void Write(string field, ByteString value)
- {
- _output[field] = value.ToByteArray();
- }
-
- /// <summary>
- /// Writes a message or group as a field
- /// </summary>
- protected override void WriteMessageOrGroup(string field, IMessageLite message)
- {
- DictionaryWriter writer = Create();
- writer.WriteMessage(message);
-
- _output[field] = writer.ToDictionary();
- }
-
- /// <summary>
- /// Writes a System.Enum by the numeric and textual value
- /// </summary>
- protected override void WriteEnum(string field, int number, string name)
- {
- _output[field] = number;
- }
-
- /// <summary>
- /// Writes an array of field values
- /// </summary>
- protected override void WriteArray(FieldType fieldType, string field, IEnumerable items)
- {
- List<object> objects = new List<object>();
- foreach (object o in items)
- {
- switch (fieldType)
- {
- case FieldType.Group:
- case FieldType.Message:
- {
- DictionaryWriter writer = Create();
- writer.WriteMessage((IMessageLite) o);
- objects.Add(writer.ToDictionary());
- }
- break;
- case FieldType.Bytes:
- objects.Add(((ByteString) o).ToByteArray());
- break;
- case FieldType.Enum:
- if (o is IEnumLite)
- {
- objects.Add(((IEnumLite) o).Number);
- }
- else
- {
- objects.Add((int) o);
- }
- break;
- default:
- objects.Add(o);
- break;
- }
- }
-
- _output[field] = objects.ToArray();
- }
- }
-} \ No newline at end of file