1a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath/* 2a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * Copyright (C) 2013 Square, Inc. 3a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * 4a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * Licensed under the Apache License, Version 2.0 (the "License"); 5a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * you may not use this file except in compliance with the License. 6a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * You may obtain a copy of the License at 7a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * 8a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 9a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * 10a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * Unless required by applicable law or agreed to in writing, software 11a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 12a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * See the License for the specific language governing permissions and 14a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * limitations under the License. 15a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath */ 16a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamathpackage com.squareup.okhttp; 17a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath 18a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath/** 19a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath * A failure attempting to retrieve an HTTP response. 20a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath */ 213c938a3f6b61ce5e2dba0d039b03fe73b89fd26cNeil Fullerpublic final class Failure { 22a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath private final Request request; 23a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath private final Throwable exception; 24a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath 25a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath private Failure(Builder builder) { 26a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath this.request = builder.request; 27a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath this.exception = builder.exception; 28a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath } 29a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath 30a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath public Request request() { 31a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath return request; 32a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath } 33a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath 34a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath public Throwable exception() { 35a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath return exception; 36a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath } 37a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath 38a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath public static class Builder { 39a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath private Request request; 40a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath private Throwable exception; 41a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath 42a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath public Builder request(Request request) { 43a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath this.request = request; 44a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath return this; 45a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath } 46a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath 47a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath public Builder exception(Throwable exception) { 48a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath this.exception = exception; 49a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath return this; 50a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath } 51a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath 52a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath public Failure build() { 53a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath return new Failure(this); 54a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath } 55a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath } 56a82f42bbeedd0b07f3892f3b0efaa8122dc8f264Narayan Kamath} 57