1328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon/* 2328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * Copyright (C) 2009 The Android Open Source Project 3328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 4328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * Licensed under the Apache License, Version 2.0 (the "License"); 5328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * you may not use this file except in compliance with the License. 6328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * You may obtain a copy of the License at 7328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 8328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * http://www.apache.org/licenses/LICENSE-2.0 9328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 10328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * Unless required by applicable law or agreed to in writing, software 11328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * distributed under the License is distributed on an "AS IS" BASIS, 12328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * See the License for the specific language governing permissions and 14328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * limitations under the License. 15328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 16328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon 17328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixonpackage android.webkit; 18328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon 19328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixonimport java.io.InputStream; 20328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixonimport java.util.Map; 21328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon 22328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon/** 23328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * This class encapsulates the content generated by a plugin. The 24328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * data itself is meant to be loaded into webkit via the 25328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * PluginContentLoader class, which needs to be able to construct an 26328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * HTTP response. For this, it needs a stream with the response body, 27328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * the length of the body, the response headers, and the response 28328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * status code. The PluginData class is the container for all these 29328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * parts. 30328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 31328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @hide 32328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 33328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * deprecated, so is this class. 34328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 35328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon@Deprecated 36328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixonpublic final class PluginData { 37328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon /** 38328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * The content stream. 39328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 40328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon private InputStream mStream; 41328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon /** 42328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * The content length. 43328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 44328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon private long mContentLength; 45328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon /** 46328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * The associated HTTP response headers stored as a map of 47328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * lowercase header name to [ unmodified header name, header value]. 48328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * TODO: This design was always a hack. Remove (involves updating 49328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * the Gears C++ side). 50328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 51328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon private Map<String, String[]> mHeaders; 52328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon 53328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon /** 54328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * The associated HTTP response code. 55328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 56328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon private int mStatusCode; 57328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon 58328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon /** 59328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * Creates a PluginData instance. 60328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 61328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @param stream The stream that supplies content for the plugin. 62328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @param length The length of the plugin content. 63328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @param headers The response headers. Map of 64328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * lowercase header name to [ unmodified header name, header value] 65328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @param length The HTTP response status code. 66328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 67328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @hide 68328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 69328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * deprecated, so is this class. 70328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 71328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon @Deprecated 72328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon public PluginData( 73328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon InputStream stream, 74328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon long length, 75328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon Map<String, String[]> headers, 76328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon int code) { 77328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon mStream = stream; 78328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon mContentLength = length; 79328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon mHeaders = headers; 80328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon mStatusCode = code; 81328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon } 82328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon 83328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon /** 84328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * Returns the input stream that contains the plugin content. 85328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 86328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @return An InputStream instance with the plugin content. 87328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 88328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @hide 89328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 90328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * deprecated, so is this class. 91328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 92328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon @Deprecated 93328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon public InputStream getInputStream() { 94328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon return mStream; 95328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon } 96328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon 97328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon /** 98328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * Returns the length of the plugin content. 99328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 100328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @return the length of the plugin content. 101328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 102328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @hide 103328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 104328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * deprecated, so is this class. 105328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 106328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon @Deprecated 107328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon public long getContentLength() { 108328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon return mContentLength; 109328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon } 110328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon 111328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon /** 112328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * Returns the HTTP response headers associated with the plugin 113328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * content. 114328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 115328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @return A Map<String, String[]> containing all headers. The 116328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * mapping is 'lowercase header name' to ['unmodified header 117328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * name', header value]. 118328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 119328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @hide 120328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 121328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * deprecated, so is this class. 122328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 123328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon @Deprecated 124328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon public Map<String, String[]> getHeaders() { 125328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon return mHeaders; 126328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon } 127328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon 128328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon /** 129328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * Returns the HTTP status code for the response. 130328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 131328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @return The HTTP statue code, e.g 200. 132328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * 133328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @hide 134328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 135328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon * deprecated, so is this class. 136328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon */ 137328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon @Deprecated 138328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon public int getStatusCode() { 139328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon return mStatusCode; 140328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon } 141328dd7d7059c70b6776c6e29f9ea315f2f8aed3fJonathan Dixon} 142