OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / frameworks / base / core / java / android / webkit / UrlInterceptRegistry.java
1 /*
2  * Copyright (C) 2008 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 android.webkit;
18
19 import android.webkit.CacheManager.CacheResult;
20 import android.webkit.PluginData;
21 import android.webkit.UrlInterceptHandler;
22
23 import java.util.Iterator;
24 import java.util.LinkedList;
25 import java.util.Map;
26
27 /**
28  * @deprecated This class was intended to be used by Gears. Since Gears was
29  * deprecated, so is this class.
30  */
31 @Deprecated
32 public final class UrlInterceptRegistry {
33
34     private final static String LOGTAG = "intercept";
35
36     private static boolean mDisabled = false;
37
38     private static LinkedList mHandlerList;
39
40     private static synchronized LinkedList getHandlers() {
41         if(mHandlerList == null)
42             mHandlerList = new LinkedList<UrlInterceptHandler>();
43         return mHandlerList;
44     }
45
46     /**
47      * set the flag to control whether url intercept is enabled or disabled
48      * 
49      * @param disabled true to disable the cache
50      *
51      * @deprecated This class was intended to be used by Gears. Since Gears was
52      * deprecated, so is this class.
53      */
54     @Deprecated
55     public static synchronized void setUrlInterceptDisabled(boolean disabled) {
56         mDisabled = disabled;
57     }
58
59     /**
60      * get the state of the url intercept, enabled or disabled
61      * 
62      * @return return if it is disabled
63      *
64      * @deprecated This class was intended to be used by Gears. Since Gears was
65      * deprecated, so is this class.
66      */
67     @Deprecated
68     public static synchronized boolean urlInterceptDisabled() {
69         return mDisabled;
70     }
71
72     /**
73      * Register a new UrlInterceptHandler. This handler will be called
74      * before any that were previously registered.
75      *
76      * @param handler The new UrlInterceptHandler object
77      * @return true if the handler was not previously registered.
78      *
79      * @deprecated This class was intended to be used by Gears. Since Gears was
80      * deprecated, so is this class.
81      */
82     @Deprecated
83     public static synchronized boolean registerHandler(
84             UrlInterceptHandler handler) {
85         if (!getHandlers().contains(handler)) {
86             getHandlers().addFirst(handler);
87             return true;
88         } else {
89             return false;
90         }
91     }
92
93     /**
94      * Unregister a previously registered UrlInterceptHandler.
95      *
96      * @param handler A previously registered UrlInterceptHandler.
97      * @return true if the handler was found and removed from the list.
98      *
99      * @deprecated This class was intended to be used by Gears. Since Gears was
100      * deprecated, so is this class.
101      */
102     @Deprecated
103     public static synchronized boolean unregisterHandler(
104             UrlInterceptHandler handler) {
105         return getHandlers().remove(handler);
106     }
107
108     /**
109      * Given an url, returns the CacheResult of the first
110      * UrlInterceptHandler interested, or null if none are.
111      *
112      * @return A CacheResult containing surrogate content.
113      *
114      * @deprecated This class was intended to be used by Gears. Since Gears was
115      * deprecated, so is this class.
116      */
117     @Deprecated
118     public static synchronized CacheResult getSurrogate(
119             String url, Map<String, String> headers) {
120         if (urlInterceptDisabled()) {
121             return null;
122         }
123         Iterator iter = getHandlers().listIterator();
124         while (iter.hasNext()) {
125             UrlInterceptHandler handler = (UrlInterceptHandler) iter.next();
126             CacheResult result = handler.service(url, headers);
127             if (result != null) {
128                 return result;
129             }
130         }
131         return null;
132     }
133
134     /**
135      * Given an url, returns the PluginData of the first
136      * UrlInterceptHandler interested, or null if none are or if
137      * intercepts are disabled.
138      *
139      * @return A PluginData instance containing surrogate content.
140      *
141      * @deprecated This class was intended to be used by Gears. Since Gears was
142      * deprecated, so is this class.
143      */
144     @Deprecated
145     public static synchronized PluginData getPluginData(
146             String url, Map<String, String> headers) {
147         if (urlInterceptDisabled()) {
148             return null;
149         }
150         Iterator iter = getHandlers().listIterator();
151         while (iter.hasNext()) {
152             UrlInterceptHandler handler = (UrlInterceptHandler) iter.next();
153             PluginData data = handler.getPluginData(url, headers);
154             if (data != null) {
155                 return data;
156             }
157         }
158         return null;
159     }
160 }