private <T> Response<T> dispatchByMethod(Request<T> request) {
		HttpMethod method = HttpMethodUtil.retrieveMethod(request);

		String target = getTargetUrl();

		WebClient webClient = instantiateWebClient(target);

		webClient = prepareAuthorization(webClient, request);

		switch (method) {
			case GET:
				return doGet(webClient, request);
			case POST:
				return doPost(webClient, request);
			case PUT:
				return doPut(webClient, request);
			case DELETE:
				return doDelete(webClient, request);
			default:
				throw new CommunicationErrorException(HttpStatus.Not_Implemented);
		}
	}
private < T > Response < T > dispatchByMethod ( Request < T > request ) { HttpMethod method = HttpMethodUtil . retrieveMethod ( request ) ; String target = getTargetUrl ( ) ; WebClient webClient = instantiateWebClient ( target ) ; webClient = prepareAuthorization ( webClient , request ) ; switch ( method ) { case GET : return doGet ( webClient , request ) ; case POST : return doPost ( webClient , request ) ; case PUT : return doPut ( webClient , request ) ; case DELETE : return doDelete ( webClient , request ) ; default : throw new CommunicationErrorException ( HttpStatus . Not_Implemented ) ; } }
@param request
@return