/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.service.http.api.domain.message.request;
import org.mule.service.http.api.domain.HttpProtocol;
import org.mule.service.http.api.domain.ParameterMap;
import org.mule.service.http.api.domain.entity.HttpEntity;
import org.mule.service.http.api.domain.entity.InputStreamHttpEntity;
import org.mule.service.http.api.domain.message.BaseHttpMessage;
import java.util.ArrayList;
import java.util.Collection;
/**
* Basic implementation of {@link HttpRequest}. Instances can only be obtained through an {@link HttpRequestBuilder}.
*/
class DefaultHttpRequest extends BaseHttpMessage implements HttpRequest {
private final String uri;
private final String path;
private final String method;
private HttpProtocol version;
private ParameterMap headers;
private ParameterMap queryParams;
private HttpEntity entity;
DefaultHttpRequest(String uri, String path, String method, ParameterMap headers, ParameterMap queryParams, HttpEntity entity) {
this.uri = uri;
this.path = path;
this.method = method;
this.headers = headers;
this.queryParams = queryParams;
this.entity = entity;
}
@Override
public HttpProtocol getProtocol() {
return this.version;
}
@Override
public String getPath() {
return path;
}
@Override
public String getMethod() {
return method;
}
@Override
public Collection<String> getHeaderNames() {
if (headers == null) {
return new ArrayList<>();
}
return headers.keySet();
}
@Override
public String getHeaderValue(String headerName) {
if (headers == null) {
return null;
}
return headers.get(headerName);
}
@Override
public Collection<String> getHeaderValues(String headerName) {
return headers.getAll(headerName);
}
@Override
public HttpEntity getEntity() {
return entity;
}
@Override
public String getUri() {
return uri;
}
public ParameterMap getQueryParams() {
return queryParams;
}
@Override
public InputStreamHttpEntity getInputStreamEntity() {
return null;
}
}