1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* Licensed to the Apache Software Foundation (ASF) under one or more
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements.  See the NOTICE file distributed with
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership.
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License.  You may obtain a copy of the License at
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License.
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage java.net;
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException;
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.InputStream;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.List;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Map;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code CacheResponse} is used for getting resource data from the installed
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code ResponseCache}. A {@code CacheResponse} object provides an {@code
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * InputStream} to access the response body and also a method {@code
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * getHeaders()} to fetch the response headers.
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see ResponseCache
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic abstract class CacheResponse {
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * This implementation does nothing.
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public CacheResponse() {
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super();
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Returns an {@code InputStream} to access the response body.
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return an {@code InputStream} which can be used to fetch the response
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *         body.
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws IOException
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if an I/O error is encountered while retrieving the response
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             body.
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public abstract InputStream getBody() throws IOException;
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Returns an immutable {@code Map} which contains the response headers
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * information.
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return an immutable {@code Map} which contains the response headers. The
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *         generic map contains response header fields as the key and a list
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *         of strings as values.
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws IOException
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if an I/O error is encountered while retrieving the response
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             headers.
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public abstract Map<String, List<String>> getHeaders() throws IOException;
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
64