test_class.declarator: jsonContent = "{\"imageUrl\":\"http://static.naver.com/volley-ext.jpg\"," +
  			   "\"title\":\"Volley extention has released\"," +
  			   "\"content\":\"Very good News\"}"
test_class.modifier: private static final
test_class.original_string: private static final String jsonContent = "{\"imageUrl\":\"http://static.naver.com/volley-ext.jpg\"," +
  			   "\"title\":\"Volley extention has released\"," +
  			   "\"content\":\"Very good News\"}";
test_class.type: String
test_class.var_name: jsonContent
test_class.declarator: DEFAULT_STATUS_CODE = 200
test_class.modifier: private static final
test_class.original_string: private static final int DEFAULT_STATUS_CODE = 200;
test_class.type: int
test_class.var_name: DEFAULT_STATUS_CODE
test_class.declarator: networkResponse = null
test_class.modifier: private
test_class.original_string: private NetworkResponse networkResponse = null;
test_class.type: NetworkResponse
test_class.var_name: networkResponse
test_class.declarator: parsers = null
test_class.modifier: private
test_class.original_string: private Map<ContentType, NetworkResponseParser> parsers = null;
test_class.type: Map<ContentType, NetworkResponseParser>
test_class.var_name: parsers
test_class.declarator: integratedResponseParser = null
test_class.modifier: private
test_class.original_string: private NetworkResponseParser integratedResponseParser = null;
test_class.type: NetworkResponseParser
test_class.var_name: integratedResponseParser
test_class.file: volleyer/src/test/java/com/navercorp/volleyextensions/volleyer/response/parser/IntegratedNetworkResponseParserTest.java
test_class.identifier: IntegratedNetworkResponseParserTest
test_case.body: @Test
  	public void resultShouldBeStringWhenTargetClassIsString() {
  		// Given
  		networkResponse = createJsonNetworkResponse();
  		parsers = createDefaultParsersMap();
  		Class<String> clazz = String.class;
  		integratedResponseParser = createIntegratedNetworkResponseParser(parsers);
  		// When
  		Response<String> response = integratedResponseParser.parseNetworkResponse(networkResponse, clazz);
  		// Then
  		assertThat(jsonContent, is(response.result));
  	}
test_case.class_method_signature: IntegratedNetworkResponseParserTest.resultShouldBeStringWhenTargetClassIsString()
test_case.full_signature: @Test public void resultShouldBeStringWhenTargetClassIsString()
test_case.identifier: resultShouldBeStringWhenTargetClassIsString
test_case.invocations: createJsonNetworkResponse createDefaultParsersMap createIntegratedNetworkResponseParser parseNetworkResponse assertThat is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void resultShouldBeStringWhenTargetClassIsString()
focal_class.declarator: CONTENT_TYPE_HEADER_KEY = "Content-Type"
focal_class.modifier: private static final
focal_class.original_string: private static final String CONTENT_TYPE_HEADER_KEY = "Content-Type";
focal_class.type: String
focal_class.var_name: CONTENT_TYPE_HEADER_KEY
focal_class.declarator: STRING_NETWORK_RESPONSE_PARSER = new StringNetworkResponseParser()
focal_class.modifier: private static final
focal_class.original_string: private static final NetworkResponseParser STRING_NETWORK_RESPONSE_PARSER = new StringNetworkResponseParser();
focal_class.type: NetworkResponseParser
focal_class.var_name: STRING_NETWORK_RESPONSE_PARSER
focal_class.declarator: parsers = new HashMap<ContentType, NetworkResponseParser>()
focal_class.modifier: private final
focal_class.original_string: private final Map<ContentType, NetworkResponseParser> parsers = new HashMap<ContentType, NetworkResponseParser>();
focal_class.type: Map<ContentType, NetworkResponseParser>
focal_class.var_name: parsers
focal_class.file: volleyer/src/main/java/com/navercorp/volleyextensions/volleyer/response/parser/IntegratedNetworkResponseParser.java
focal_class.identifier: IntegratedNetworkResponseParser
focal_class.interfaces: implements NetworkResponseParser
focal_class.class_method_signature: IntegratedNetworkResponseParser.IntegratedNetworkResponseParser(Map<ContentType, NetworkResponseParser> parsers)
focal_class.full_signature:   IntegratedNetworkResponseParser(Map<ContentType, NetworkResponseParser> parsers)
focal_class.identifier: IntegratedNetworkResponseParser
focal_class.parameters: (Map<ContentType, NetworkResponseParser> parsers)
focal_class.signature:  IntegratedNetworkResponseParser(Map<ContentType, NetworkResponseParser> parsers)
focal_class.class_method_signature: IntegratedNetworkResponseParser.parseNetworkResponse(NetworkResponse response, Class<T> clazz)
focal_class.full_signature: @Override public Response<T> parseNetworkResponse(NetworkResponse response, Class<T> clazz)
focal_class.identifier: parseNetworkResponse
focal_class.modifiers: @Override public
focal_class.parameters: (NetworkResponse response, Class<T> clazz)
focal_class.return: Response<T>
focal_class.signature: Response<T> parseNetworkResponse(NetworkResponse response, Class<T> clazz)
focal_class.class_method_signature: IntegratedNetworkResponseParser.getResponseHeader(NetworkResponse response, String headerKey)
focal_class.full_signature: protected String getResponseHeader(NetworkResponse response, String headerKey)
focal_class.identifier: getResponseHeader
focal_class.modifiers: protected
focal_class.parameters: (NetworkResponse response, String headerKey)
focal_class.return: String
focal_class.signature: String getResponseHeader(NetworkResponse response, String headerKey)
focal_method.body: @Override
  	public <T> Response<T> parseNetworkResponse(NetworkResponse response, Class<T> clazz) {
  		Assert.notNull(response, "NetworkResponse");
  		Assert.notNull(clazz, "Target class token");
  
  		// Skip parsing if target class is {@code Void}
  		if (clazz == Void.class) {
  			return Response.success(null, null);
  		}
  
  		// Use StringNetworkResponseParser if target class is String
  		if (clazz == String.class) {
  			return STRING_NETWORK_RESPONSE_PARSER.parseNetworkResponse(response, clazz);
  		}
  
  		// Return the response without using any other parser if target class is NetworkResponse
  		if (clazz == NetworkResponse.class) {
  			@SuppressWarnings("unchecked")
  			Response<T> successResponse = (Response<T>) Response.success(response, HttpHeaderParser.parseCacheHeaders(response));
  			return successResponse;
  		}
  
  		// Get a content type string from the response header
  		String contentTypeString = getResponseHeader(response, CONTENT_TYPE_HEADER_KEY);
  		// Throw an error if content type is null
  		if (contentTypeString == null) {
  			return Response.error(new ParseError(new UnsupportedContentTypeException("It cannot find any response parser, "
  					+ "because the response content type is null.")));
  		}
  
  		// Create a content type instance
  		ContentType contentType = ContentType.createContentType(contentTypeString);
  		// Get a network response parser from parsers collection
  		NetworkResponseParser responseParser = parsers.get(contentType);
  		// Throw an error if it cannot find any response parser
  		if (responseParser == null) {
  			return Response.error(new ParseError(new UnsupportedContentTypeException("It cannot find any response parser "
  					+ "for the response content type.")));	
  		}
  
  		// Parse the response and return it
  		return responseParser.parseNetworkResponse(response, clazz);
  	}
focal_method.class_method_signature: IntegratedNetworkResponseParser.parseNetworkResponse(NetworkResponse response, Class<T> clazz)
focal_method.full_signature: @Override public Response<T> parseNetworkResponse(NetworkResponse response, Class<T> clazz)
focal_method.identifier: parseNetworkResponse
focal_method.invocations: notNull notNull success parseNetworkResponse success parseCacheHeaders getResponseHeader error createContentType get error parseNetworkResponse
focal_method.modifiers: @Override public
focal_method.parameters: (NetworkResponse response, Class<T> clazz)
focal_method.return: Response<T>
focal_method.signature: Response<T> parseNetworkResponse(NetworkResponse response, Class<T> clazz)