private <T> HTTPContentWriter resolveContentWriter(T content, Class<T> targetClass, Type genericType) { if (content == null) { return null; } if (content instanceof HTTPContentWriter) { return (HTTPContentWriter) content; } String contentType = m_header.getValue(HTTPHeader.CONTENT_TYPE.getName()); if (contentType.isEmpty()) { contentType = m_contentTransformerResolver.guessDefaultContentType(targetClass, genericType); if (contentType.isEmpty()) { contentType = ContentType.APPLICATION_URLENCODED + ";charset=UTF-8"; } contentType(contentType); } HTTPContentWriter writer = m_contentTransformerResolver.resolveWriter( content, targetClass, genericType, new ContentType(contentType)); if (writer == null) { throw new IllegalStateException("no writer registered for mimetype <" + contentType + "> and targetClass <" + targetClass + "> and genericType <" + genericType + ">"); } return writer; }