1 /* 2 * Copyright (C) 2021 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.libraries.entitlement.http; 18 19 import com.android.libraries.entitlement.http.HttpConstants.ContentType; 20 21 import com.google.auto.value.AutoValue; 22 import com.google.common.collect.ImmutableList; 23 24 import java.util.List; 25 26 /** 27 * The response of the http request. 28 */ 29 @AutoValue 30 public abstract class HttpResponse { 31 /** 32 * Content type of the response. 33 */ contentType()34 public abstract int contentType(); 35 body()36 public abstract String body(); 37 responseCode()38 public abstract int responseCode(); 39 responseMessage()40 public abstract String responseMessage(); 41 42 /** 43 * Content of the "Set-Cookie" response header. 44 */ cookies()45 public abstract ImmutableList<String> cookies(); 46 47 /** 48 * Builder of {@link HttpResponse}. 49 */ 50 @AutoValue.Builder 51 public abstract static class Builder { build()52 public abstract HttpResponse build(); 53 setContentType(int contentType)54 public abstract Builder setContentType(int contentType); 55 setBody(String body)56 public abstract Builder setBody(String body); 57 setResponseCode(int responseCode)58 public abstract Builder setResponseCode(int responseCode); 59 setResponseMessage(String responseMessage)60 public abstract Builder setResponseMessage(String responseMessage); 61 62 /** 63 * Sets the content of the "Set-Cookie" response headers. 64 */ setCookies(List<String> cookies)65 public abstract Builder setCookies(List<String> cookies); 66 } 67 builder()68 public static Builder builder() { 69 return new AutoValue_HttpResponse.Builder() 70 .setContentType(ContentType.UNKNOWN) 71 .setBody("") 72 .setResponseCode(0) 73 .setResponseMessage("") 74 .setCookies(ImmutableList.of()); 75 } 76 77 @Override toString()78 public final String toString() { 79 return new StringBuilder("HttpResponse{") 80 .append("contentType=") 81 .append(contentType()) 82 .append(" body=(") 83 .append(body().length()) 84 .append(" characters)") 85 .append(" responseCode=") 86 .append(responseCode()) 87 .append(" responseMessage=") 88 .append(responseMessage()) 89 .append(" cookies=[") 90 .append(cookies().size()) 91 .append(" cookies]}") 92 .toString(); 93 } 94 } 95