org.apache.cxf.jaxrs.impl.AbstractRequestContextImpl Maven / Gradle / Ivy
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.cxf.jaxrs.impl;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.ws.rs.core.Cookie;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.cxf.jaxrs.utils.HttpUtils;
import org.apache.cxf.jaxrs.utils.JAXRSUtils;
import org.apache.cxf.message.Message;
public abstract class AbstractRequestContextImpl extends AbstractPropertiesImpl {
protected HttpHeaders h;
private boolean responseContext;
public AbstractRequestContextImpl(Message message, boolean responseContext) {
super(message);
this.h = new HttpHeadersImpl(message);
this.responseContext = responseContext;
}
public void abortWith(Response response) {
checkContext();
m.getExchange().put(Response.class, JAXRSUtils.copyResponseIfNeeded(response));
}
public List getAcceptableLanguages() {
return getHttpHeaders().getAcceptableLanguages();
}
public List getAcceptableMediaTypes() {
return getHttpHeaders().getAcceptableMediaTypes();
}
public Map getCookies() {
return getHttpHeaders().getCookies();
}
public Date getDate() {
return getHttpHeaders().getDate();
}
public String getHeaderString(String name) {
return getHttpHeaders().getHeaderString(name);
}
public Locale getLanguage() {
return getHttpHeaders().getLanguage();
}
public int getLength() {
return getHttpHeaders().getLength();
}
public MediaType getMediaType() {
return getHttpHeaders().getMediaType();
}
public String getMethod() {
return HttpUtils.getProtocolHeader(m, Message.HTTP_REQUEST_METHOD, null);
}
public void setMethod(String method) throws IllegalStateException {
checkContext();
m.put(Message.HTTP_REQUEST_METHOD, method);
}
protected HttpHeaders getHttpHeaders() {
return h != null ? h : new HttpHeadersImpl(m);
}
protected void checkContext() {
if (responseContext) {
throw new IllegalStateException();
}
}
}