Merge pull request #660 from jskeet/throw-on-null
Throw on null for string/bytes single fields
This commit is contained in:
commit
bde01d5326
@ -107,6 +107,7 @@ csharp_EXTRA_DIST= \
|
||||
csharp/src/Google.Protobuf/LimitedInputStream.cs \
|
||||
csharp/src/Google.Protobuf/MessageExtensions.cs \
|
||||
csharp/src/Google.Protobuf/MessageParser.cs \
|
||||
csharp/src/Google.Protobuf/Preconditions.cs \
|
||||
csharp/src/Google.Protobuf/Properties/AssemblyInfo.cs \
|
||||
csharp/src/Google.Protobuf/Reflection/DescriptorBase.cs \
|
||||
csharp/src/Google.Protobuf/Reflection/DescriptorPool.cs \
|
||||
@ -133,7 +134,6 @@ csharp_EXTRA_DIST= \
|
||||
csharp/src/Google.Protobuf/Reflection/RepeatedFieldAccessor.cs \
|
||||
csharp/src/Google.Protobuf/Reflection/ServiceDescriptor.cs \
|
||||
csharp/src/Google.Protobuf/Reflection/SingleFieldAccessor.cs \
|
||||
csharp/src/Google.Protobuf/ThrowHelper.cs \
|
||||
csharp/src/Google.Protobuf/WellKnownTypes/Any.cs \
|
||||
csharp/src/Google.Protobuf/WellKnownTypes/Api.cs \
|
||||
csharp/src/Google.Protobuf/WellKnownTypes/Duration.cs \
|
||||
|
@ -76,7 +76,7 @@ namespace Google.Protobuf.Examples.AddressBook {
|
||||
public string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,7 +94,7 @@ namespace Google.Protobuf.Examples.AddressBook {
|
||||
public string Email {
|
||||
get { return email_; }
|
||||
set {
|
||||
email_ = value ?? "";
|
||||
email_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -257,7 +257,7 @@ namespace Google.Protobuf.Examples.AddressBook {
|
||||
public string Number {
|
||||
get { return number_; }
|
||||
set {
|
||||
number_ = value ?? "";
|
||||
number_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -111,6 +111,16 @@ namespace Google.Protobuf
|
||||
Assert.IsNull(message.OneofNestedMessage);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void NullStringAndBytesRejected()
|
||||
{
|
||||
var message = new TestAllTypes();
|
||||
Assert.Throws<ArgumentNullException>(() => message.SingleString = null);
|
||||
Assert.Throws<ArgumentNullException>(() => message.OneofString = null);
|
||||
Assert.Throws<ArgumentNullException>(() => message.SingleBytes = null);
|
||||
Assert.Throws<ArgumentNullException>(() => message.OneofBytes = null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RoundTrip_Empty()
|
||||
{
|
||||
|
@ -426,7 +426,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public string SingleString {
|
||||
get { return singleString_; }
|
||||
set {
|
||||
singleString_ = value ?? "";
|
||||
singleString_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -435,7 +435,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public pb::ByteString SingleBytes {
|
||||
get { return singleBytes_; }
|
||||
set {
|
||||
singleBytes_ = value ?? pb::ByteString.Empty;
|
||||
singleBytes_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -700,7 +700,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public string OneofString {
|
||||
get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) oneofField_ : ""; }
|
||||
set {
|
||||
oneofField_ = value ?? "";
|
||||
oneofField_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
oneofFieldCase_ = OneofFieldOneofCase.OneofString;
|
||||
}
|
||||
}
|
||||
@ -709,7 +709,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public pb::ByteString OneofBytes {
|
||||
get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) oneofField_ : pb::ByteString.Empty; }
|
||||
set {
|
||||
oneofField_ = value ?? pb::ByteString.Empty;
|
||||
oneofField_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
|
||||
}
|
||||
}
|
||||
@ -2703,7 +2703,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public string StringField {
|
||||
get { return stringField_; }
|
||||
set {
|
||||
stringField_ = value ?? "";
|
||||
stringField_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2954,7 +2954,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public string MyString {
|
||||
get { return myString_; }
|
||||
set {
|
||||
myString_ = value ?? "";
|
||||
myString_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -3385,7 +3385,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public string Data {
|
||||
get { return data_; }
|
||||
set {
|
||||
data_ = value ?? "";
|
||||
data_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -3589,7 +3589,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public pb::ByteString Data {
|
||||
get { return data_; }
|
||||
set {
|
||||
data_ = value ?? pb::ByteString.Empty;
|
||||
data_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -3695,7 +3695,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public pb::ByteString Data {
|
||||
get { return data_; }
|
||||
set {
|
||||
data_ = value ?? pb::ByteString.Empty;
|
||||
data_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -4350,7 +4350,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public string FooString {
|
||||
get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }
|
||||
set {
|
||||
foo_ = value ?? "";
|
||||
foo_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
fooCase_ = FooOneofCase.FooString;
|
||||
}
|
||||
}
|
||||
@ -5409,7 +5409,7 @@ namespace Google.Protobuf.TestProtos {
|
||||
public string A {
|
||||
get { return a_; }
|
||||
set {
|
||||
a_ = value ?? "";
|
||||
a_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -112,13 +112,13 @@ namespace Google.Protobuf.Collections
|
||||
|
||||
public bool ContainsKey(TKey key)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(key, "key");
|
||||
Preconditions.CheckNotNullUnconstrained(key, "key");
|
||||
return map.ContainsKey(key);
|
||||
}
|
||||
|
||||
public bool Remove(TKey key)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(key, "key");
|
||||
Preconditions.CheckNotNullUnconstrained(key, "key");
|
||||
LinkedListNode<KeyValuePair<TKey, TValue>> node;
|
||||
if (map.TryGetValue(key, out node))
|
||||
{
|
||||
@ -151,7 +151,7 @@ namespace Google.Protobuf.Collections
|
||||
{
|
||||
get
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(key, "key");
|
||||
Preconditions.CheckNotNullUnconstrained(key, "key");
|
||||
TValue value;
|
||||
if (TryGetValue(key, out value))
|
||||
{
|
||||
@ -161,11 +161,11 @@ namespace Google.Protobuf.Collections
|
||||
}
|
||||
set
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(key, "key");
|
||||
Preconditions.CheckNotNullUnconstrained(key, "key");
|
||||
// value == null check here is redundant, but avoids boxing.
|
||||
if (value == null && !allowNullValues)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(value, "value");
|
||||
Preconditions.CheckNotNullUnconstrained(value, "value");
|
||||
}
|
||||
LinkedListNode<KeyValuePair<TKey, TValue>> node;
|
||||
var pair = new KeyValuePair<TKey, TValue>(key, value);
|
||||
@ -187,7 +187,7 @@ namespace Google.Protobuf.Collections
|
||||
|
||||
public void Add(IDictionary<TKey, TValue> entries)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(entries, "entries");
|
||||
Preconditions.CheckNotNull(entries, "entries");
|
||||
foreach (var pair in entries)
|
||||
{
|
||||
Add(pair.Key, pair.Value);
|
||||
@ -374,7 +374,7 @@ namespace Google.Protobuf.Collections
|
||||
|
||||
void IDictionary.Remove(object key)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(key, "key");
|
||||
Preconditions.CheckNotNull(key, "key");
|
||||
if (!(key is TKey))
|
||||
{
|
||||
return;
|
||||
@ -403,7 +403,7 @@ namespace Google.Protobuf.Collections
|
||||
{
|
||||
get
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(key, "key");
|
||||
Preconditions.CheckNotNull(key, "key");
|
||||
if (!(key is TKey))
|
||||
{
|
||||
return null;
|
||||
|
@ -96,7 +96,7 @@
|
||||
<Compile Include="Reflection\RepeatedFieldAccessor.cs" />
|
||||
<Compile Include="Reflection\ServiceDescriptor.cs" />
|
||||
<Compile Include="Reflection\SingleFieldAccessor.cs" />
|
||||
<Compile Include="ThrowHelper.cs" />
|
||||
<Compile Include="Preconditions.cs" />
|
||||
<Compile Include="WellKnownTypes\Any.cs" />
|
||||
<Compile Include="WellKnownTypes\Api.cs" />
|
||||
<Compile Include="WellKnownTypes\Duration.cs" />
|
||||
|
@ -120,7 +120,7 @@ namespace Google.Protobuf
|
||||
|
||||
public string Format(IMessage message)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(message, "message");
|
||||
Preconditions.CheckNotNull(message, "message");
|
||||
StringBuilder builder = new StringBuilder();
|
||||
// TODO(jonskeet): Handle well-known types here.
|
||||
// Our reflection support needs improving so that we can get at the descriptor
|
||||
|
@ -41,8 +41,8 @@ namespace Google.Protobuf
|
||||
{
|
||||
public static void MergeFrom(this IMessage message, byte[] data)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(message, "message");
|
||||
ThrowHelper.ThrowIfNull(data, "data");
|
||||
Preconditions.CheckNotNull(message, "message");
|
||||
Preconditions.CheckNotNull(data, "data");
|
||||
CodedInputStream input = CodedInputStream.CreateInstance(data);
|
||||
message.MergeFrom(input);
|
||||
input.CheckLastTagWas(0);
|
||||
@ -50,8 +50,8 @@ namespace Google.Protobuf
|
||||
|
||||
public static void MergeFrom(this IMessage message, ByteString data)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(message, "message");
|
||||
ThrowHelper.ThrowIfNull(data, "data");
|
||||
Preconditions.CheckNotNull(message, "message");
|
||||
Preconditions.CheckNotNull(data, "data");
|
||||
CodedInputStream input = data.CreateCodedInput();
|
||||
message.MergeFrom(input);
|
||||
input.CheckLastTagWas(0);
|
||||
@ -59,8 +59,8 @@ namespace Google.Protobuf
|
||||
|
||||
public static void MergeFrom(this IMessage message, Stream input)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(message, "message");
|
||||
ThrowHelper.ThrowIfNull(input, "input");
|
||||
Preconditions.CheckNotNull(message, "message");
|
||||
Preconditions.CheckNotNull(input, "input");
|
||||
CodedInputStream codedInput = CodedInputStream.CreateInstance(input);
|
||||
message.MergeFrom(codedInput);
|
||||
codedInput.CheckLastTagWas(0);
|
||||
@ -68,8 +68,8 @@ namespace Google.Protobuf
|
||||
|
||||
public static void MergeDelimitedFrom(this IMessage message, Stream input)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(message, "message");
|
||||
ThrowHelper.ThrowIfNull(input, "input");
|
||||
Preconditions.CheckNotNull(message, "message");
|
||||
Preconditions.CheckNotNull(input, "input");
|
||||
int size = (int) CodedInputStream.ReadRawVarint32(input);
|
||||
Stream limitedStream = new LimitedInputStream(input, size);
|
||||
message.MergeFrom(limitedStream);
|
||||
@ -77,7 +77,7 @@ namespace Google.Protobuf
|
||||
|
||||
public static byte[] ToByteArray(this IMessage message)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(message, "message");
|
||||
Preconditions.CheckNotNull(message, "message");
|
||||
byte[] result = new byte[message.CalculateSize()];
|
||||
CodedOutputStream output = CodedOutputStream.CreateInstance(result);
|
||||
message.WriteTo(output);
|
||||
@ -87,8 +87,8 @@ namespace Google.Protobuf
|
||||
|
||||
public static void WriteTo(this IMessage message, Stream output)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(message, "message");
|
||||
ThrowHelper.ThrowIfNull(output, "output");
|
||||
Preconditions.CheckNotNull(message, "message");
|
||||
Preconditions.CheckNotNull(output, "output");
|
||||
CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
|
||||
message.WriteTo(codedOutput);
|
||||
codedOutput.Flush();
|
||||
@ -96,8 +96,8 @@ namespace Google.Protobuf
|
||||
|
||||
public static void WriteDelimitedTo(this IMessage message, Stream output)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(message, "message");
|
||||
ThrowHelper.ThrowIfNull(output, "output");
|
||||
Preconditions.CheckNotNull(message, "message");
|
||||
Preconditions.CheckNotNull(output, "output");
|
||||
CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
|
||||
codedOutput.WriteRawVarint32((uint)message.CalculateSize());
|
||||
message.WriteTo(codedOutput);
|
||||
@ -106,7 +106,7 @@ namespace Google.Protobuf
|
||||
|
||||
public static ByteString ToByteString(this IMessage message)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(message, "message");
|
||||
Preconditions.CheckNotNull(message, "message");
|
||||
return ByteString.AttachBytes(message.ToByteArray());
|
||||
}
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ namespace Google.Protobuf
|
||||
/// <returns>The newly parsed message.</returns>
|
||||
public T ParseFrom(byte[] data)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(data, "data");
|
||||
Preconditions.CheckNotNull(data, "data");
|
||||
T message = factory();
|
||||
message.MergeFrom(data);
|
||||
return message;
|
||||
@ -92,7 +92,7 @@ namespace Google.Protobuf
|
||||
|
||||
public T ParseFrom(ByteString data)
|
||||
{
|
||||
ThrowHelper.ThrowIfNull(data, "data");
|
||||
Preconditions.CheckNotNull(data, "data");
|
||||
T message = factory();
|
||||
message.MergeFrom(data);
|
||||
return message;
|
||||
|
@ -1,53 +1,74 @@
|
||||
#region Copyright notice and license
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// 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;
|
||||
|
||||
namespace Google.Protobuf
|
||||
{
|
||||
/// <summary>
|
||||
/// Helper methods for throwing exceptions
|
||||
/// </summary>
|
||||
internal static class ThrowHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// Throws an ArgumentNullException if the given value is null.
|
||||
/// </summary>
|
||||
internal static void ThrowIfNull(object value, string name)
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
throw new ArgumentNullException(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
#region Copyright notice and license
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// 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;
|
||||
|
||||
namespace Google.Protobuf
|
||||
{
|
||||
/// <summary>
|
||||
/// Helper methods for throwing exceptions
|
||||
/// </summary>
|
||||
public static class Preconditions
|
||||
{
|
||||
/// <summary>
|
||||
/// Throws an ArgumentNullException if the given value is null, otherwise
|
||||
/// return the value to the caller.
|
||||
/// </summary>
|
||||
public static T CheckNotNull<T>(T value, string name) where T : class
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
throw new ArgumentNullException(name);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Throws an ArgumentNullException if the given value is null, otherwise
|
||||
/// return the value to the caller.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is equivalent to <see cref="CheckNotNull"/> but without the type parameter
|
||||
/// constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull
|
||||
/// with a value type - but it gets in the way if either you want to use it with a nullable
|
||||
/// value type, or you want to use it with an unconstrained type parameter.
|
||||
/// </remarks>
|
||||
internal static T CheckNotNullUnconstrained<T>(T value, string name)
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
throw new ArgumentNullException(name);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
@ -301,7 +301,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -310,7 +310,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Package {
|
||||
get { return package_; }
|
||||
set {
|
||||
package_ = value ?? "";
|
||||
package_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -393,7 +393,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Syntax {
|
||||
get { return syntax_; }
|
||||
set {
|
||||
syntax_ = value ?? "";
|
||||
syntax_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -649,7 +649,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1200,7 +1200,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1236,7 +1236,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string TypeName {
|
||||
get { return typeName_; }
|
||||
set {
|
||||
typeName_ = value ?? "";
|
||||
typeName_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1245,7 +1245,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Extendee {
|
||||
get { return extendee_; }
|
||||
set {
|
||||
extendee_ = value ?? "";
|
||||
extendee_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1254,7 +1254,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string DefaultValue {
|
||||
get { return defaultValue_; }
|
||||
set {
|
||||
defaultValue_ = value ?? "";
|
||||
defaultValue_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1545,7 +1545,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1653,7 +1653,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1809,7 +1809,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1973,7 +1973,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2132,7 +2132,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2141,7 +2141,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string InputType {
|
||||
get { return inputType_; }
|
||||
set {
|
||||
inputType_ = value ?? "";
|
||||
inputType_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2150,7 +2150,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string OutputType {
|
||||
get { return outputType_; }
|
||||
set {
|
||||
outputType_ = value ?? "";
|
||||
outputType_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2383,7 +2383,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string JavaPackage {
|
||||
get { return javaPackage_; }
|
||||
set {
|
||||
javaPackage_ = value ?? "";
|
||||
javaPackage_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2392,7 +2392,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string JavaOuterClassname {
|
||||
get { return javaOuterClassname_; }
|
||||
set {
|
||||
javaOuterClassname_ = value ?? "";
|
||||
javaOuterClassname_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2437,7 +2437,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string GoPackage {
|
||||
get { return goPackage_; }
|
||||
set {
|
||||
goPackage_ = value ?? "";
|
||||
goPackage_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2491,7 +2491,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string ObjcClassPrefix {
|
||||
get { return objcClassPrefix_; }
|
||||
set {
|
||||
objcClassPrefix_ = value ?? "";
|
||||
objcClassPrefix_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2500,7 +2500,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string CsharpNamespace {
|
||||
get { return csharpNamespace_; }
|
||||
set {
|
||||
csharpNamespace_ = value ?? "";
|
||||
csharpNamespace_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -3853,7 +3853,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string IdentifierValue {
|
||||
get { return identifierValue_; }
|
||||
set {
|
||||
identifierValue_ = value ?? "";
|
||||
identifierValue_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -3889,7 +3889,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal pb::ByteString StringValue {
|
||||
get { return stringValue_; }
|
||||
set {
|
||||
stringValue_ = value ?? pb::ByteString.Empty;
|
||||
stringValue_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -3898,7 +3898,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string AggregateValue {
|
||||
get { return aggregateValue_; }
|
||||
set {
|
||||
aggregateValue_ = value ?? "";
|
||||
aggregateValue_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -4095,7 +4095,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string NamePart_ {
|
||||
get { return namePart_; }
|
||||
set {
|
||||
namePart_ = value ?? "";
|
||||
namePart_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -4350,7 +4350,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string LeadingComments {
|
||||
get { return leadingComments_; }
|
||||
set {
|
||||
leadingComments_ = value ?? "";
|
||||
leadingComments_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -4359,7 +4359,7 @@ namespace Google.Protobuf.Reflection {
|
||||
internal string TrailingComments {
|
||||
get { return trailingComments_; }
|
||||
set {
|
||||
trailingComments_ = value ?? "";
|
||||
trailingComments_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string TypeUrl {
|
||||
get { return typeUrl_; }
|
||||
set {
|
||||
typeUrl_ = value ?? "";
|
||||
typeUrl_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public pb::ByteString Value {
|
||||
get { return value_; }
|
||||
set {
|
||||
value_ = value ?? pb::ByteString.Empty;
|
||||
value_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string Version {
|
||||
get { return version_; }
|
||||
set {
|
||||
version_ = value ?? "";
|
||||
version_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -285,7 +285,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -294,7 +294,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string RequestTypeUrl {
|
||||
get { return requestTypeUrl_; }
|
||||
set {
|
||||
requestTypeUrl_ = value ?? "";
|
||||
requestTypeUrl_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -312,7 +312,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string ResponseTypeUrl {
|
||||
get { return responseTypeUrl_; }
|
||||
set {
|
||||
responseTypeUrl_ = value ?? "";
|
||||
responseTypeUrl_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string FileName {
|
||||
get { return fileName_; }
|
||||
set {
|
||||
fileName_ = value ?? "";
|
||||
fileName_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -224,7 +224,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string StringValue {
|
||||
get { return kindCase_ == KindOneofCase.StringValue ? (string) kind_ : ""; }
|
||||
set {
|
||||
kind_ = value ?? "";
|
||||
kind_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
kindCase_ = KindOneofCase.StringValue;
|
||||
}
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -327,7 +327,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -336,7 +336,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string TypeUrl {
|
||||
get { return typeUrl_; }
|
||||
set {
|
||||
typeUrl_ = value ?? "";
|
||||
typeUrl_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -610,7 +610,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -783,7 +783,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -932,7 +932,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string Name {
|
||||
get { return name_; }
|
||||
set {
|
||||
name_ = value ?? "";
|
||||
name_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -822,7 +822,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public string Value {
|
||||
get { return value_; }
|
||||
set {
|
||||
value_ = value ?? "";
|
||||
value_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
@ -928,7 +928,7 @@ namespace Google.Protobuf.WellKnownTypes {
|
||||
public pb::ByteString Value {
|
||||
get { return value_; }
|
||||
set {
|
||||
value_ = value ?? pb::ByteString.Empty;
|
||||
value_ = pb::Preconditions.CheckNotNull(value, "value");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -127,17 +127,6 @@ void FieldGeneratorBase::AddDeprecatedFlag(io::Printer* printer) {
|
||||
}
|
||||
}
|
||||
|
||||
void FieldGeneratorBase::AddNullCheck(io::Printer* printer) {
|
||||
AddNullCheck(printer, "value");
|
||||
}
|
||||
|
||||
void FieldGeneratorBase::AddNullCheck(io::Printer* printer, const std::string& name) {
|
||||
if (is_nullable_type()) {
|
||||
printer->Print(" pb::ThrowHelper.ThrowIfNull($name$, \"$name$\");\n",
|
||||
"name", name);
|
||||
}
|
||||
}
|
||||
|
||||
void FieldGeneratorBase::AddPublicMemberAttributes(io::Printer* printer) {
|
||||
AddDeprecatedFlag(printer);
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ void PrimitiveFieldGenerator::GenerateMembers(io::Printer* printer) {
|
||||
} else {
|
||||
printer->Print(
|
||||
variables_,
|
||||
" $name$_ = value ?? $default_value$;\n");
|
||||
" $name$_ = pb::Preconditions.CheckNotNull(value, \"value\");\n");
|
||||
}
|
||||
printer->Print(
|
||||
" }\n"
|
||||
@ -183,7 +183,7 @@ void PrimitiveOneofFieldGenerator::GenerateMembers(io::Printer* printer) {
|
||||
} else {
|
||||
printer->Print(
|
||||
variables_,
|
||||
" $oneof_name$_ = value ?? $default_value$;\n");
|
||||
" $oneof_name$_ = pb::Preconditions.CheckNotNull(value, \"value\");\n");
|
||||
}
|
||||
printer->Print(
|
||||
variables_,
|
||||
|
Loading…
Reference in New Issue
Block a user