From e38294a62d7f37c0661273a9a26fda16d557423f Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Tue, 9 Jun 2015 19:30:44 +0100 Subject: First pass at the mutable API. Quite a bit more to do - in particular, it's pretty slow right now. --- csharp/src/ProtocolBuffers/ExtendableBuilder.cs | 212 ------------------------ 1 file changed, 212 deletions(-) delete mode 100644 csharp/src/ProtocolBuffers/ExtendableBuilder.cs (limited to 'csharp/src/ProtocolBuffers/ExtendableBuilder.cs') diff --git a/csharp/src/ProtocolBuffers/ExtendableBuilder.cs b/csharp/src/ProtocolBuffers/ExtendableBuilder.cs deleted file mode 100644 index 62508e02..00000000 --- a/csharp/src/ProtocolBuffers/ExtendableBuilder.cs +++ /dev/null @@ -1,212 +0,0 @@ -#region Copyright notice and license - -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// http://github.com/jskeet/dotnet-protobufs/ -// Original C++/Java/Python code: -// http://code.google.com/p/protobuf/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#endregion - -using System; -using System.Collections.Generic; -using Google.ProtocolBuffers.Descriptors; - -namespace Google.ProtocolBuffers -{ - public abstract partial class ExtendableBuilder : GeneratedBuilder - where TMessage : ExtendableMessage - where TBuilder : GeneratedBuilder, new() - { - protected ExtendableBuilder() - { - } - - /// - /// Checks if a singular extension is present - /// - public bool HasExtension(GeneratedExtensionBase extension) - { - return MessageBeingBuilt.HasExtension(extension); - } - - /// - /// Returns the number of elements in a repeated extension. - /// - public int GetExtensionCount(GeneratedExtensionBase> extension) - { - return MessageBeingBuilt.GetExtensionCount(extension); - } - - /// - /// Returns the value of an extension. - /// - public TExtension GetExtension(GeneratedExtensionBase extension) - { - return MessageBeingBuilt.GetExtension(extension); - } - - /// - /// Returns one element of a repeated extension. - /// - public TExtension GetExtension(GeneratedExtensionBase> extension, int index) - { - return MessageBeingBuilt.GetExtension(extension, index); - } - - /// - /// Sets the value of an extension. - /// - public TBuilder SetExtension(GeneratedExtensionBase extension, TExtension value) - { - ExtendableMessage message = MessageBeingBuilt; - message.VerifyExtensionContainingType(extension); - message.Extensions[extension.Descriptor] = extension.ToReflectionType(value); - return ThisBuilder; - } - - /// - /// Sets the value of one element of a repeated extension. - /// - public TBuilder SetExtension(GeneratedExtensionBase> extension, int index, - TExtension value) - { - ExtendableMessage message = MessageBeingBuilt; - message.VerifyExtensionContainingType(extension); - message.Extensions[extension.Descriptor, index] = extension.SingularToReflectionType(value); - return ThisBuilder; - } - - /// - /// Appends a value to a repeated extension. - /// - public TBuilder AddExtension(GeneratedExtensionBase> extension, TExtension value) - { - ExtendableMessage message = MessageBeingBuilt; - message.VerifyExtensionContainingType(extension); - message.Extensions.AddRepeatedField(extension.Descriptor, extension.SingularToReflectionType(value)); - return ThisBuilder; - } - - /// - /// Clears an extension. - /// - public TBuilder ClearExtension(GeneratedExtensionBase extension) - { - ExtendableMessage message = MessageBeingBuilt; - message.VerifyExtensionContainingType(extension); - message.Extensions.ClearField(extension.Descriptor); - return ThisBuilder; - } - - /// - /// Called by subclasses to parse an unknown field or an extension. - /// - /// true unless the tag is an end-group tag - protected override bool ParseUnknownField(ICodedInputStream input, UnknownFieldSet.Builder unknownFields, - ExtensionRegistry extensionRegistry, uint tag, string fieldName) - { - return unknownFields.MergeFieldFrom(input, extensionRegistry, this, tag, fieldName); - } - - // --------------------------------------------------------------- - // Reflection - - - public override object this[FieldDescriptor field, int index] - { - set - { - if (field.IsExtension) - { - ExtendableMessage message = MessageBeingBuilt; - message.VerifyContainingType(field); - message.Extensions[field, index] = value; - } - else - { - base[field, index] = value; - } - } - } - - - public override object this[FieldDescriptor field] - { - set - { - if (field.IsExtension) - { - ExtendableMessage message = MessageBeingBuilt; - message.VerifyContainingType(field); - message.Extensions[field] = value; - } - else - { - base[field] = value; - } - } - } - - public override TBuilder ClearField(FieldDescriptor field) - { - if (field.IsExtension) - { - ExtendableMessage message = MessageBeingBuilt; - message.VerifyContainingType(field); - message.Extensions.ClearField(field); - return ThisBuilder; - } - else - { - return base.ClearField(field); - } - } - - public override TBuilder AddRepeatedField(FieldDescriptor field, object value) - { - if (field.IsExtension) - { - ExtendableMessage message = MessageBeingBuilt; - message.VerifyContainingType(field); - message.Extensions.AddRepeatedField(field, value); - return ThisBuilder; - } - else - { - return base.AddRepeatedField(field, value); - } - } - - protected void MergeExtensionFields(ExtendableMessage other) - { - MessageBeingBuilt.Extensions.MergeFrom(other.Extensions); - } - } -} \ No newline at end of file -- cgit v1.2.3