test_class.declarator: softly = new JUnitSoftAssertions()
test_class.modifier: @Rule
  	public
test_class.original_string: @Rule
  	public JUnitSoftAssertions softly = new JUnitSoftAssertions();
test_class.type: JUnitSoftAssertions
test_class.var_name: softly
test_class.file: restx-common/src/test/java/restx/common/TypesTest.java
test_class.identifier: TypesTest
test_case.body: @Test
  	public void getRawType_should_return_the_class_of_array_types() throws NoSuchMethodException {
  		softly.assertThat(Types.getRawType(new TypeReference<List<String>[]>() {}.getType()))
  				.isEqualTo(List[].class);
  	}
test_case.class_method_signature: TypesTest.getRawType_should_return_the_class_of_array_types()
test_case.full_signature: @Test public void getRawType_should_return_the_class_of_array_types()
test_case.identifier: getRawType_should_return_the_class_of_array_types
test_case.invocations: isEqualTo assertThat getRawType getType
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void getRawType_should_return_the_class_of_array_types()
focal_class.file: restx-common/src/main/java/restx/common/Types.java
focal_class.identifier: Types
focal_class.class_method_signature: Types.newParameterizedType(final Class<?> rawType, final Type... arguments)
focal_class.full_signature: public static ParameterizedType newParameterizedType(final Class<?> rawType, final Type... arguments)
focal_class.identifier: newParameterizedType
focal_class.modifiers: public static
focal_class.parameters: (final Class<?> rawType, final Type... arguments)
focal_class.return: ParameterizedType
focal_class.signature: ParameterizedType newParameterizedType(final Class<?> rawType, final Type... arguments)
focal_class.class_method_signature: Types.getRawType(Type type)
focal_class.full_signature: public static Class<?> getRawType(Type type)
focal_class.identifier: getRawType
focal_class.modifiers: public static
focal_class.parameters: (Type type)
focal_class.return: Class<?>
focal_class.signature: Class<?> getRawType(Type type)
focal_class.class_method_signature: Types.isAssignableFrom(Type t1, Type t2)
focal_class.full_signature: public static boolean isAssignableFrom(Type t1, Type t2)
focal_class.identifier: isAssignableFrom
focal_class.modifiers: public static
focal_class.parameters: (Type t1, Type t2)
focal_class.return: boolean
focal_class.signature: boolean isAssignableFrom(Type t1, Type t2)
focal_method.body: public static Class<?> getRawType(Type type) {
  		if (type instanceof Class<?>) {
  			return (Class<?>) type;
  		}
  
  		if (type instanceof ParameterizedType) {
  			Type rawType = ((ParameterizedType) type).getRawType();
  			if (rawType instanceof Class<?>) {
  				return (Class<?>) rawType;
  			}
  			throw new IllegalStateException(
  					format("getRawType of the parameterized type %s did not return a class, but %s", type, rawType));
  		}
  
  		if (type instanceof GenericArrayType) {
  			Type componentType = ((GenericArrayType) type).getGenericComponentType();
  			return Array.newInstance(getRawType(componentType), 0).getClass();
  		}
  
  		throw new IllegalArgumentException(
  				format("Unhandled type %s, unable to extract its raw type.", type));
  	}
focal_method.class_method_signature: Types.getRawType(Type type)
focal_method.full_signature: public static Class<?> getRawType(Type type)
focal_method.identifier: getRawType
focal_method.invocations: getRawType format getGenericComponentType getClass newInstance getRawType format
focal_method.modifiers: public static
focal_method.parameters: (Type type)
focal_method.return: Class<?>
focal_method.signature: Class<?> getRawType(Type type)