1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing System; 2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing System.Collections.Generic; 3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing System.Text; 4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Taken from Mono sources, changed to work on C# 2.0 compilers 6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Check.cs 9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Author: 11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Jb Evain (jbevain@novell.com) 12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Copyright (C) 2007 Novell, Inc (http://www.novell.com) 14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Permission is hereby granted, free of charge, to any person obtaining 16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// a copy of this software and associated documentation files (the 17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// "Software"), to deal in the Software without restriction, including 18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// without limitation the rights to use, copy, modify, merge, publish, 19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// distribute, sublicense, and/or sell copies of the Software, and to 20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// permit persons to whom the Software is furnished to do so, subject to 21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// the following conditions: 22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// The above copyright notice and this permission notice shall be 24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// included in all copies or substantial portions of the Software. 25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvernamespace Antlr.Runtime.JavaExtensions { 36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver static class Check { 38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void Source (object source) 40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void Source1AndSource2 (object source1,object source2) 46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source1 == null) 48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source1"); 49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source2 == null) 50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source2"); 51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void SourceAndFuncAndSelector ( object source, object func, object selector) 54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (func == null) 58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("func"); 59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (selector == null) 60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("selector"); 61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void SourceAndFunc (object source, object func) 65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (func == null) 69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("func"); 70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void SourceAndSelector (object source, object selector) 73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (selector == null) 77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("selector"); 78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void SourceAndPredicate (object source, object predicate) 81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (predicate == null) 85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("predicate"); 86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void FirstAndSecond (object first, object second) 89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (first == null) 91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("first"); 92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (second == null) 93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("second"); 94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void SourceAndKeySelector (object source, object keySelector) 97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (keySelector == null) 101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("keySelector"); 102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void SourceAndKeyElementSelectors (object source, object keySelector, object elementSelector) 105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (keySelector == null) 109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("keySelector"); 110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (elementSelector == null) 111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("elementSelector"); 112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void SourceAndKeyResultSelectors (object source, object keySelector, object resultSelector) 114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (keySelector == null) 118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("keySelector"); 119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (resultSelector == null) 120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("resultSelector"); 121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void SourceAndCollectionSelectorAndResultSelector (object source, object collectionSelector, object resultSelector) 124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (collectionSelector == null) 128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("collectionSelector"); 129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (resultSelector == null) 130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("resultSelector"); 131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void SourceAndCollectionSelectors (object source, object collectionSelector, object selector) 134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (collectionSelector == null) 138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("collectionSelector"); 139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (selector == null) 140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("selector"); 141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void JoinSelectors (object outer, object inner, object outerKeySelector, object innerKeySelector, object resultSelector) 144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (outer == null) 146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("outer"); 147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (inner == null) 148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("inner"); 149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (outerKeySelector == null) 150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("outerKeySelector"); 151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (innerKeySelector == null) 152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("innerKeySelector"); 153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (resultSelector == null) 154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("resultSelector"); 155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public static void GroupBySelectors (object source, object keySelector, object elementSelector, object resultSelector) 158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { 159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (source == null) 160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("source"); 161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (keySelector == null) 162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("keySelector"); 163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (elementSelector == null) 164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("elementSelector"); 165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (resultSelector == null) 166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver throw new ArgumentNullException ("resultSelector"); 167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 170