diff --git a/ProtocolBuffers.build b/ProtocolBuffers.build index 85ab60079c..338edf0484 100644 --- a/ProtocolBuffers.build +++ b/ProtocolBuffers.build @@ -151,6 +151,7 @@ + @@ -188,6 +189,7 @@ + diff --git a/protos/extest/unittest_extras_full.proto b/protos/extest/unittest_extras_full.proto new file mode 100644 index 0000000000..ec0595b2a0 --- /dev/null +++ b/protos/extest/unittest_extras_full.proto @@ -0,0 +1,49 @@ +// Additional options required for C# generation. File from copyright +// line onwards is as per original distribution. +import "google/protobuf/csharp_options.proto"; +option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos"; +option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasFullProtoFile"; + +package protobuf_unittest_extra; + +option optimize_for = CODE_SIZE; + +option java_package = "com.google.protobuf"; + +message TestInteropPerson { + required string name = 1; + required int32 id = 2; + optional string email = 3; + repeated int32 codes = 10 [packed=true]; + + enum PhoneType { + MOBILE = 0; + HOME = 1; + WORK = 2; + } + + message PhoneNumber { + required string number = 1; + optional PhoneType type = 2 [default = HOME]; + } + + repeated PhoneNumber phone = 4; + + repeated group Addresses = 5 { + required string address = 1; + optional string address2 = 2; + required string city = 3; + required string state = 4; + required fixed32 zip = 5; + } + + extensions 100 to 199; +} + +message TestInteropEmployeeId { + required string number = 1; +} + +extend TestInteropPerson { + required TestInteropEmployeeId employee_id = 126; +} diff --git a/protos/extest/unittest_extras_lite.proto b/protos/extest/unittest_extras_lite.proto index 0b7d100a8a..46d5ab91bb 100644 --- a/protos/extest/unittest_extras_lite.proto +++ b/protos/extest/unittest_extras_lite.proto @@ -16,8 +16,46 @@ message TestRequiredLite { } enum ExtraEnum { - DEFAULT = 1; + DEFAULT = 10; EXLITE_FOO = 7; EXLITE_BAR = 8; EXLITE_BAZ = 9; } + +message TestInteropPersonLite { + required string name = 1; + required int32 id = 2; + optional string email = 3; + repeated int32 codes = 10 [packed=true]; + + enum PhoneType { + MOBILE = 0; + HOME = 1; + WORK = 2; + } + + message PhoneNumber { + required string number = 1; + optional PhoneType type = 2 [default = HOME]; + } + + repeated PhoneNumber phone = 4; + + repeated group Addresses = 5 { + required string address = 1; + optional string address2 = 2; + required string city = 3; + required string state = 4; + required fixed32 zip = 5; + } + + extensions 100 to 199; +} + +message TestInteropEmployeeIdLite { + required string number = 1; +} + +extend TestInteropPersonLite { + required TestInteropEmployeeIdLite employee_id_lite = 126; +} diff --git a/src/ProtoGen/ExtensionGenerator.cs b/src/ProtoGen/ExtensionGenerator.cs index e0860ad807..6e142a661f 100644 --- a/src/ProtoGen/ExtensionGenerator.cs +++ b/src/ProtoGen/ExtensionGenerator.cs @@ -70,6 +70,9 @@ namespace Google.ProtocolBuffers.ProtoGen { writer.WriteLine("public const int {0} = {1};", GetFieldConstantName(Descriptor), Descriptor.FieldNumber); if (UseLiteRuntime) { + if (Descriptor.MappedType == MappedType.Message && Descriptor.MessageType.Options.MessageSetWireFormat) { + throw new ArgumentException("option message_set_wire_format = true; is not supported in Lite runtime extensions."); + } if (!Descriptor.IsCLSCompliant && Descriptor.File.CSharpOptions.ClsCompliance) { writer.WriteLine("[global::System.CLSCompliant(false)]"); } diff --git a/src/ProtocolBuffers.Test/ExtendableMessageTest.cs b/src/ProtocolBuffers.Test/ExtendableMessageTest.cs index ab04ef0a5f..6ec0cf16d7 100644 --- a/src/ProtocolBuffers.Test/ExtendableMessageTest.cs +++ b/src/ProtocolBuffers.Test/ExtendableMessageTest.cs @@ -42,6 +42,11 @@ namespace Google.ProtocolBuffers { [TestFixture] public class ExtendableMessageTest { + [Test, ExpectedException(typeof(ArgumentException))] + public void ExtensionWriterInvalidExtension() { + TestPackedExtensions.CreateBuilder()[UnitTestProtoFile.OptionalForeignMessageExtension.Descriptor] = + ForeignMessage.DefaultInstance; + } [Test] public void ExtensionWriterTest() { diff --git a/src/ProtocolBuffers.sln b/src/ProtocolBuffers.sln index 9b6cd38246..182c92f7cb 100644 --- a/src/ProtocolBuffers.sln +++ b/src/ProtocolBuffers.sln @@ -38,6 +38,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unittest", "unittest", "{C8 ..\protos\google\protobuf\unittest_embed_optimize_for.proto = ..\protos\google\protobuf\unittest_embed_optimize_for.proto ..\protos\google\protobuf\unittest_empty.proto = ..\protos\google\protobuf\unittest_empty.proto ..\protos\google\protobuf\unittest_enormous_descriptor.proto = ..\protos\google\protobuf\unittest_enormous_descriptor.proto + ..\protos\extest\unittest_extras_full.proto = ..\protos\extest\unittest_extras_full.proto ..\protos\extest\unittest_extras_lite.proto = ..\protos\extest\unittest_extras_lite.proto ..\protos\google\protobuf\unittest_import.proto = ..\protos\google\protobuf\unittest_import.proto ..\protos\google\protobuf\unittest_import_lite.proto = ..\protos\google\protobuf\unittest_import_lite.proto diff --git a/src/ProtocolBuffers/GeneratedExtensionLite.cs b/src/ProtocolBuffers/GeneratedExtensionLite.cs index a26088f815..81d8d41bd6 100644 --- a/src/ProtocolBuffers/GeneratedExtensionLite.cs +++ b/src/ProtocolBuffers/GeneratedExtensionLite.cs @@ -82,7 +82,9 @@ namespace Google.ProtocolBuffers { get { return true; } } -#warning ToDo - Discover the meaning and purpose of this durring serialization and return the correct value + /// + /// This is not supported and assertions are made to ensure this does not exist on extensions of Lite types + /// public bool MessageSetWireFormat { get { return false; } } diff --git a/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs b/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs index c7836d4e1c..e5e278a481 100644 --- a/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs +++ b/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs @@ -71,24 +71,128 @@ namespace Google.ProtocolBuffers { } [Test] - public void TestIBuilderLiteWeakMergeFromByteString() { + public void TestBuilderLiteMergeFromCodedInputStream() { TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() .SetOptionalString("Should be merged.").Build(); copy = TestAllTypesLite.DefaultInstance; Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); - copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString()).WeakBuild(); + copy = copy.ToBuilder().MergeFrom(CodedInputStream.CreateInstance(new MemoryStream(msg.ToByteArray()))).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestBuilderLiteMergeDelimitedFrom() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalString("Should be merged.").Build(); + + copy = TestAllTypesLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + Stream s = new MemoryStream(); + msg.WriteDelimitedTo(s); + s.Position = 0; + copy = copy.ToBuilder().MergeDelimitedFrom(s).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestBuilderLiteMergeDelimitedFromExtensions() { + TestAllExtensionsLite copy, msg = TestAllExtensionsLite.CreateBuilder() + .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Should be merged.").Build(); + + copy = TestAllExtensionsLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + Stream s = new MemoryStream(); + msg.WriteDelimitedTo(s); + s.Position = 0; + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestLiteProtoFile.RegisterAllExtensions(registry); + + copy = copy.ToBuilder().MergeDelimitedFrom(s, registry).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + Assert.AreEqual("Should be merged.", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite)); + } + + [Test] + public void TestBuilderLiteMergeFromStream() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalString("Should be merged.").Build(); + + copy = TestAllTypesLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + Stream s = new MemoryStream(); + msg.WriteTo(s); + s.Position = 0; + copy = copy.ToBuilder().MergeFrom(s).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestBuilderLiteMergeFromStreamExtensions() { + TestAllExtensionsLite copy, msg = TestAllExtensionsLite.CreateBuilder() + .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Should be merged.").Build(); + + copy = TestAllExtensionsLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + Stream s = new MemoryStream(); + msg.WriteTo(s); + s.Position = 0; + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestLiteProtoFile.RegisterAllExtensions(registry); + + copy = copy.ToBuilder().MergeFrom(s, registry).Build(); Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + Assert.AreEqual("Should be merged.", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite)); + } + + [Test] + public void TestIBuilderLiteWeakMergeFromIMessageLite() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalString("Should be merged.").Build(); - //again with extension registry copy = TestAllTypesLite.DefaultInstance; Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); - copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), ExtensionRegistry.Empty).WeakBuild(); + copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom((IMessageLite)msg).WeakBuild(); Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); } + [Test] + public void TestIBuilderLiteWeakMergeFromByteString() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalString("Should be merged.").Build(); + + copy = TestAllTypesLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString()).WeakBuild(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestIBuilderLiteWeakMergeFromByteStringExtensions() { + TestAllExtensionsLite copy, msg = TestAllExtensionsLite.CreateBuilder() + .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Should be merged.").Build(); + + copy = TestAllExtensionsLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + copy = (TestAllExtensionsLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), ExtensionRegistry.Empty).WeakBuild(); + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestLiteProtoFile.RegisterAllExtensions(registry); + + copy = (TestAllExtensionsLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), registry).WeakBuild(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + Assert.AreEqual("Should be merged.", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite)); + } + [Test] public void TestIBuilderLiteWeakMergeFromCodedInputStream() { TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() @@ -147,5 +251,18 @@ namespace Google.ProtocolBuffers { Assert.IsTrue(ReferenceEquals(TestRequiredLite.DefaultInstance, ((IBuilderLite)TestRequiredLite.CreateBuilder()).WeakDefaultInstanceForType)); } + + [Test] + public void TestGeneratedBuilderLiteAddRange() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalUint32(123) + .AddRepeatedInt32(1) + .AddRepeatedInt32(2) + .AddRepeatedInt32(3) + .Build(); + + copy = msg.DefaultInstanceForType.ToBuilder().MergeFrom(msg).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } } } diff --git a/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs b/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs new file mode 100644 index 0000000000..2cd8781644 --- /dev/null +++ b/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs @@ -0,0 +1,126 @@ +#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 System.IO; +using Google.ProtocolBuffers; +using Google.ProtocolBuffers.TestProtos; +using NUnit.Framework; + +namespace Google.ProtocolBuffers { + [TestFixture] + public class AbstractMessageLiteTest { + + [Test] + public void TestMessageLiteToByteString() { + TestRequiredLite msg = TestRequiredLite.CreateBuilder() + .SetD(42) + .SetEn(ExtraEnum.EXLITE_BAZ) + .Build(); + + ByteString b = msg.ToByteString(); + Assert.AreEqual(4, b.Length); + Assert.AreEqual(TestRequiredLite.DFieldNumber << 3, b[0]); + Assert.AreEqual(42, b[1]); + Assert.AreEqual(TestRequiredLite.EnFieldNumber << 3, b[2]); + Assert.AreEqual((int)ExtraEnum.EXLITE_BAZ, b[3]); + } + + [Test] + public void TestMessageLiteToByteArray() { + TestRequiredLite msg = TestRequiredLite.CreateBuilder() + .SetD(42) + .SetEn(ExtraEnum.EXLITE_BAZ) + .Build(); + + ByteString b = msg.ToByteString(); + ByteString copy = ByteString.CopyFrom(msg.ToByteArray()); + Assert.AreEqual(b, copy); + } + + [Test] + public void TestMessageLiteWriteTo() { + TestRequiredLite msg = TestRequiredLite.CreateBuilder() + .SetD(42) + .SetEn(ExtraEnum.EXLITE_BAZ) + .Build(); + + MemoryStream ms = new MemoryStream(); + msg.WriteTo(ms); + Assert.AreEqual(msg.ToByteArray(), ms.ToArray()); + } + + [Test] + public void TestMessageLiteWriteDelimitedTo() { + TestRequiredLite msg = TestRequiredLite.CreateBuilder() + .SetD(42) + .SetEn(ExtraEnum.EXLITE_BAZ) + .Build(); + + MemoryStream ms = new MemoryStream(); + msg.WriteDelimitedTo(ms); + byte[] buffer = ms.ToArray(); + + Assert.AreEqual(5, buffer.Length); + Assert.AreEqual(4, buffer[0]); + byte[] msgBytes = new byte[4]; + Array.Copy(buffer, 1, msgBytes, 0, 4); + Assert.AreEqual(msg.ToByteArray(), msgBytes); + } + + [Test] + public void TestIMessageLiteWeakCreateBuilderForType() { + IMessageLite msg = TestRequiredLite.DefaultInstance; + Assert.AreEqual(typeof(TestRequiredLite.Builder), msg.WeakCreateBuilderForType().GetType()); + } + + [Test] + public void TestMessageLiteWeakToBuilder() { + IMessageLite msg = TestRequiredLite.CreateBuilder() + .SetD(42) + .SetEn(ExtraEnum.EXLITE_BAZ) + .Build(); + + IMessageLite copy = msg.WeakToBuilder().WeakBuild(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestMessageLiteWeakDefaultInstanceForType() { + IMessageLite msg = TestRequiredLite.DefaultInstance; + Assert.IsTrue(Object.ReferenceEquals(TestRequiredLite.DefaultInstance, msg.WeakDefaultInstanceForType)); + } + } +} diff --git a/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs b/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs index 0b12d25fc9..86b8f11525 100644 --- a/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs +++ b/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs @@ -43,6 +43,52 @@ namespace Google.ProtocolBuffers { [TestFixture] public class ExtendableMessageLiteTest { + [Test, Ignore("Not implemented, no assertion made"), ExpectedException(typeof(ArgumentException))] + public void ExtensionWriterInvalidExtension() { + TestPackedExtensionsLite.CreateBuilder()[UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite.Descriptor] = + ForeignMessageLite.DefaultInstance; + } + + [Test] + public void ExtensionWriterTestMessages() { + TestAllExtensionsLite.Builder b = TestAllExtensionsLite.CreateBuilder().SetExtension( + UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite, ForeignMessageLite.CreateBuilder().SetC(123).Build()); + TestAllExtensionsLite copy, msg = b.Build(); + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestLiteProtoFile.RegisterAllExtensions(registry); + + copy = TestAllExtensionsLite.ParseFrom(msg.ToByteArray(), registry); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void ExtensionWriterIsInitialized() { + Assert.IsTrue(ForeignMessageLite.DefaultInstance.IsInitialized); + Assert.IsTrue(TestPackedExtensionsLite.CreateBuilder().IsInitialized); + Assert.IsTrue(TestAllExtensionsLite.CreateBuilder().SetExtension( + UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite, ForeignMessageLite.DefaultInstance) + .IsInitialized); + } + + [Test] + public void ExtensionWriterTestSetExtensionLists() { + TestAllExtensionsLite msg, copy; + TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder() + .SetExtension(UnitTestLiteProtoFile.RepeatedBoolExtensionLite, new[] { true, false }) + .SetExtension(UnitTestLiteProtoFile.RepeatedCordExtensionLite, new[] { "123", "456" }) + .SetExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, new[] { ForeignEnumLite.FOREIGN_LITE_BAZ, ForeignEnumLite.FOREIGN_LITE_FOO }) + ; + + msg = builder.Build(); + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestLiteProtoFile.RegisterAllExtensions(registry); + + copy = TestAllExtensionsLite.ParseFrom(msg.ToByteArray(), registry); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + + Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_FOO, copy.GetExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, 1)); + } [Test] public void ExtensionWriterTest() { @@ -184,121 +230,75 @@ namespace Google.ProtocolBuffers { Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.RepeatedUint64ExtensionLite, 0)); } - - - /* - [Test] - public void ExtensionWriterTest() { - TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder() - .SetExtension(UnitTestLiteProtoFile.DefaultBoolExtensionLite, true) - .SetExtension(UnitTestLiteProtoFile.DefaultBytesExtensionLite, ByteString.CopyFromUtf8("123")) - .SetExtension(UnitTestLiteProtoFile.DefaultCordExtensionLite, "123") - .SetExtension(UnitTestLiteProtoFile.DefaultDoubleExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultFixed32ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.DefaultFixed64ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.DefaultFloatExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_FOO) - .SetExtension(UnitTestLiteProtoFile.DefaultImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ) - .SetExtension(UnitTestLiteProtoFile.DefaultInt32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultInt64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO) - .SetExtension(UnitTestLiteProtoFile.DefaultSfixed32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultSfixed64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultSint32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultSint64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultStringExtensionLite, "123") - .SetExtension(UnitTestLiteProtoFile.DefaultStringPieceExtensionLite, "123") - .SetExtension(UnitTestLiteProtoFile.DefaultUint32ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.DefaultUint64ExtensionLite, 123u) - //Optional - .SetExtension(UnitTestLiteProtoFile.OptionalBoolExtensionLite, true) - .SetExtension(UnitTestLiteProtoFile.OptionalBytesExtensionLite, ByteString.CopyFromUtf8("123")) - .SetExtension(UnitTestLiteProtoFile.OptionalCordExtensionLite, "123") - .SetExtension(UnitTestLiteProtoFile.OptionalDoubleExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.OptionalFixed32ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.OptionalFixed64ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.OptionalFloatExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.OptionalForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_FOO) - .SetExtension(UnitTestLiteProtoFile.OptionalImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ) - .SetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.OptionalInt64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.OptionalNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO) - .SetExtension(UnitTestLiteProtoFile.OptionalSfixed32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.OptionalSfixed64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.OptionalSint32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.OptionalSint64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "123") - .SetExtension(UnitTestLiteProtoFile.OptionalStringPieceExtensionLite, "123") - .SetExtension(UnitTestLiteProtoFile.OptionalUint32ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.OptionalUint64ExtensionLite, 123u) - //Repeated - .AddExtension(UnitTestLiteProtoFile.RepeatedBoolExtensionLite, true) - .AddExtension(UnitTestLiteProtoFile.RepeatedBytesExtensionLite, ByteString.CopyFromUtf8("123")) - .AddExtension(UnitTestLiteProtoFile.RepeatedCordExtensionLite, "123") - .AddExtension(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite, 123) - .AddExtension(UnitTestLiteProtoFile.RepeatedFixed32ExtensionLite, 123u) - .AddExtension(UnitTestLiteProtoFile.RepeatedFixed64ExtensionLite, 123u) - .AddExtension(UnitTestLiteProtoFile.RepeatedFloatExtensionLite, 123) - .AddExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_FOO) - .AddExtension(UnitTestLiteProtoFile.RepeatedImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ) - .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 123) - .AddExtension(UnitTestLiteProtoFile.RepeatedInt64ExtensionLite, 123) - .AddExtension(UnitTestLiteProtoFile.RepeatedNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO) - .AddExtension(UnitTestLiteProtoFile.RepeatedSfixed32ExtensionLite, 123) - .AddExtension(UnitTestLiteProtoFile.RepeatedSfixed64ExtensionLite, 123) - .AddExtension(UnitTestLiteProtoFile.RepeatedSint32ExtensionLite, 123) - .AddExtension(UnitTestLiteProtoFile.RepeatedSint64ExtensionLite, 123) - .AddExtension(UnitTestLiteProtoFile.RepeatedStringExtensionLite, "123") - .AddExtension(UnitTestLiteProtoFile.RepeatedStringPieceExtensionLite, "123") - .AddExtension(UnitTestLiteProtoFile.RepeatedUint32ExtensionLite, 123u) - .AddExtension(UnitTestLiteProtoFile.RepeatedUint64ExtensionLite, 123u) - ; - builder = TestAllExtensionsLite.CreateBuilder() - .SetExtension(UnitTestLiteProtoFile.DefaultBoolExtensionLite, true) - .SetExtension(UnitTestLiteProtoFile.DefaultBytesExtensionLite, ByteString.CopyFromUtf8("123")) - .SetExtension(UnitTestLiteProtoFile.DefaultCordExtensionLite, "123") - .SetExtension(UnitTestLiteProtoFile.DefaultDoubleExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultFixed32ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.DefaultFixed64ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.DefaultFloatExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_FOO) - .SetExtension(UnitTestLiteProtoFile.DefaultImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ) - .SetExtension(UnitTestLiteProtoFile.DefaultInt32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultInt64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO) - .SetExtension(UnitTestLiteProtoFile.DefaultSfixed32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultSfixed64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultSint32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultSint64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.DefaultStringExtensionLite, "123") - .SetExtension(UnitTestLiteProtoFile.DefaultStringPieceExtensionLite, "123") - .SetExtension(UnitTestLiteProtoFile.DefaultUint32ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.DefaultUint64ExtensionLite, 123u) - ; + public void ExtensionWriterTestPacked() { - TestAllExtensionsLite msg = builder.Build(); - byte[] data = msg.ToByteArray(); - TestAllExtensionsLite.Builder copyBuilder = TestAllExtensionsLite.CreateBuilder().MergeFrom(data); - TestAllExtensionsLite copy = copyBuilder.Build(); + TestPackedExtensionsLite.Builder builder = TestPackedExtensionsLite.CreateBuilder() + .AddExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, true) + .AddExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 123u) + .AddExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 123u) + .AddExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 123u) + .AddExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 123u) + .AddExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, true) + .AddExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 123u) + .AddExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 123u) + .AddExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 123) + .AddExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 123u) + .AddExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 123u); + + TestPackedExtensionsLite msg = builder.Build(); + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestLiteProtoFile.RegisterAllExtensions(registry); + + TestPackedExtensionsLite.Builder copyBuilder = TestPackedExtensionsLite.CreateBuilder().MergeFrom(msg.ToByteArray(), registry); + TestPackedExtensionsLite copy = copyBuilder.Build(); Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + + Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, 0)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 0)); + Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 0)); + Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 0)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 0)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 0)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 0)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 0)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 0)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 0)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 0)); + Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 0)); + Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 0)); + + Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, 1)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 1)); + Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 1)); + Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 1)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 1)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 1)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 1)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 1)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 1)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 1)); + Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 1)); + Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 1)); + Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 1)); + } - * - //Packed - .SetExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, true) - .SetExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 123) - .SetExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 123u) - .SetExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 123u) - */ } } diff --git a/src/ProtocolBuffersLite.Test/InteropLiteTest.cs b/src/ProtocolBuffersLite.Test/InteropLiteTest.cs new file mode 100644 index 0000000000..30d696dac6 --- /dev/null +++ b/src/ProtocolBuffersLite.Test/InteropLiteTest.cs @@ -0,0 +1,115 @@ +#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; +using Google.ProtocolBuffers.TestProtos; +using NUnit.Framework; + +namespace Google.ProtocolBuffers { + [TestFixture] + public class InteropLiteTest { + + [Test] + public void TestConvertFromFullMinimal() { + TestInteropPerson person = TestInteropPerson.CreateBuilder() + .SetId(123) + .SetName("abc") + .Build(); + Assert.IsTrue(person.IsInitialized); + + TestInteropPersonLite copy = TestInteropPersonLite.ParseFrom(person.ToByteArray()); + + Assert.AreEqual(person.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestConvertFromFullComplete() { + TestInteropPerson person = TestInteropPerson.CreateBuilder() + .SetId(123) + .SetName("abc") + .SetEmail("abc@123.com") + .AddRangeCodes(new[] { 1, 2, 3 }) + .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build()) + .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-5678").Build()) + .AddAddresses(TestInteropPerson.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland").SetState("NA").SetZip(12345).Build()) + .SetExtension(UnitTestExtrasFullProtoFile.EmployeeId, TestInteropEmployeeId.CreateBuilder().SetNumber("123").Build()) + .Build(); + Assert.IsTrue(person.IsInitialized); + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestExtrasLiteProtoFile.RegisterAllExtensions(registry); + + TestInteropPersonLite copy = TestInteropPersonLite.ParseFrom(person.ToByteArray(), registry); + + Assert.AreEqual(person.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestConvertFromLiteMinimal() { + TestInteropPersonLite person = TestInteropPersonLite.CreateBuilder() + .SetId(123) + .SetName("abc") + .Build(); + Assert.IsTrue(person.IsInitialized); + + TestInteropPerson copy = TestInteropPerson.ParseFrom(person.ToByteArray()); + + Assert.AreEqual(person.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestConvertFromLiteComplete() { + TestInteropPersonLite person = TestInteropPersonLite.CreateBuilder() + .SetId(123) + .SetName("abc") + .SetEmail("abc@123.com") + .AddRangeCodes(new[] { 1, 2, 3 }) + .AddPhone(TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build()) + .AddPhone(TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber("555-5678").Build()) + .AddAddresses(TestInteropPersonLite.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland").SetState("NA").SetZip(12345).Build()) + .SetExtension(UnitTestExtrasLiteProtoFile.EmployeeIdLite, TestInteropEmployeeIdLite.CreateBuilder().SetNumber("123").Build()) + .Build(); + Assert.IsTrue(person.IsInitialized); + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestExtrasFullProtoFile.RegisterAllExtensions(registry); + + TestInteropPerson copy = TestInteropPerson.ParseFrom(person.ToByteArray(), registry); + + Assert.AreEqual(person.ToByteArray(), copy.ToByteArray()); + } + } +} diff --git a/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj b/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj index d9af58011b..fdbf3c41ad 100644 --- a/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj +++ b/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj @@ -58,6 +58,7 @@ Properties\AssemblyInfo.cs + diff --git a/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj b/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj new file mode 100644 index 0000000000..8e8c89e672 --- /dev/null +++ b/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj @@ -0,0 +1,97 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {EEFFED24-3750-4567-9A23-1DB676A15610} + Library + Properties + Google.ProtocolBuffers + Google.ProtocolBuffersMixedLite.Test + v2.0 + 512 + true + ..\ProtocolBuffers.Test\Properties\Google.ProtocolBuffers.Test.snk + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + bin\Silverlight2\ + TRACE + true + pdbonly + AnyCPU + prompt + + + + False + ..\..\lib\nunit.framework.dll + + + False + ..\..\lib\Rhino.Mocks.dll + + + + + + + + Properties\AssemblyInfo.cs + + + TestProtos\FIXUP.cs + + + + + + + + + + + + + + + + + + + Properties\Google.ProtocolBuffers.Test.snk + + + + + {6908BDCE-D925-43F3-94AC-A531E6DF2591} + ProtocolBuffers + + + + + \ No newline at end of file diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs new file mode 100644 index 0000000000..4c37d345a6 --- /dev/null +++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs @@ -0,0 +1,976 @@ +// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT! + +using pb = global::Google.ProtocolBuffers; +using pbc = global::Google.ProtocolBuffers.Collections; +using pbd = global::Google.ProtocolBuffers.Descriptors; +using scg = global::System.Collections.Generic; +namespace Google.ProtocolBuffers.TestProtos { + + public static partial class UnitTestExtrasFullProtoFile { + + #region Extension registration + public static void RegisterAllExtensions(pb::ExtensionRegistry registry) { + registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.EmployeeId); + } + #endregion + #region Extensions + public const int EmployeeIdFieldNumber = 126; + public static pb::GeneratedExtensionBase EmployeeId; + #endregion + + #region Static variables + internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor; + internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_extra_TestInteropPerson__FieldAccessorTable; + internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor; + internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__FieldAccessorTable; + internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor; + internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__FieldAccessorTable; + internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor; + internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_extra_TestInteropEmployeeId__FieldAccessorTable; + #endregion + #region Descriptor + public static pbd::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbd::FileDescriptor descriptor; + + static UnitTestExtrasFullProtoFile() { + byte[] descriptorData = global::System.Convert.FromBase64String( + "CiFleHRlc3QvdW5pdHRlc3RfZXh0cmFzX2Z1bGwucHJvdG8SF3Byb3RvYnVm" + + "X3VuaXR0ZXN0X2V4dHJhGiRnb29nbGUvcHJvdG9idWYvY3NoYXJwX29wdGlv" + + "bnMucHJvdG8i1gMKEVRlc3RJbnRlcm9wUGVyc29uEgwKBG5hbWUYASACKAkS" + + "CgoCaWQYAiACKAUSDQoFZW1haWwYAyABKAkSEQoFY29kZXMYCiADKAVCAhAB" + + "EkUKBXBob25lGAQgAygLMjYucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVz" + + "dEludGVyb3BQZXJzb24uUGhvbmVOdW1iZXISRwoJYWRkcmVzc2VzGAUgAygK" + + "MjQucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVzdEludGVyb3BQZXJzb24u" + + "QWRkcmVzc2VzGmcKC1Bob25lTnVtYmVyEg4KBm51bWJlchgBIAIoCRJICgR0" + + "eXBlGAIgASgOMjQucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVzdEludGVy" + + "b3BQZXJzb24uUGhvbmVUeXBlOgRIT01FGlgKCUFkZHJlc3NlcxIPCgdhZGRy" + + "ZXNzGAEgAigJEhAKCGFkZHJlc3MyGAIgASgJEgwKBGNpdHkYAyACKAkSDQoF" + + "c3RhdGUYBCACKAkSCwoDemlwGAUgAigHIisKCVBob25lVHlwZRIKCgZNT0JJ" + + "TEUQABIICgRIT01FEAESCAoEV09SSxACKgUIZBDIASInChVUZXN0SW50ZXJv" + + "cEVtcGxveWVlSWQSDgoGbnVtYmVyGAEgAigJOm8KC2VtcGxveWVlX2lkEiou" + + "cHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVzdEludGVyb3BQZXJzb24YfiAC" + + "KAsyLi5wcm90b2J1Zl91bml0dGVzdF9leHRyYS5UZXN0SW50ZXJvcEVtcGxv" + + "eWVlSWRCWgoTY29tLmdvb2dsZS5wcm90b2J1ZkgCwj5ACiFHb29nbGUuUHJv" + + "dG9jb2xCdWZmZXJzLlRlc3RQcm90b3MSG1VuaXRUZXN0RXh0cmFzRnVsbFBy" + + "b3RvRmlsZQ=="); + pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) { + descriptor = root; + internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor = Descriptor.MessageTypes[0]; + internal__static_protobuf_unittest_extra_TestInteropPerson__FieldAccessorTable = + new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor, + new string[] { "Name", "Id", "Email", "Codes", "Phone", "Addresses", }); + internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor = internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor.NestedTypes[0]; + internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__FieldAccessorTable = + new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor, + new string[] { "Number", "Type", }); + internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor = internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor.NestedTypes[1]; + internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__FieldAccessorTable = + new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor, + new string[] { "Address", "Address2", "City", "State", "Zip", }); + internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor = Descriptor.MessageTypes[1]; + internal__static_protobuf_unittest_extra_TestInteropEmployeeId__FieldAccessorTable = + new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor, + new string[] { "Number", }); + global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.EmployeeId = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor.Extensions[0]); + pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance(); + RegisterAllExtensions(registry); + global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry); + return registry; + }; + pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData, + new pbd::FileDescriptor[] { + global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor, + }, assigner); + } + #endregion + + } + #region Messages + public sealed partial class TestInteropPerson : pb::ExtendableMessage { + private static readonly TestInteropPerson defaultInstance = new Builder().BuildPartial(); + public static TestInteropPerson DefaultInstance { + get { return defaultInstance; } + } + + public override TestInteropPerson DefaultInstanceForType { + get { return defaultInstance; } + } + + protected override TestInteropPerson ThisMessage { + get { return this; } + } + + public static pbd::MessageDescriptor Descriptor { + get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor; } + } + + protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors { + get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson__FieldAccessorTable; } + } + + #region Nested types + public static class Types { + public enum PhoneType { + MOBILE = 0, + HOME = 1, + WORK = 2, + } + + public sealed partial class PhoneNumber : pb::GeneratedMessage { + private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial(); + public static PhoneNumber DefaultInstance { + get { return defaultInstance; } + } + + public override PhoneNumber DefaultInstanceForType { + get { return defaultInstance; } + } + + protected override PhoneNumber ThisMessage { + get { return this; } + } + + public static pbd::MessageDescriptor Descriptor { + get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor; } + } + + protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors { + get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__FieldAccessorTable; } + } + + public const int NumberFieldNumber = 1; + private bool hasNumber; + private string number_ = ""; + public bool HasNumber { + get { return hasNumber; } + } + public string Number { + get { return number_; } + } + + public const int TypeFieldNumber = 2; + private bool hasType; + private global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType.HOME; + public bool HasType { + get { return hasType; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType Type { + get { return type_; } + } + + public static PhoneNumber ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static PhoneNumber ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static PhoneNumber ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static PhoneNumber ParseFrom(pb::CodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static PhoneNumber ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(PhoneNumber prototype) { + return (Builder) new Builder().MergeFrom(prototype); + } + + public sealed partial class Builder : pb::GeneratedBuilder { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() {} + + PhoneNumber result = new PhoneNumber(); + + protected override PhoneNumber MessageBeingBuilt { + get { return result; } + } + + public override Builder Clear() { + result = new PhoneNumber(); + return this; + } + + public override Builder Clone() { + return new Builder().MergeFrom(result); + } + + public override pbd::MessageDescriptor DescriptorForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Descriptor; } + } + + public override PhoneNumber DefaultInstanceForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.DefaultInstance; } + } + + public override PhoneNumber BuildPartial() { + if (result == null) { + throw new global::System.InvalidOperationException("build() has already been called on this Builder"); + } + PhoneNumber returnMe = result; + result = null; + return returnMe; + } + + + public bool HasNumber { + get { return result.HasNumber; } + } + public string Number { + get { return result.Number; } + set { SetNumber(value); } + } + public Builder SetNumber(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasNumber = true; + result.number_ = value; + return this; + } + public Builder ClearNumber() { + result.hasNumber = false; + result.number_ = ""; + return this; + } + + public bool HasType { + get { return result.HasType; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType Type { + get { return result.Type; } + set { SetType(value); } + } + public Builder SetType(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType value) { + result.hasType = true; + result.type_ = value; + return this; + } + public Builder ClearType() { + result.hasType = false; + result.type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType.HOME; + return this; + } + } + static PhoneNumber() { + object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null); + } + } + + public sealed partial class Addresses : pb::GeneratedMessage { + private static readonly Addresses defaultInstance = new Builder().BuildPartial(); + public static Addresses DefaultInstance { + get { return defaultInstance; } + } + + public override Addresses DefaultInstanceForType { + get { return defaultInstance; } + } + + protected override Addresses ThisMessage { + get { return this; } + } + + public static pbd::MessageDescriptor Descriptor { + get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor; } + } + + protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors { + get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__FieldAccessorTable; } + } + + public const int AddressFieldNumber = 1; + private bool hasAddress; + private string address_ = ""; + public bool HasAddress { + get { return hasAddress; } + } + public string Address { + get { return address_; } + } + + public const int Address2FieldNumber = 2; + private bool hasAddress2; + private string address2_ = ""; + public bool HasAddress2 { + get { return hasAddress2; } + } + public string Address2 { + get { return address2_; } + } + + public const int CityFieldNumber = 3; + private bool hasCity; + private string city_ = ""; + public bool HasCity { + get { return hasCity; } + } + public string City { + get { return city_; } + } + + public const int StateFieldNumber = 4; + private bool hasState; + private string state_ = ""; + public bool HasState { + get { return hasState; } + } + public string State { + get { return state_; } + } + + public const int ZipFieldNumber = 5; + private bool hasZip; + private uint zip_ = 0; + public bool HasZip { + get { return hasZip; } + } + [global::System.CLSCompliant(false)] + public uint Zip { + get { return zip_; } + } + + public static Addresses ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static Addresses ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static Addresses ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static Addresses ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static Addresses ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static Addresses ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Addresses ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static Addresses ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static Addresses ParseFrom(pb::CodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static Addresses ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(Addresses prototype) { + return (Builder) new Builder().MergeFrom(prototype); + } + + public sealed partial class Builder : pb::GeneratedBuilder { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() {} + + Addresses result = new Addresses(); + + protected override Addresses MessageBeingBuilt { + get { return result; } + } + + public override Builder Clear() { + result = new Addresses(); + return this; + } + + public override Builder Clone() { + return new Builder().MergeFrom(result); + } + + public override pbd::MessageDescriptor DescriptorForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Descriptor; } + } + + public override Addresses DefaultInstanceForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.DefaultInstance; } + } + + public override Addresses BuildPartial() { + if (result == null) { + throw new global::System.InvalidOperationException("build() has already been called on this Builder"); + } + Addresses returnMe = result; + result = null; + return returnMe; + } + + + public bool HasAddress { + get { return result.HasAddress; } + } + public string Address { + get { return result.Address; } + set { SetAddress(value); } + } + public Builder SetAddress(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasAddress = true; + result.address_ = value; + return this; + } + public Builder ClearAddress() { + result.hasAddress = false; + result.address_ = ""; + return this; + } + + public bool HasAddress2 { + get { return result.HasAddress2; } + } + public string Address2 { + get { return result.Address2; } + set { SetAddress2(value); } + } + public Builder SetAddress2(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasAddress2 = true; + result.address2_ = value; + return this; + } + public Builder ClearAddress2() { + result.hasAddress2 = false; + result.address2_ = ""; + return this; + } + + public bool HasCity { + get { return result.HasCity; } + } + public string City { + get { return result.City; } + set { SetCity(value); } + } + public Builder SetCity(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasCity = true; + result.city_ = value; + return this; + } + public Builder ClearCity() { + result.hasCity = false; + result.city_ = ""; + return this; + } + + public bool HasState { + get { return result.HasState; } + } + public string State { + get { return result.State; } + set { SetState(value); } + } + public Builder SetState(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasState = true; + result.state_ = value; + return this; + } + public Builder ClearState() { + result.hasState = false; + result.state_ = ""; + return this; + } + + public bool HasZip { + get { return result.HasZip; } + } + [global::System.CLSCompliant(false)] + public uint Zip { + get { return result.Zip; } + set { SetZip(value); } + } + [global::System.CLSCompliant(false)] + public Builder SetZip(uint value) { + result.hasZip = true; + result.zip_ = value; + return this; + } + public Builder ClearZip() { + result.hasZip = false; + result.zip_ = 0; + return this; + } + } + static Addresses() { + object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null); + } + } + + } + #endregion + + public const int NameFieldNumber = 1; + private bool hasName; + private string name_ = ""; + public bool HasName { + get { return hasName; } + } + public string Name { + get { return name_; } + } + + public const int IdFieldNumber = 2; + private bool hasId; + private int id_ = 0; + public bool HasId { + get { return hasId; } + } + public int Id { + get { return id_; } + } + + public const int EmailFieldNumber = 3; + private bool hasEmail; + private string email_ = ""; + public bool HasEmail { + get { return hasEmail; } + } + public string Email { + get { return email_; } + } + + public const int CodesFieldNumber = 10; + private pbc::PopsicleList codes_ = new pbc::PopsicleList(); + public scg::IList CodesList { + get { return pbc::Lists.AsReadOnly(codes_); } + } + public int CodesCount { + get { return codes_.Count; } + } + public int GetCodes(int index) { + return codes_[index]; + } + + public const int PhoneFieldNumber = 4; + private pbc::PopsicleList phone_ = new pbc::PopsicleList(); + public scg::IList PhoneList { + get { return phone_; } + } + public int PhoneCount { + get { return phone_.Count; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber GetPhone(int index) { + return phone_[index]; + } + + public const int AddressesFieldNumber = 5; + private pbc::PopsicleList addresses_ = new pbc::PopsicleList(); + public scg::IList AddressesList { + get { return addresses_; } + } + public int AddressesCount { + get { return addresses_.Count; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses GetAddresses(int index) { + return addresses_[index]; + } + + public static TestInteropPerson ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static TestInteropPerson ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static TestInteropPerson ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static TestInteropPerson ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static TestInteropPerson ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static TestInteropPerson ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static TestInteropPerson ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static TestInteropPerson ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static TestInteropPerson ParseFrom(pb::CodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static TestInteropPerson ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(TestInteropPerson prototype) { + return (Builder) new Builder().MergeFrom(prototype); + } + + public sealed partial class Builder : pb::ExtendableBuilder { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() {} + + TestInteropPerson result = new TestInteropPerson(); + + protected override TestInteropPerson MessageBeingBuilt { + get { return result; } + } + + public override Builder Clear() { + result = new TestInteropPerson(); + return this; + } + + public override Builder Clone() { + return new Builder().MergeFrom(result); + } + + public override pbd::MessageDescriptor DescriptorForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Descriptor; } + } + + public override TestInteropPerson DefaultInstanceForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.DefaultInstance; } + } + + public override TestInteropPerson BuildPartial() { + if (result == null) { + throw new global::System.InvalidOperationException("build() has already been called on this Builder"); + } + result.codes_.MakeReadOnly(); + result.phone_.MakeReadOnly(); + result.addresses_.MakeReadOnly(); + TestInteropPerson returnMe = result; + result = null; + return returnMe; + } + + + public bool HasName { + get { return result.HasName; } + } + public string Name { + get { return result.Name; } + set { SetName(value); } + } + public Builder SetName(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasName = true; + result.name_ = value; + return this; + } + public Builder ClearName() { + result.hasName = false; + result.name_ = ""; + return this; + } + + public bool HasId { + get { return result.HasId; } + } + public int Id { + get { return result.Id; } + set { SetId(value); } + } + public Builder SetId(int value) { + result.hasId = true; + result.id_ = value; + return this; + } + public Builder ClearId() { + result.hasId = false; + result.id_ = 0; + return this; + } + + public bool HasEmail { + get { return result.HasEmail; } + } + public string Email { + get { return result.Email; } + set { SetEmail(value); } + } + public Builder SetEmail(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasEmail = true; + result.email_ = value; + return this; + } + public Builder ClearEmail() { + result.hasEmail = false; + result.email_ = ""; + return this; + } + + public pbc::IPopsicleList CodesList { + get { return result.codes_; } + } + public int CodesCount { + get { return result.CodesCount; } + } + public int GetCodes(int index) { + return result.GetCodes(index); + } + public Builder SetCodes(int index, int value) { + result.codes_[index] = value; + return this; + } + public Builder AddCodes(int value) { + result.codes_.Add(value); + return this; + } + public Builder AddRangeCodes(scg::IEnumerable values) { + base.AddRange(values, result.codes_); + return this; + } + public Builder ClearCodes() { + result.codes_.Clear(); + return this; + } + + public pbc::IPopsicleList PhoneList { + get { return result.phone_; } + } + public int PhoneCount { + get { return result.PhoneCount; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber GetPhone(int index) { + return result.GetPhone(index); + } + public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.phone_[index] = value; + return this; + } + public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + result.phone_[index] = builderForValue.Build(); + return this; + } + public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.phone_.Add(value); + return this; + } + public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + result.phone_.Add(builderForValue.Build()); + return this; + } + public Builder AddRangePhone(scg::IEnumerable values) { + base.AddRange(values, result.phone_); + return this; + } + public Builder ClearPhone() { + result.phone_.Clear(); + return this; + } + + public pbc::IPopsicleList AddressesList { + get { return result.addresses_; } + } + public int AddressesCount { + get { return result.AddressesCount; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses GetAddresses(int index) { + return result.GetAddresses(index); + } + public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.addresses_[index] = value; + return this; + } + public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + result.addresses_[index] = builderForValue.Build(); + return this; + } + public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.addresses_.Add(value); + return this; + } + public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + result.addresses_.Add(builderForValue.Build()); + return this; + } + public Builder AddRangeAddresses(scg::IEnumerable values) { + base.AddRange(values, result.addresses_); + return this; + } + public Builder ClearAddresses() { + result.addresses_.Clear(); + return this; + } + } + static TestInteropPerson() { + object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null); + } + } + + public sealed partial class TestInteropEmployeeId : pb::GeneratedMessage { + private static readonly TestInteropEmployeeId defaultInstance = new Builder().BuildPartial(); + public static TestInteropEmployeeId DefaultInstance { + get { return defaultInstance; } + } + + public override TestInteropEmployeeId DefaultInstanceForType { + get { return defaultInstance; } + } + + protected override TestInteropEmployeeId ThisMessage { + get { return this; } + } + + public static pbd::MessageDescriptor Descriptor { + get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor; } + } + + protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors { + get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropEmployeeId__FieldAccessorTable; } + } + + public const int NumberFieldNumber = 1; + private bool hasNumber; + private string number_ = ""; + public bool HasNumber { + get { return hasNumber; } + } + public string Number { + get { return number_; } + } + + public static TestInteropEmployeeId ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static TestInteropEmployeeId ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static TestInteropEmployeeId ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static TestInteropEmployeeId ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static TestInteropEmployeeId ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static TestInteropEmployeeId ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static TestInteropEmployeeId ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static TestInteropEmployeeId ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static TestInteropEmployeeId ParseFrom(pb::CodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static TestInteropEmployeeId ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(TestInteropEmployeeId prototype) { + return (Builder) new Builder().MergeFrom(prototype); + } + + public sealed partial class Builder : pb::GeneratedBuilder { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() {} + + TestInteropEmployeeId result = new TestInteropEmployeeId(); + + protected override TestInteropEmployeeId MessageBeingBuilt { + get { return result; } + } + + public override Builder Clear() { + result = new TestInteropEmployeeId(); + return this; + } + + public override Builder Clone() { + return new Builder().MergeFrom(result); + } + + public override pbd::MessageDescriptor DescriptorForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.Descriptor; } + } + + public override TestInteropEmployeeId DefaultInstanceForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.DefaultInstance; } + } + + public override TestInteropEmployeeId BuildPartial() { + if (result == null) { + throw new global::System.InvalidOperationException("build() has already been called on this Builder"); + } + TestInteropEmployeeId returnMe = result; + result = null; + return returnMe; + } + + + public bool HasNumber { + get { return result.HasNumber; } + } + public string Number { + get { return result.Number; } + set { SetNumber(value); } + } + public Builder SetNumber(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasNumber = true; + result.number_ = value; + return this; + } + public Builder ClearNumber() { + result.hasNumber = false; + result.number_ = ""; + return this; + } + } + static TestInteropEmployeeId() { + object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null); + } + } + + #endregion + +} diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs index 948d317ba5..07314f8a7a 100644 --- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs +++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs @@ -10,21 +10,35 @@ namespace Google.ProtocolBuffers.TestProtos { #region Extension registration public static void RegisterAllExtensions(pb::ExtensionRegistry registry) { + registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.EmployeeIdLite); } #endregion + #region Extensions + public const int EmployeeIdLiteFieldNumber = 126; + public static pb::GeneratedExtensionLite EmployeeIdLite; + #endregion + #region Static variables #endregion #region Extensions internal static readonly object Descriptor; static UnitTestExtrasLiteProtoFile() { Descriptor = null; + global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.EmployeeIdLite = + new pb::GeneratedExtensionLite( + global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.DefaultInstance, + null, + global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite.DefaultInstance, + null, + global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.EmployeeIdLiteFieldNumber, + pbd::FieldType.Message); } #endregion } #region Enums public enum ExtraEnum { - DEFAULT = 1, + DEFAULT = 10, EXLITE_FOO = 7, EXLITE_BAR = 8, EXLITE_BAZ = 9, @@ -270,6 +284,1297 @@ namespace Google.ProtocolBuffers.TestProtos { } } + public sealed partial class TestInteropPersonLite : pb::ExtendableMessageLite { + private static readonly TestInteropPersonLite defaultInstance = new Builder().BuildPartial(); + public static TestInteropPersonLite DefaultInstance { + get { return defaultInstance; } + } + + public override TestInteropPersonLite DefaultInstanceForType { + get { return defaultInstance; } + } + + protected override TestInteropPersonLite ThisMessage { + get { return this; } + } + + #region Nested types + public static class Types { + public enum PhoneType { + MOBILE = 0, + HOME = 1, + WORK = 2, + } + + public sealed partial class PhoneNumber : pb::GeneratedMessageLite { + private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial(); + public static PhoneNumber DefaultInstance { + get { return defaultInstance; } + } + + public override PhoneNumber DefaultInstanceForType { + get { return defaultInstance; } + } + + protected override PhoneNumber ThisMessage { + get { return this; } + } + + public const int NumberFieldNumber = 1; + private bool hasNumber; + private string number_ = ""; + public bool HasNumber { + get { return hasNumber; } + } + public string Number { + get { return number_; } + } + + public const int TypeFieldNumber = 2; + private bool hasType; + private global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType.HOME; + public bool HasType { + get { return hasType; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType Type { + get { return type_; } + } + + public override bool IsInitialized { + get { + if (!hasNumber) return false; + return true; + } + } + + public override void WriteTo(pb::CodedOutputStream output) { + int size = SerializedSize; + if (HasNumber) { + output.WriteString(1, Number); + } + if (HasType) { + output.WriteEnum(2, (int) Type); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (HasNumber) { + size += pb::CodedOutputStream.ComputeStringSize(1, Number); + } + if (HasType) { + size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type); + } + memoizedSerializedSize = size; + return size; + } + } + + public static PhoneNumber ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static PhoneNumber ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static PhoneNumber ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static PhoneNumber ParseFrom(pb::CodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static PhoneNumber ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(PhoneNumber prototype) { + return (Builder) new Builder().MergeFrom(prototype); + } + + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() {} + + PhoneNumber result = new PhoneNumber(); + + protected override PhoneNumber MessageBeingBuilt { + get { return result; } + } + + public override Builder Clear() { + result = new PhoneNumber(); + return this; + } + + public override Builder Clone() { + return new Builder().MergeFrom(result); + } + + public override PhoneNumber DefaultInstanceForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.DefaultInstance; } + } + + public override PhoneNumber BuildPartial() { + if (result == null) { + throw new global::System.InvalidOperationException("build() has already been called on this Builder"); + } + PhoneNumber returnMe = result; + result = null; + return returnMe; + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is PhoneNumber) { + return MergeFrom((PhoneNumber) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(PhoneNumber other) { + if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.DefaultInstance) return this; + if (other.HasNumber) { + Number = other.Number; + } + if (other.HasType) { + Type = other.Type; + } + return this; + } + + public override Builder MergeFrom(pb::CodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + while (true) { + uint tag = input.ReadTag(); + switch (tag) { + case 0: { + return this; + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag); + break; + } + case 10: { + Number = input.ReadString(); + break; + } + case 16: { + int rawValue = input.ReadEnum(); + if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType), rawValue)) { + } else { + Type = (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType) rawValue; + } + break; + } + } + } + } + + + public bool HasNumber { + get { return result.HasNumber; } + } + public string Number { + get { return result.Number; } + set { SetNumber(value); } + } + public Builder SetNumber(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasNumber = true; + result.number_ = value; + return this; + } + public Builder ClearNumber() { + result.hasNumber = false; + result.number_ = ""; + return this; + } + + public bool HasType { + get { return result.HasType; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType Type { + get { return result.Type; } + set { SetType(value); } + } + public Builder SetType(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType value) { + result.hasType = true; + result.type_ = value; + return this; + } + public Builder ClearType() { + result.hasType = false; + result.type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType.HOME; + return this; + } + } + static PhoneNumber() { + object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.Descriptor, null); + } + } + + public sealed partial class Addresses : pb::GeneratedMessageLite { + private static readonly Addresses defaultInstance = new Builder().BuildPartial(); + public static Addresses DefaultInstance { + get { return defaultInstance; } + } + + public override Addresses DefaultInstanceForType { + get { return defaultInstance; } + } + + protected override Addresses ThisMessage { + get { return this; } + } + + public const int AddressFieldNumber = 1; + private bool hasAddress; + private string address_ = ""; + public bool HasAddress { + get { return hasAddress; } + } + public string Address { + get { return address_; } + } + + public const int Address2FieldNumber = 2; + private bool hasAddress2; + private string address2_ = ""; + public bool HasAddress2 { + get { return hasAddress2; } + } + public string Address2 { + get { return address2_; } + } + + public const int CityFieldNumber = 3; + private bool hasCity; + private string city_ = ""; + public bool HasCity { + get { return hasCity; } + } + public string City { + get { return city_; } + } + + public const int StateFieldNumber = 4; + private bool hasState; + private string state_ = ""; + public bool HasState { + get { return hasState; } + } + public string State { + get { return state_; } + } + + public const int ZipFieldNumber = 5; + private bool hasZip; + private uint zip_ = 0; + public bool HasZip { + get { return hasZip; } + } + [global::System.CLSCompliant(false)] + public uint Zip { + get { return zip_; } + } + + public override bool IsInitialized { + get { + if (!hasAddress) return false; + if (!hasCity) return false; + if (!hasState) return false; + if (!hasZip) return false; + return true; + } + } + + public override void WriteTo(pb::CodedOutputStream output) { + int size = SerializedSize; + if (HasAddress) { + output.WriteString(1, Address); + } + if (HasAddress2) { + output.WriteString(2, Address2); + } + if (HasCity) { + output.WriteString(3, City); + } + if (HasState) { + output.WriteString(4, State); + } + if (HasZip) { + output.WriteFixed32(5, Zip); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (HasAddress) { + size += pb::CodedOutputStream.ComputeStringSize(1, Address); + } + if (HasAddress2) { + size += pb::CodedOutputStream.ComputeStringSize(2, Address2); + } + if (HasCity) { + size += pb::CodedOutputStream.ComputeStringSize(3, City); + } + if (HasState) { + size += pb::CodedOutputStream.ComputeStringSize(4, State); + } + if (HasZip) { + size += pb::CodedOutputStream.ComputeFixed32Size(5, Zip); + } + memoizedSerializedSize = size; + return size; + } + } + + public static Addresses ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static Addresses ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static Addresses ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static Addresses ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static Addresses ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static Addresses ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Addresses ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static Addresses ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static Addresses ParseFrom(pb::CodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static Addresses ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(Addresses prototype) { + return (Builder) new Builder().MergeFrom(prototype); + } + + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() {} + + Addresses result = new Addresses(); + + protected override Addresses MessageBeingBuilt { + get { return result; } + } + + public override Builder Clear() { + result = new Addresses(); + return this; + } + + public override Builder Clone() { + return new Builder().MergeFrom(result); + } + + public override Addresses DefaultInstanceForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.DefaultInstance; } + } + + public override Addresses BuildPartial() { + if (result == null) { + throw new global::System.InvalidOperationException("build() has already been called on this Builder"); + } + Addresses returnMe = result; + result = null; + return returnMe; + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is Addresses) { + return MergeFrom((Addresses) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(Addresses other) { + if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.DefaultInstance) return this; + if (other.HasAddress) { + Address = other.Address; + } + if (other.HasAddress2) { + Address2 = other.Address2; + } + if (other.HasCity) { + City = other.City; + } + if (other.HasState) { + State = other.State; + } + if (other.HasZip) { + Zip = other.Zip; + } + return this; + } + + public override Builder MergeFrom(pb::CodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + while (true) { + uint tag = input.ReadTag(); + switch (tag) { + case 0: { + return this; + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag); + break; + } + case 10: { + Address = input.ReadString(); + break; + } + case 18: { + Address2 = input.ReadString(); + break; + } + case 26: { + City = input.ReadString(); + break; + } + case 34: { + State = input.ReadString(); + break; + } + case 45: { + Zip = input.ReadFixed32(); + break; + } + } + } + } + + + public bool HasAddress { + get { return result.HasAddress; } + } + public string Address { + get { return result.Address; } + set { SetAddress(value); } + } + public Builder SetAddress(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasAddress = true; + result.address_ = value; + return this; + } + public Builder ClearAddress() { + result.hasAddress = false; + result.address_ = ""; + return this; + } + + public bool HasAddress2 { + get { return result.HasAddress2; } + } + public string Address2 { + get { return result.Address2; } + set { SetAddress2(value); } + } + public Builder SetAddress2(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasAddress2 = true; + result.address2_ = value; + return this; + } + public Builder ClearAddress2() { + result.hasAddress2 = false; + result.address2_ = ""; + return this; + } + + public bool HasCity { + get { return result.HasCity; } + } + public string City { + get { return result.City; } + set { SetCity(value); } + } + public Builder SetCity(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasCity = true; + result.city_ = value; + return this; + } + public Builder ClearCity() { + result.hasCity = false; + result.city_ = ""; + return this; + } + + public bool HasState { + get { return result.HasState; } + } + public string State { + get { return result.State; } + set { SetState(value); } + } + public Builder SetState(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasState = true; + result.state_ = value; + return this; + } + public Builder ClearState() { + result.hasState = false; + result.state_ = ""; + return this; + } + + public bool HasZip { + get { return result.HasZip; } + } + [global::System.CLSCompliant(false)] + public uint Zip { + get { return result.Zip; } + set { SetZip(value); } + } + [global::System.CLSCompliant(false)] + public Builder SetZip(uint value) { + result.hasZip = true; + result.zip_ = value; + return this; + } + public Builder ClearZip() { + result.hasZip = false; + result.zip_ = 0; + return this; + } + } + static Addresses() { + object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.Descriptor, null); + } + } + + } + #endregion + + public const int NameFieldNumber = 1; + private bool hasName; + private string name_ = ""; + public bool HasName { + get { return hasName; } + } + public string Name { + get { return name_; } + } + + public const int IdFieldNumber = 2; + private bool hasId; + private int id_ = 0; + public bool HasId { + get { return hasId; } + } + public int Id { + get { return id_; } + } + + public const int EmailFieldNumber = 3; + private bool hasEmail; + private string email_ = ""; + public bool HasEmail { + get { return hasEmail; } + } + public string Email { + get { return email_; } + } + + public const int CodesFieldNumber = 10; + private int codesMemoizedSerializedSize; + private pbc::PopsicleList codes_ = new pbc::PopsicleList(); + public scg::IList CodesList { + get { return pbc::Lists.AsReadOnly(codes_); } + } + public int CodesCount { + get { return codes_.Count; } + } + public int GetCodes(int index) { + return codes_[index]; + } + + public const int PhoneFieldNumber = 4; + private pbc::PopsicleList phone_ = new pbc::PopsicleList(); + public scg::IList PhoneList { + get { return phone_; } + } + public int PhoneCount { + get { return phone_.Count; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber GetPhone(int index) { + return phone_[index]; + } + + public const int AddressesFieldNumber = 5; + private pbc::PopsicleList addresses_ = new pbc::PopsicleList(); + public scg::IList AddressesList { + get { return addresses_; } + } + public int AddressesCount { + get { return addresses_.Count; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses GetAddresses(int index) { + return addresses_[index]; + } + + public override bool IsInitialized { + get { + if (!hasName) return false; + if (!hasId) return false; + foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber element in PhoneList) { + if (!element.IsInitialized) return false; + } + if (!ExtensionsAreInitialized) return false; + return true; + } + } + + public override void WriteTo(pb::CodedOutputStream output) { + int size = SerializedSize; + pb::ExtendableMessageLite.ExtensionWriter extensionWriter = CreateExtensionWriter(this); + if (HasName) { + output.WriteString(1, Name); + } + if (HasId) { + output.WriteInt32(2, Id); + } + if (HasEmail) { + output.WriteString(3, Email); + } + foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber element in PhoneList) { + output.WriteMessage(4, element); + } + foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses element in AddressesList) { + output.WriteGroup(5, element); + } + if (codes_.Count > 0) { + output.WriteRawVarint32(82); + output.WriteRawVarint32((uint) codesMemoizedSerializedSize); + foreach (int element in codes_) { + output.WriteInt32NoTag(element); + } + } + extensionWriter.WriteUntil(200, output); + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (HasName) { + size += pb::CodedOutputStream.ComputeStringSize(1, Name); + } + if (HasId) { + size += pb::CodedOutputStream.ComputeInt32Size(2, Id); + } + if (HasEmail) { + size += pb::CodedOutputStream.ComputeStringSize(3, Email); + } + { + int dataSize = 0; + foreach (int element in CodesList) { + dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element); + } + size += dataSize; + if (codes_.Count != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize); + } + codesMemoizedSerializedSize = dataSize; + } + foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber element in PhoneList) { + size += pb::CodedOutputStream.ComputeMessageSize(4, element); + } + foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses element in AddressesList) { + size += pb::CodedOutputStream.ComputeGroupSize(5, element); + } + size += ExtensionsSerializedSize; + memoizedSerializedSize = size; + return size; + } + } + + public static TestInteropPersonLite ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static TestInteropPersonLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static TestInteropPersonLite ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static TestInteropPersonLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static TestInteropPersonLite ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static TestInteropPersonLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static TestInteropPersonLite ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static TestInteropPersonLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static TestInteropPersonLite ParseFrom(pb::CodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static TestInteropPersonLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(TestInteropPersonLite prototype) { + return (Builder) new Builder().MergeFrom(prototype); + } + + public sealed partial class Builder : pb::ExtendableBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() {} + + TestInteropPersonLite result = new TestInteropPersonLite(); + + protected override TestInteropPersonLite MessageBeingBuilt { + get { return result; } + } + + public override Builder Clear() { + result = new TestInteropPersonLite(); + return this; + } + + public override Builder Clone() { + return new Builder().MergeFrom(result); + } + + public override TestInteropPersonLite DefaultInstanceForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.DefaultInstance; } + } + + public override TestInteropPersonLite BuildPartial() { + if (result == null) { + throw new global::System.InvalidOperationException("build() has already been called on this Builder"); + } + result.codes_.MakeReadOnly(); + result.phone_.MakeReadOnly(); + result.addresses_.MakeReadOnly(); + TestInteropPersonLite returnMe = result; + result = null; + return returnMe; + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is TestInteropPersonLite) { + return MergeFrom((TestInteropPersonLite) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(TestInteropPersonLite other) { + if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.DefaultInstance) return this; + if (other.HasName) { + Name = other.Name; + } + if (other.HasId) { + Id = other.Id; + } + if (other.HasEmail) { + Email = other.Email; + } + if (other.codes_.Count != 0) { + base.AddRange(other.codes_, result.codes_); + } + if (other.phone_.Count != 0) { + base.AddRange(other.phone_, result.phone_); + } + if (other.addresses_.Count != 0) { + base.AddRange(other.addresses_, result.addresses_); + } + this.MergeExtensionFields(other); + return this; + } + + public override Builder MergeFrom(pb::CodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + while (true) { + uint tag = input.ReadTag(); + switch (tag) { + case 0: { + return this; + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag); + break; + } + case 10: { + Name = input.ReadString(); + break; + } + case 16: { + Id = input.ReadInt32(); + break; + } + case 26: { + Email = input.ReadString(); + break; + } + case 34: { + global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.CreateBuilder(); + input.ReadMessage(subBuilder, extensionRegistry); + AddPhone(subBuilder.BuildPartial()); + break; + } + case 43: { + global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.CreateBuilder(); + input.ReadGroup(5, subBuilder, extensionRegistry); + AddAddresses(subBuilder.BuildPartial()); + break; + } + case 82: { + int length = input.ReadInt32(); + int limit = input.PushLimit(length); + while (!input.ReachedLimit) { + AddCodes(input.ReadInt32()); + } + input.PopLimit(limit); + break; + } + } + } + } + + + public bool HasName { + get { return result.HasName; } + } + public string Name { + get { return result.Name; } + set { SetName(value); } + } + public Builder SetName(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasName = true; + result.name_ = value; + return this; + } + public Builder ClearName() { + result.hasName = false; + result.name_ = ""; + return this; + } + + public bool HasId { + get { return result.HasId; } + } + public int Id { + get { return result.Id; } + set { SetId(value); } + } + public Builder SetId(int value) { + result.hasId = true; + result.id_ = value; + return this; + } + public Builder ClearId() { + result.hasId = false; + result.id_ = 0; + return this; + } + + public bool HasEmail { + get { return result.HasEmail; } + } + public string Email { + get { return result.Email; } + set { SetEmail(value); } + } + public Builder SetEmail(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasEmail = true; + result.email_ = value; + return this; + } + public Builder ClearEmail() { + result.hasEmail = false; + result.email_ = ""; + return this; + } + + public pbc::IPopsicleList CodesList { + get { return result.codes_; } + } + public int CodesCount { + get { return result.CodesCount; } + } + public int GetCodes(int index) { + return result.GetCodes(index); + } + public Builder SetCodes(int index, int value) { + result.codes_[index] = value; + return this; + } + public Builder AddCodes(int value) { + result.codes_.Add(value); + return this; + } + public Builder AddRangeCodes(scg::IEnumerable values) { + base.AddRange(values, result.codes_); + return this; + } + public Builder ClearCodes() { + result.codes_.Clear(); + return this; + } + + public pbc::IPopsicleList PhoneList { + get { return result.phone_; } + } + public int PhoneCount { + get { return result.PhoneCount; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber GetPhone(int index) { + return result.GetPhone(index); + } + public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.phone_[index] = value; + return this; + } + public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + result.phone_[index] = builderForValue.Build(); + return this; + } + public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.phone_.Add(value); + return this; + } + public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + result.phone_.Add(builderForValue.Build()); + return this; + } + public Builder AddRangePhone(scg::IEnumerable values) { + base.AddRange(values, result.phone_); + return this; + } + public Builder ClearPhone() { + result.phone_.Clear(); + return this; + } + + public pbc::IPopsicleList AddressesList { + get { return result.addresses_; } + } + public int AddressesCount { + get { return result.AddressesCount; } + } + public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses GetAddresses(int index) { + return result.GetAddresses(index); + } + public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.addresses_[index] = value; + return this; + } + public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + result.addresses_[index] = builderForValue.Build(); + return this; + } + public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.addresses_.Add(value); + return this; + } + public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + result.addresses_.Add(builderForValue.Build()); + return this; + } + public Builder AddRangeAddresses(scg::IEnumerable values) { + base.AddRange(values, result.addresses_); + return this; + } + public Builder ClearAddresses() { + result.addresses_.Clear(); + return this; + } + } + static TestInteropPersonLite() { + object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.Descriptor, null); + } + } + + public sealed partial class TestInteropEmployeeIdLite : pb::GeneratedMessageLite { + private static readonly TestInteropEmployeeIdLite defaultInstance = new Builder().BuildPartial(); + public static TestInteropEmployeeIdLite DefaultInstance { + get { return defaultInstance; } + } + + public override TestInteropEmployeeIdLite DefaultInstanceForType { + get { return defaultInstance; } + } + + protected override TestInteropEmployeeIdLite ThisMessage { + get { return this; } + } + + public const int NumberFieldNumber = 1; + private bool hasNumber; + private string number_ = ""; + public bool HasNumber { + get { return hasNumber; } + } + public string Number { + get { return number_; } + } + + public override bool IsInitialized { + get { + if (!hasNumber) return false; + return true; + } + } + + public override void WriteTo(pb::CodedOutputStream output) { + int size = SerializedSize; + if (HasNumber) { + output.WriteString(1, Number); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (HasNumber) { + size += pb::CodedOutputStream.ComputeStringSize(1, Number); + } + memoizedSerializedSize = size; + return size; + } + } + + public static TestInteropEmployeeIdLite ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static TestInteropEmployeeIdLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static TestInteropEmployeeIdLite ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static TestInteropEmployeeIdLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static TestInteropEmployeeIdLite ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static TestInteropEmployeeIdLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static TestInteropEmployeeIdLite ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static TestInteropEmployeeIdLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static TestInteropEmployeeIdLite ParseFrom(pb::CodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static TestInteropEmployeeIdLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(TestInteropEmployeeIdLite prototype) { + return (Builder) new Builder().MergeFrom(prototype); + } + + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() {} + + TestInteropEmployeeIdLite result = new TestInteropEmployeeIdLite(); + + protected override TestInteropEmployeeIdLite MessageBeingBuilt { + get { return result; } + } + + public override Builder Clear() { + result = new TestInteropEmployeeIdLite(); + return this; + } + + public override Builder Clone() { + return new Builder().MergeFrom(result); + } + + public override TestInteropEmployeeIdLite DefaultInstanceForType { + get { return global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite.DefaultInstance; } + } + + public override TestInteropEmployeeIdLite BuildPartial() { + if (result == null) { + throw new global::System.InvalidOperationException("build() has already been called on this Builder"); + } + TestInteropEmployeeIdLite returnMe = result; + result = null; + return returnMe; + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is TestInteropEmployeeIdLite) { + return MergeFrom((TestInteropEmployeeIdLite) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(TestInteropEmployeeIdLite other) { + if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite.DefaultInstance) return this; + if (other.HasNumber) { + Number = other.Number; + } + return this; + } + + public override Builder MergeFrom(pb::CodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + while (true) { + uint tag = input.ReadTag(); + switch (tag) { + case 0: { + return this; + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag); + break; + } + case 10: { + Number = input.ReadString(); + break; + } + } + } + } + + + public bool HasNumber { + get { return result.HasNumber; } + } + public string Number { + get { return result.Number; } + set { SetNumber(value); } + } + public Builder SetNumber(string value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + result.hasNumber = true; + result.number_ = value; + return this; + } + public Builder ClearNumber() { + result.hasNumber = false; + result.number_ = ""; + return this; + } + } + static TestInteropEmployeeIdLite() { + object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.Descriptor, null); + } + } + #endregion }