Merge pull request #900 from Blewzman/FixAggregateExceptionGetBaseException
[mono.git] / mcs / class / System.Net.Http / System.Net.Http.Headers / WarningHeaderValue.cs
index fc58299cf0bd0d25dff4223992a0a7adb45faa06..5c65339ef7af02940d04391260eca6c4fd5f096b 100644 (file)
@@ -27,6 +27,7 @@
 //
 
 using System.Globalization;
+using System.Collections.Generic;
 
 namespace System.Net.Http.Headers
 {
@@ -100,13 +101,28 @@ namespace System.Net.Http.Headers
 
                        throw new FormatException (input);
                }
-               
+
                public static bool TryParse (string input, out WarningHeaderValue parsedValue)
                {
+                       var lexer = new Lexer (input);
+                       Token token;
+                       if (TryParseElement (lexer, out parsedValue, out token) && token == Token.Type.End)
+                               return true;
+
                        parsedValue = null;
+                       return false;
+               }
 
-                       var lexer = new Lexer (input);
-                       var t = lexer.Scan ();
+               internal static bool TryParse (string input, int minimalCount, out List<WarningHeaderValue> result)
+               {
+                       return CollectionParser.TryParse (input, minimalCount, TryParseElement, out result);
+               }
+
+               static bool TryParseElement (Lexer lexer, out WarningHeaderValue parsedValue, out Token t)      
+               {
+                       parsedValue = null;
+
+                       t = lexer.Scan ();
 
                        if (t != Token.Type.Token)
                                return false;
@@ -148,9 +164,6 @@ namespace System.Net.Http.Headers
                                t = lexer.Scan ();
                        }
 
-                       if (t != Token.Type.End)
-                               return false;
-
                        parsedValue = value;
                        return true;
                }