@@ -136,6 +136,7 @@ private static Map<String, MatcherParser> makeParsers(MatcherParser... extras) {
136
136
return answer ;
137
137
}
138
138
139
+ @ SuppressWarnings ("unchecked" )
139
140
private static <E extends NamedElement > List <ElementMatcher <E >> matcherListFromYaml (
140
141
Object yamlObject , Map <String , MatcherParser > parsers ) {
141
142
if (!(yamlObject instanceof List )) {
@@ -154,6 +155,7 @@ private static <E extends NamedElement> ElementMatcher<E> matcherFromYaml(
154
155
if (!(yamlObject instanceof Map )) {
155
156
throw new IllegalArgumentException ("Bare yaml value not expected: " + yamlObject );
156
157
}
158
+ @ SuppressWarnings ("unchecked" )
157
159
Map <String , Object > yaml = (Map <String , Object >) yamlObject ;
158
160
if (yaml .size () != 1 ) {
159
161
throw new IllegalArgumentException ("Multiple yaml elements not allowed without and:/or:" );
@@ -163,86 +165,85 @@ private static <E extends NamedElement> ElementMatcher<E> matcherFromYaml(
163
165
return matcherFromKeyAndYamlValue (key , value , parsers );
164
166
}
165
167
168
+ @ SuppressWarnings ("unchecked" )
166
169
private static <E extends NamedElement > ElementMatcher <E > matcherFromKeyAndYamlValue (
167
170
String key , Object value , Map <String , MatcherParser > parsers ) {
168
171
MatcherParser parser = parsers .get (key );
169
172
if (parser == null ) {
170
173
throw new IllegalArgumentException ("Unknown yaml element: " + key );
171
174
}
172
- return parser .parse (value , parsers );
175
+ return ( ElementMatcher < E >) parser .parse (value , parsers );
173
176
}
174
177
175
178
enum MatcherParser {
176
179
not {
177
- < E extends NamedElement > ElementMatcher < E > parse (
180
+ ElementMatcher <? extends NamedElement > parse (
178
181
Object value , Map <String , MatcherParser > parsers ) {
179
182
return ElementMatchers .not (matcherFromYaml (value , parsers ));
180
183
}
181
184
},
182
185
and {
183
- < E extends NamedElement > ElementMatcher < E > parse (
186
+ ElementMatcher <? extends NamedElement > parse (
184
187
Object value , Map <String , MatcherParser > parsers ) {
185
- ElementMatcher .Junction <E > matcher = ElementMatchers .any ();
188
+ ElementMatcher .Junction <NamedElement > matcher = ElementMatchers .any ();
186
189
for (ElementMatcher <NamedElement > sub : matcherListFromYaml (value , parsers )) {
187
190
matcher = matcher .and (sub );
188
191
}
189
192
return matcher ;
190
193
}
191
194
},
192
195
or {
193
- < E extends NamedElement > ElementMatcher < E > parse (
196
+ ElementMatcher <? extends NamedElement > parse (
194
197
Object value , Map <String , MatcherParser > parsers ) {
195
- ElementMatcher .Junction <E > matcher = ElementMatchers .none ();
198
+ ElementMatcher .Junction <NamedElement > matcher = ElementMatchers .none ();
196
199
for (ElementMatcher <NamedElement > sub : matcherListFromYaml (value , parsers )) {
197
200
matcher = matcher .or (sub );
198
201
}
199
202
return matcher ;
200
203
}
201
204
},
202
205
name {
203
- < E extends NamedElement > ElementMatcher < E > parse (
206
+ ElementMatcher <? extends NamedElement > parse (
204
207
Object value , Map <String , MatcherParser > parsers ) {
205
208
return ElementMatchers .named (value .toString ());
206
209
}
207
210
},
208
211
name_regex {
209
- < E extends NamedElement > ElementMatcher < E > parse (
212
+ ElementMatcher <? extends NamedElement > parse (
210
213
Object value , Map <String , MatcherParser > parsers ) {
211
214
return ElementMatchers .nameMatches (value .toString ());
212
215
}
213
216
},
214
217
super_type {
215
- < E extends NamedElement > ElementMatcher < E > parse (
218
+ ElementMatcher <? extends NamedElement > parse (
216
219
Object value , Map <String , MatcherParser > parsers ) {
217
- return (ElementMatcher <E >)
218
- AgentElementMatchers .hasSuperType (ElementMatchers .named (value .toString ()));
220
+ return AgentElementMatchers .hasSuperType (ElementMatchers .named (value .toString ()));
219
221
}
220
222
},
221
223
parameter_count {
222
- < E extends NamedElement > ElementMatcher < E > parse (
224
+ ElementMatcher <? extends NamedElement > parse (
223
225
Object value , Map <String , MatcherParser > parsers ) {
224
- return (ElementMatcher <E >)
225
- ElementMatchers .takesArguments (Integer .parseInt (value .toString ()));
226
+ return ElementMatchers .takesArguments (Integer .parseInt (value .toString ()));
226
227
}
227
228
},
228
229
parameter {
229
- < E extends NamedElement > ElementMatcher < E > parse (
230
+ ElementMatcher <? extends NamedElement > parse (
230
231
Object value , Map <String , MatcherParser > parsers ) {
231
232
if (!(value instanceof Map )) {
232
233
throw new IllegalArgumentException ("Expected index: and type: for parameter:" );
233
234
}
235
+ @ SuppressWarnings ("unchecked" )
234
236
Map <String , Object > yamlVal = (Map <String , Object >) value ;
235
237
if (yamlVal .size () != 2 || !yamlVal .containsKey ("index" ) || !yamlVal .containsKey ("type" )) {
236
238
throw new IllegalArgumentException ("Expected index: and type: for parameter:" );
237
239
}
238
- return (ElementMatcher <E >)
239
- ElementMatchers .takesArgument (
240
- Integer .parseInt (yamlVal .get ("index" ).toString ()),
241
- ElementMatchers .named (yamlVal .get ("type" ).toString ()));
240
+ return ElementMatchers .takesArgument (
241
+ Integer .parseInt (yamlVal .get ("index" ).toString ()),
242
+ ElementMatchers .named (yamlVal .get ("type" ).toString ()));
242
243
}
243
244
};
244
245
245
- abstract < E extends NamedElement > ElementMatcher < E > parse (
246
+ abstract ElementMatcher <? extends NamedElement > parse (
246
247
Object value , Map <String , MatcherParser > parsers );
247
248
}
248
249
0 commit comments