MCPcopy Index your code
hub / github.com/OpenFeign/feign / checkMapKeys

Method checkMapKeys

core/src/main/java/feign/Contract.java:182–210  ·  view source on GitHub ↗
(String name, Type genericType)

Source from the content-addressed store, hash-verified

180 }
181
182 private static void checkMapKeys(String name, Type genericType) {
183 Class<?> keyClass = null;
184
185 // assume our type parameterized
186 if (ParameterizedType.class.isAssignableFrom(genericType.getClass())) {
187 final Type[] parameterTypes = ((ParameterizedType) genericType).getActualTypeArguments();
188 keyClass = (Class<?>) parameterTypes[0];
189 } else if (genericType instanceof Class<?>) {
190 // raw class, type parameters cannot be inferred directly, but we can scan any extended
191 // interfaces looking for any explict types
192 final Type[] interfaces = ((Class<?>) genericType).getGenericInterfaces();
193 for (final Type extended : interfaces) {
194 if (ParameterizedType.class.isAssignableFrom(extended.getClass())) {
195 // use the first extended interface we find.
196 final Type[] parameterTypes = ((ParameterizedType) extended).getActualTypeArguments();
197 keyClass = (Class<?>) parameterTypes[0];
198 break;
199 }
200 }
201 }
202
203 if (keyClass != null) {
204 checkState(
205 String.class.equals(keyClass),
206 "%s key must be a String: %s",
207 name,
208 keyClass.getSimpleName());
209 }
210 }
211
212 /**
213 * Called by parseAndValidateMetadata twice, first on the declaring class, then on the target

Callers 2

checkMapStringMethod · 0.95

Calls 3

checkStateMethod · 0.80
equalsMethod · 0.45

Tested by

no test coverage detected