Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: third_party/protobuf/csharp/src/Google.Protobuf/WellKnownTypes/FieldMaskPartial.cs

Issue 2600753002: Reverts third_party/protobuf: Update to HEAD (f52e188fe4) (Closed)
Patch Set: Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #region Copyright notice and license 1 #region Copyright notice and license
2 // Protocol Buffers - Google's data interchange format 2 // Protocol Buffers - Google's data interchange format
3 // Copyright 2016 Google Inc. All rights reserved. 3 // Copyright 2016 Google Inc. All rights reserved.
4 // https://developers.google.com/protocol-buffers/ 4 // https://developers.google.com/protocol-buffers/
5 // 5 //
6 // Redistribution and use in source and binary forms, with or without 6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are 7 // modification, are permitted provided that the following conditions are
8 // met: 8 // met:
9 // 9 //
10 // * Redistributions of source code must retain the above copyright 10 // * Redistributions of source code must retain the above copyright
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 /// <summary> 45 /// <summary>
46 /// Converts a timestamp specified in seconds/nanoseconds to a string. 46 /// Converts a timestamp specified in seconds/nanoseconds to a string.
47 /// </summary> 47 /// </summary>
48 /// <remarks> 48 /// <remarks>
49 /// If the value is a normalized duration in the range described in <c>f ield_mask.proto</c>, 49 /// If the value is a normalized duration in the range described in <c>f ield_mask.proto</c>,
50 /// <paramref name="diagnosticOnly"/> is ignored. Otherwise, if the para meter is <c>true</c>, 50 /// <paramref name="diagnosticOnly"/> is ignored. Otherwise, if the para meter is <c>true</c>,
51 /// a JSON object with a warning is returned; if it is <c>false</c>, an <see cref="InvalidOperationException"/> is thrown. 51 /// a JSON object with a warning is returned; if it is <c>false</c>, an <see cref="InvalidOperationException"/> is thrown.
52 /// </remarks> 52 /// </remarks>
53 /// <param name="paths">Paths in the field mask</param> 53 /// <param name="paths">Paths in the field mask</param>
54 /// <param name="diagnosticOnly">Determines the handling of non-normaliz ed values</param> 54 /// <param name="diagnosticOnly">Determines the handling of non-normaliz ed values</param>
55 /// <exception cref="InvalidOperationException">The represented field ma sk is invalid, and <paramref name="diagnosticOnly"/> is <c>false</c>.</exception > 55 /// <exception cref="InvalidOperationException">The represented duration is invalid, and <paramref name="diagnosticOnly"/> is <c>false</c>.</exception>
56 internal static string ToJson(IList<string> paths, bool diagnosticOnly) 56 internal static string ToJson(IList<string> paths, bool diagnosticOnly)
57 { 57 {
58 var firstInvalid = paths.FirstOrDefault(p => !ValidatePath(p)); 58 var firstInvalid = paths.FirstOrDefault(p => !ValidatePath(p));
59 if (firstInvalid == null) 59 if (firstInvalid == null)
60 { 60 {
61 var writer = new StringWriter(); 61 var writer = new StringWriter();
62 #if DOTNET35 62 JsonFormatter.WriteString(writer, string.Join(",", paths.Select( JsonFormatter.ToCamelCase)));
63 var query = paths.Select(JsonFormatter.ToJsonName);
64 JsonFormatter.WriteString(writer, string.Join(",", query.ToArray ()));
65 #else
66 JsonFormatter.WriteString(writer, string.Join(",", paths.Select( JsonFormatter.ToJsonName)));
67 #endif
68 return writer.ToString(); 63 return writer.ToString();
69 } 64 }
70 else 65 else
71 { 66 {
72 if (diagnosticOnly) 67 if (diagnosticOnly)
73 { 68 {
74 var writer = new StringWriter(); 69 var writer = new StringWriter();
75 writer.Write("{ \"@warning\": \"Invalid FieldMask\", \"paths \": "); 70 writer.Write("{ \"@warning\": \"Invalid FieldMask\", \"paths \": ");
76 JsonFormatter.Default.WriteList(writer, (IList)paths); 71 JsonFormatter.Default.WriteList(writer, (IList)paths);
77 writer.Write(" }"); 72 writer.Write(" }");
78 return writer.ToString(); 73 return writer.ToString();
79 } 74 }
80 else 75 else
81 { 76 {
82 throw new InvalidOperationException($"Invalid field mask to be converted to JSON: {firstInvalid}"); 77 throw new InvalidOperationException($"Invalid field mask to be converted to JSON: {firstInvalid}");
83 } 78 }
84 } 79 }
85 } 80 }
86 81
87 /// <summary> 82 /// <summary>
88 /// Checks whether the given path is valid for a field mask. 83 /// Camel-case converter with added strictness for field mask formatting .
89 /// </summary> 84 /// </summary>
90 /// <returns>true if the path is valid; false otherwise</returns> 85 /// <exception cref="InvalidOperationException">The field mask is invali d for JSON representation</exception>
91 private static bool ValidatePath(string input) 86 private static bool ValidatePath(string input)
92 { 87 {
93 for (int i = 0; i < input.Length; i++) 88 for (int i = 0; i < input.Length; i++)
94 { 89 {
95 char c = input[i]; 90 char c = input[i];
96 if (c >= 'A' && c <= 'Z') 91 if (c >= 'A' && c <= 'Z')
97 { 92 {
98 return false; 93 return false;
99 } 94 }
100 if (c == '_' && i < input.Length - 1) 95 if (c == '_' && i < input.Length - 1)
(...skipping 18 matching lines...) Expand all
119 /// diagnose problems - the regular JSON formatter will still throw an e xception for non-normalized 114 /// diagnose problems - the regular JSON formatter will still throw an e xception for non-normalized
120 /// values. 115 /// values.
121 /// </remarks> 116 /// </remarks>
122 /// <returns>A string representation of this value.</returns> 117 /// <returns>A string representation of this value.</returns>
123 public string ToDiagnosticString() 118 public string ToDiagnosticString()
124 { 119 {
125 return ToJson(Paths, true); 120 return ToJson(Paths, true);
126 } 121 }
127 } 122 }
128 } 123 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698