blob: 297c8c7f8c9474f6a85f56fcd0b995cdbd4bdf5b [file] [log] [blame]
// 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.doris.http;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import java.util.List;
import java.util.Map;
import java.util.Set;
import io.netty.handler.codec.http.cookie.Cookie;
public class BaseResponse {
private String contentType;
protected StringBuilder content = new StringBuilder();
protected Map<String, List<String>> customHeaders = Maps.newHashMap();
private Set<Cookie> cookies = Sets.newHashSet();
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public StringBuilder getContent() {
return content;
}
public Set<Cookie> getCookies() {
return cookies;
}
public Map<String, List<String>> getCustomHeaders() {
return customHeaders;
}
// update old key-value mapping of 'name' if Exist, or add new mapping if not exists.
// It will only change the mapping of 'name', other header will not be changed.
public void updateHeader(String name, String value) {
if (customHeaders == null) {
customHeaders = Maps.newHashMap();
}
customHeaders.remove(name);
addHeader(name, value);
}
// Add a custom header.
private void addHeader(String name, String value) {
if (customHeaders == null) {
customHeaders = Maps.newHashMap();
}
List<String> header = customHeaders.get(name);
if (header == null) {
header = Lists.newArrayList();
customHeaders.put(name, header);
}
header.add(value);
}
public void appendContent(String buffer) {
if (content == null) {
content = new StringBuilder();
}
content.append(buffer);
}
public void addCookie(Cookie cookie) {
cookies.add(cookie);
}
public void updateCookieAge(BaseRequest request, String cookieName, long age) {
Cookie cookie = request.getCookieByName(cookieName);
if (cookie != null) {
cookies.remove(cookie);
cookie.setMaxAge(age);
cookies.add(cookie);
}
}
}