Check.cs revision 324c4644fee44b9898524c09511bd33c3f12e2df
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