diff options
author | Jon Skeet <skeet@pobox.com> | 2008-08-14 20:35:23 +0100 |
---|---|---|
committer | Jon Skeet <skeet@pobox.com> | 2008-08-14 20:35:23 +0100 |
commit | bef2caf5e49dbcf6b926d01cfb0948dedee49c93 (patch) | |
tree | b4861e64633b81094c1ae96630136000de0b7505 /csharp/ProtocolBuffers/AbstractBuilder.cs | |
parent | 5d7adf66ceb531be50cec1963ecdf271f5fc591e (diff) | |
download | protobuf-bef2caf5e49dbcf6b926d01cfb0948dedee49c93.tar.gz protobuf-bef2caf5e49dbcf6b926d01cfb0948dedee49c93.tar.bz2 protobuf-bef2caf5e49dbcf6b926d01cfb0948dedee49c93.zip |
Added DynamicMessage and ExtendableBuilder, along with the first supporting tests.
Diffstat (limited to 'csharp/ProtocolBuffers/AbstractBuilder.cs')
-rw-r--r-- | csharp/ProtocolBuffers/AbstractBuilder.cs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/csharp/ProtocolBuffers/AbstractBuilder.cs b/csharp/ProtocolBuffers/AbstractBuilder.cs index 256975e9..d65c0911 100644 --- a/csharp/ProtocolBuffers/AbstractBuilder.cs +++ b/csharp/ProtocolBuffers/AbstractBuilder.cs @@ -8,6 +8,7 @@ using System.IO; namespace Google.ProtocolBuffers { /// <summary> /// Implementation of the non-generic IMessage interface as far as possible. + /// TODO(jonskeet): Make this generic, to avoid so much casting in DynamicMessage. /// </summary> public abstract class AbstractBuilder : IBuilder { #region Unimplemented members of IBuilder @@ -57,7 +58,7 @@ namespace Google.ProtocolBuffers { } #endregion - public IBuilder Clear() { + public virtual IBuilder Clear() { foreach(FieldDescriptor field in AllFields.Keys) { ClearFieldImpl(field); } @@ -168,5 +169,15 @@ namespace Google.ProtocolBuffers { } public abstract UnknownFieldSet UnknownFields { get; set; } + + public IBuilder SetField(FieldDescriptor field, object value) { + this[field] = value; + return this; + } + + public IBuilder SetRepeatedField(FieldDescriptor field, int index, object value) { + this[field, index] = value; + return this; + } } } |